using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
using Tango.BL;
using Tango.BL.Entities;
using Tango.BL.Enumerations;
using Tango.Core.Commands;
using Tango.Core.DI;
using Tango.PPC.Common;
using Tango.PPC.Common.Connection;
using Tango.PPC.Common.ExternalBridge;
using Tango.PPC.Common.Messages;
using Tango.SharedUI.Components;
using Tango.WiFi;
namespace Tango.PPC.MachineSettings.ViewModels
{
///
/// Represents the main view VM and entry point for .
///
///
public class MainViewVM : PPCViewModel
{
#region Properties
private Machine _machine;
public Machine Machine
{
get { return _machine; }
set { _machine = value; RaisePropertyChangedAuto(); }
}
private SelectedObjectCollection _selectedJobTypes;
public SelectedObjectCollection SelectedJobTypes
{
get { return _selectedJobTypes; }
set { _selectedJobTypes = value; RaisePropertyChangedAuto(); }
}
#endregion
#region Commands
///
/// Gets or sets the save command.
///
public RelayCommand SaveCommand { get; set; }
///
/// Gets or sets the discard command.
///
public RelayCommand DiscardCommand { get; set; }
#endregion
public MainViewVM()
{
SaveCommand = new RelayCommand(Save);
DiscardCommand = new RelayCommand(Discard);
}
private void Discard()
{
NavigationManager.NavigateBack();
}
private async void Save()
{
Machine.SupportedJobTypes = SelectedJobTypes.SynchedSource.ToList();
Machine.ShallowCopyTo(MachineProvider.Machine);
await MachineProvider.SaveMachine();
await NavigationManager.NavigateBack();
}
///
/// Called when the application has been started
///
public override void OnApplicationStarted()
{
}
public override void OnNavigatedTo()
{
base.OnNavigatedTo();
Machine = new Machine();
MachineProvider.Machine.ShallowCopyTo(Machine);
RaisePropertyChanged(nameof(Machine));
SelectedJobTypes = new SelectedObjectCollection(Enum.GetValues(typeof(JobTypes)).Cast().ToObservableCollection(), Machine.SupportedJobTypes.ToObservableCollection());
}
}
}