diff options
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs')
| -rw-r--r-- | Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs | 71 |
1 files changed, 68 insertions, 3 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs index 120ae7972..dbba1962e 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs @@ -3,13 +3,18 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Tango.Core.Commands; using Tango.DAL.Observables; +using Tango.MachineStudio.Common.Notifications; using Tango.SharedUI; namespace Tango.MachineStudio.MachineDesigner.ViewModels { public class MainViewVM : ViewModel { + private bool _isSaving; + private INotificationProvider _notification; + private ObservablesEntitiesAdapter _adapter; /// <summary> /// Gets or sets the db adapter. @@ -40,14 +45,74 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels set { _configuration = value; RaisePropertyChangedAuto(); } } + public RelayCommand SaveCommand { get; set; } + /// <summary> /// Initializes a new instance of the <see cref="MainViewVM"/> class. /// </summary> - public MainViewVM() + public MainViewVM(INotificationProvider notification) { + _notification = notification; + Adapter = ObservablesEntitiesAdapter.Instance; - Machine = Adapter.Machines.First(); - Configuration = Machine.Configuration; + Configuration = new Configuration(); + Configuration.Name = "Config 2"; + + + for (int i = 0; i < 8; i++) + { + Configuration.IdsPacks.Add(new IdsPack() { Name = "IDS PACK " + i }); + } + + SaveCommand = new RelayCommand(Save, (x) => !_isSaving); + } + + public void DropCartridgeType(CartridgeType cartridgeType, IdsPack idsPack) + { + idsPack.CartridgeTypes = cartridgeType; + idsPack.CartridgeTypeGuid = cartridgeType.Guid; + } + + public void DropDispenser(Dispenser dispenser, IdsPack idsPack) + { + idsPack.Dispenser = dispenser; + idsPack.DispenserGuid = dispenser.Guid; + } + + public void DropMidTankType(MidTankType midTankType, IdsPack idsPack) + { + idsPack.MidTankTypes = midTankType; + idsPack.MidTankTypeGuid = midTankType.Guid; + } + + public void DropLiquidType(LiquidType liquidType, IdsPack idsPack) + { + idsPack.LiquidTypes = liquidType; + idsPack.LiquidTypeGuid = liquidType.Guid; + } + + private async void Save() + { + _isSaving = true; + InvalidateRelayCommands(); + + try + { + using (_notification.PushTaskItem("Saving Configuration...")) + { + await Configuration.SaveAsync(); + Configuration = Adapter.Configurations.SingleOrDefault(x => x.Guid == Configuration.Guid); + } + } + catch (Exception ex) + { + _notification.ShowError("An error occurred while trying to save the configuration" + Environment.NewLine + ex.Message); + } + finally + { + _isSaving = false; + InvalidateRelayCommands(); + } } } } |
