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()); } } }