aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs71
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();
+ }
}
}
}