diff options
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ThreadExtensions/ViewModels/MainViewVM.cs')
| -rw-r--r-- | Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ThreadExtensions/ViewModels/MainViewVM.cs | 339 |
1 files changed, 285 insertions, 54 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ThreadExtensions/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ThreadExtensions/ViewModels/MainViewVM.cs index 09befb26f..928102f12 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ThreadExtensions/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ThreadExtensions/ViewModels/MainViewVM.cs @@ -35,7 +35,7 @@ namespace Tango.MachineStudio.ThreadExtensions.ViewModels private INotificationProvider _notification; private IAuthenticationProvider _authentication; private IActionLogManager _actionLogManager; - + private ObservablesContext _rmlExtentions_context; private ObservablesContext _active_context; @@ -86,19 +86,19 @@ namespace Tango.MachineStudio.ThreadExtensions.ViewModels InvalidateRelayCommands(); } } - private ICollectionView _rmlExtCollectionView; - /// <summary> - /// Gets or sets the RML collection view. - /// </summary> - public ICollectionView RmlExtCollectionView - { - get { return _rmlExtCollectionView; } - set - { - _rmlExtCollectionView = value; - RaisePropertyChangedAuto(); - } - } + //private ICollectionView _rmlExtCollectionView; + ///// <summary> + ///// Gets or sets the RML collection view. + ///// </summary> + //public ICollectionView RmlExtCollectionView + //{ + // get { return _rmlExtCollectionView; } + // set + // { + // _rmlExtCollectionView = value; + // RaisePropertyChangedAuto(); + // } + //} private ObservableCollection<YarnApplication> _applications; public ObservableCollection<YarnApplication> Applications @@ -161,13 +161,7 @@ namespace Tango.MachineStudio.ThreadExtensions.ViewModels get { return _group; } set { _group = value; RaisePropertyChangedAuto(); } } - - //private ObservableCollection<YarnManufacturer> _manufacturer; - //public ObservableCollection<YarnManufacturer> Manufacturer - //{ - // get { return _manufacturer; } - // set { _manufacturer = value; RaisePropertyChangedAuto(); } - //} + private List<String> _manufacturers; public List<String> Manufacturers @@ -185,7 +179,7 @@ namespace Tango.MachineStudio.ThreadExtensions.ViewModels get { return _materials; } set { _materials = value; RaisePropertyChangedAuto(); } } - + private ObservableCollection<YarnSubFamily> _subFamilies; public ObservableCollection<YarnSubFamily> SubFamilies { @@ -213,7 +207,7 @@ namespace Tango.MachineStudio.ThreadExtensions.ViewModels get { return _industrySector; } set { _industrySector = value; RaisePropertyChangedAuto(); } } - + private String _Filter; /// <summary> /// Gets or sets the search filter. @@ -243,11 +237,11 @@ namespace Tango.MachineStudio.ThreadExtensions.ViewModels set { _testResultsViewVM = value; RaisePropertyChangedAuto(); } } - protected Machine _selectedMachine; + protected MachineModel _selectedMachine; /// <summary> /// Gets or sets the selected machine. /// </summary> - public Machine SelectedMachine + public MachineModel SelectedMachine { get { return _selectedMachine; } set @@ -287,30 +281,260 @@ namespace Tango.MachineStudio.ThreadExtensions.ViewModels public RelayCommand SaveCommand { get; set; } public RelayCommand ManageRmlExtensionCommand { get; set; } - + public RelayCommand BackToThreadExtensionViewsCommand { get; set; } - + private async void BackToThreadExtensionViews(object obj) { View.NavigateTo(RMLExtensionNavigationView.RMLExtensionsView); await LoadRmlExtentions(); } - #endregion - + public RelayCommand AddManufacturerItemCommand { get; set;} + public RelayCommand EditManufacturerItemCommand { get; set; } + public RelayCommand DeleteManufacturerItemCommand { get; set; } + + public RelayCommand AddBrandItemCommand { get; set; } + public RelayCommand EditBrandItemCommand { get; set; } + public RelayCommand DeleteBrandItemCommand { get; set; } + + public RelayCommand AddEndUseItemCommand { get; set; } + public RelayCommand EditEndUseItemCommand { get; set; } + public RelayCommand DeleteEndUseItemCommand { get; set; } + + public RelayCommand AddApplicationItemCommand { get; set; } + public RelayCommand EditApplicationItemCommand { get; set; } + public RelayCommand DeleteApplicationItemCommand { get; set; } + + public RelayCommand AddIndustrySectorItemCommand { get; set; } + public RelayCommand EditIndustrySectorItemCommand { get; set; } + public RelayCommand DeleteIndustrySectorItemCommand { get; set; } + + public RelayCommand AddMaterialItemCommand { get; set; } + public RelayCommand EditMaterialItemCommand { get; set; } + public RelayCommand DeleteMaterialItemCommand { get; set; } + + public RelayCommand AddYarnTypeItemCommand { get; set; } + public RelayCommand EditYarnTypeItemCommand { get; set; } + public RelayCommand DeleteYarnTypeItemCommand { get; set; } + + public RelayCommand AddSubFamilyItemCommand { get; set; } + public RelayCommand EditSubFamilyItemCommand { get; set; } + public RelayCommand DeleteSubFamilyItemCommand { get; set; } + + public RelayCommand AddFamilyItemCommand { get; set; } + public RelayCommand EditFamilyItemCommand { get; set; } + public RelayCommand DeleteFamilyItemCommand { get; set; } + + public RelayCommand AddGroupItemCommand { get; set; } + public RelayCommand EditGroupItemCommand { get; set; } + public RelayCommand DeleteGroupItemCommand { get; set; } + + public RelayCommand AddTexturingItemCommand { get; set; } + public RelayCommand EditTexturingItemCommand { get; set; } + public RelayCommand DeleteTexturingItemCommand { get; set; } + + public RelayCommand AddGeometryItemCommand { get; set; } + public RelayCommand EditGeometryItemCommand { get; set; } + public RelayCommand DeleteGeometryItemCommand { get; set; } + + public RelayCommand AddYarnWhiteShadeItemCommand { get; set; } + public RelayCommand EditYarnWhiteShadeItemCommand { get; set; } + public RelayCommand DeleteYarnWhiteShadeItemCommand { get; set; } + + public RelayCommand AddGlossLevelItemCommand { get; set; } + public RelayCommand EditGlossLevelItemCommand { get; set; } + public RelayCommand DeleteGlossLevelItemCommand { get; set; } + #endregion + + #region Command Functions + + private void AddManufacturerItem(object obj) + { + AddItemDialogVM vm = ViewModelLocator.AddItemDialogVM; + + _notification.ShowModalDialog<AddItemDialogVM, Views.AddItemDialog>(vm, (x) => + { + if (Manufacturers.Any(y => y.ToLower() == vm.Name.ToLower())) + { + _notification.ShowError("Manufacturer already exists."); + return; + } + Manufacturers.Add(vm.Name); + RaisePropertyChanged("Manufacturers"); + _active_context.YarnManufacturers.Add(new YarnManufacturer() { Name = vm.Name }); + + + }, () => { }); + } + + private void DeleteManufacturerItem(object obj) + { + if (_notification.ShowQuestion("Are you sure you want to delete the selected item?")) + { + string deletedname = ActiveRML.Manufacturer; + Manufacturers.Remove(deletedname); + RaisePropertyChanged("Manufacturers"); + var deletedItem = _active_context.YarnManufacturers.Where(x => x.Name == deletedname).FirstOrDefault(); + if (deletedItem != null) + { + _active_context.YarnManufacturers.Remove(deletedItem); + ActiveRML.Manufacturer = _active_context.YarnManufacturers.FirstOrDefault().Name; + } + } + } + + private void EditManufacturerItem(object obj) + { + AddItemDialogVM vm = ViewModelLocator.AddItemDialogVM; + vm.Name = ActiveRML.Manufacturer; + + _notification.ShowModalDialog<AddItemDialogVM, Views.AddItemDialog>(vm, (x) => + { + if (ActiveRML.Manufacturer == x.Name) + return; + if (Manufacturers.Any(y => y == x.Name)) + { + _notification.ShowError("Manufacturer already exists."); + return; + } + var editItem = _active_context.YarnManufacturers.Where(z => z.Name == ActiveRML.Manufacturer).FirstOrDefault(); + if (editItem != null) + { + editItem.Name = x.Name; + ActiveRML.Manufacturer = x.Name; + } + Manufacturers = _active_context.YarnManufacturers.Select(z => z.Name).ToList(); + }, () => { }); + } + + private void AddBrandItem(object obj) + { + AddItemDialogVM vm = ViewModelLocator.AddItemDialogVM; + + _notification.ShowModalDialog<AddItemDialogVM, Views.AddItemDialog>(vm, async (x) => + { + if (Brands.Any(y => y.Name.ToLower() == x.Name.ToLower())) + { + _notification.ShowError("Brand already exists."); + return; + } + YarnBrand newItem = new YarnBrand() { Name = x.Name }; + _active_context.YarnBrands.Add(newItem); + await _active_context.SaveChangesAsync(); + Brands = _active_context.YarnBrands.ToObservableCollection(); + ActiveRMLExtension.YarnBrand = Brands.FirstOrDefault(b => b.Name == vm.Name); + }, () => { }); + } + + private void EditBrandItem(object obj) + { + AddItemDialogVM vm = ViewModelLocator.AddItemDialogVM; + vm.Name = ActiveRMLExtension.YarnBrand.Name; + + _notification.ShowModalDialog<AddItemDialogVM, Views.AddItemDialog>(vm, async (x) => + { + if (ActiveRMLExtension.YarnBrand.Name == vm.Name) + return; + if (Brands.Any(y => y.Name == vm.Name)) + { + _notification.ShowError("The Brand already exists."); + return; + } + ActiveRMLExtension.YarnBrand.Name = vm.Name; + await _active_context.SaveChangesAsync(); + }, () => { }); + } + + private async void DeleteBrandItem(object obj) + { + if (_notification.ShowQuestion("Are you sure you want to delete the selected item?")) + { + var deletedItem = _active_context.YarnBrands.Where(x => x.Guid == ActiveRMLExtension.YarnBrand.Guid).FirstOrDefault(); + if (deletedItem != null) + { + _active_context.YarnBrands.Remove(deletedItem); + await _active_context.SaveChangesAsync(); + Brands = _active_context.YarnBrands.ToObservableCollection(); + ActiveRMLExtension.YarnBrand = Brands.FirstOrDefault(); + } + } + } + + private void AddEndUseItem(object ob) + { + AddItemDialogVM vm = ViewModelLocator.AddItemDialogVM; + + _notification.ShowModalDialog<AddItemDialogVM, Views.AddItemDialog>(vm, async (x) => + { + if (Brands.Any(y => y.Name.ToLower() == x.Name.ToLower())) + { + _notification.ShowError("This item already exists."); + return; + } + MediaPurpos newItem = new MediaPurpos() { Name = x.Name }; + _active_context.MediaPurposes.Add(newItem); + await _active_context.SaveChangesAsync(); + EndUse = _active_context.MediaPurposes.ToObservableCollection(); + ActiveRML.MediaPurpose = EndUse.FirstOrDefault(b => b.Name == x.Name); + }, () => { }); + } + private void EditEndUseItem(object ob) + { + + } + private void DeleteEndUseItem(object ob) + { + + } + #endregion + + public MainViewVM(INotificationProvider notificationProvider, IAuthenticationProvider authentication, IActionLogManager actionLogManager) { _notification = notificationProvider; _authentication = authentication; _actionLogManager = actionLogManager; - + BackToThreadExtensionViewsCommand = new RelayCommand(BackToThreadExtensionViews, () => IsFree); SaveCommand = new RelayCommand(Save, () => IsFree); ManageRmlExtensionCommand = new RelayCommand(() => LoadActiveRMLExtension(SelectedRMLExtension.Guid), () => SelectedRMLExtension != null); - } - - public override void OnApplicationReady() + + DeleteManufacturerItemCommand = new RelayCommand(DeleteManufacturerItem, () => ActiveRML.Manufacturer != ""); + AddManufacturerItemCommand = new RelayCommand(AddManufacturerItem); + EditManufacturerItemCommand = new RelayCommand(EditManufacturerItem, () => ActiveRML.Manufacturer != ""); + + AddBrandItemCommand = new RelayCommand(AddBrandItem); + EditBrandItemCommand = new RelayCommand(EditBrandItem, () => ActiveRMLExtension.YarnBrand != null); + DeleteBrandItemCommand = new RelayCommand(DeleteBrandItem, () => ActiveRMLExtension.YarnBrand != null); + + AddEndUseItemCommand = new RelayCommand(AddEndUseItem); + EditEndUseItemCommand = new RelayCommand(EditEndUseItem); + DeleteEndUseItemCommand = new RelayCommand(DeleteEndUseItem); + + AddApplicationItemCommand = new RelayCommand(AddEndUseItem); + EditApplicationItemCommand = new RelayCommand(EditEndUseItem); + DeleteApplicationItemCommand = new RelayCommand(DeleteEndUseItem); + + AddIndustrySectorItemCommand = new RelayCommand(AddEndUseItem); + EditIndustrySectorItemCommand = new RelayCommand(EditEndUseItem); + DeleteIndustrySectorItemCommand = new RelayCommand(DeleteEndUseItem); + + AddMaterialItemCommand = new RelayCommand(AddEndUseItem); + EditMaterialItemCommand = new RelayCommand(EditEndUseItem); + DeleteMaterialItemCommand = new RelayCommand(DeleteEndUseItem); + + AddYarnTypeItemCommand = new RelayCommand(AddEndUseItem); + EditYarnTypeItemCommand = new RelayCommand(EditEndUseItem); + DeleteYarnTypeItemCommand = new RelayCommand(DeleteEndUseItem); + + } + + + + + public override void OnApplicationReady() { } @@ -351,8 +575,8 @@ namespace Tango.MachineStudio.ThreadExtensions.ViewModels Status = x.RMLExtesion == null ? RMLExtensionStatus.New : x.RMLExtesion.RMLStatus }).ToList(); RmlExtensions = q; - RmlExtCollectionView = CollectionViewSource.GetDefaultView(RmlExtensions); - RmlExtCollectionView.SortDescriptions.Add(new SortDescription(nameof(Rml.LastUpdated), ListSortDirection.Ascending)); + // RmlExtCollectionView = CollectionViewSource.GetDefaultView(RmlExtensions); + // RmlExtCollectionView.SortDescriptions.Add(new SortDescription(nameof(Rml.LastUpdated), ListSortDirection.Ascending)); //RmlExtCollectionView.Filter = (rml) => //{ @@ -468,33 +692,40 @@ namespace Tango.MachineStudio.ThreadExtensions.ViewModels ActiveRML = new RmlBuilder(_active_context) .Set(SelectedRMLExtension.RMLGuid) .Build(); + + var machineIdsHasTest = (from c in _active_context.ColorProcessParameters.Where(x => x.RmlsExtensionsGuid == guid) + select new { MichineGUID = c.MachineGuid }). + Union (from p in _active_context.RmlExtensionTestResults.Where(x => x.RmlsExtensionsGuid == guid) + select new { MichineGUID = p.MachineGuid }).DistinctBy(x => x).ToList(); - var machinesWithTest = _active_context.RmlExtensionTestResults.Select(x => x.MachineGuid).ToList(); - var machinesWithTest2 = - Join(_active_context.ColorProcessParameters.Select(y => y.MachineGuid), st1 => st1, st2=> st2, (st1, st2)=>).ToList(); - Machines = ObservablesStaticCollections.Instance.Machines.Select(x => new MachineModel() + if(machineIdsHasTest.Count > 0) + { + var MachineGuid = machineIdsHasTest.First().MichineGUID; + Machines.Where(x => machineIdsHasTest.Any(y => y.MichineGUID == x.Guid)).ToList().ForEach(x => x.HasRMLTest = true); + SelectedMachine = Machines.First(x => x.Guid == MachineGuid); + } + else + { + var settings = SettingsManager.Default.GetOrCreate<MachineStudioSettings>(); + if(settings.LastVirtualMachineSerialNumber != null) { - Guid = x.Guid, - Name = x.Name, - SerialNumber = x.SerialNumber - }).ToObservableCollection(); - var settings = SettingsManager.Default.GetOrCreate<MachineStudioSettings>(); - SelectedMachine = ObservablesStaticCollections.Instance.Machines.SingleOrDefault(x => x.SerialNumber == settings.LastVirtualMachineSerialNumber); - + SelectedMachine = Machines.SingleOrDefault(x => x.SerialNumber == settings.LastVirtualMachineSerialNumber); + } + else + { + SelectedMachine = Machines.First(); + } + } + ColorParametersVewVM = new ColorParametersVewVM(_notification, _actionLogManager); ColorParametersVewVM.RMLExtemtionGUID = guid; - ColorParametersVewVM.SelectedMachineGUID = SelectedMachine.Guid; + ColorParametersVewVM.SelectedMachineGUID = SelectedMachine != null ? SelectedMachine.Guid : null ; TestResultsViewVM = new TestResultsViewVM(_notification, _actionLogManager); TestResultsViewVM.RMLExtemtionGUID = guid; + TestResultsViewVM.SelectedMachineGUID = SelectedMachine != null ? SelectedMachine.Guid : null; TestResultsViewVM.ThreadName = ActiveRML.Manufacturer; - - var machineGuidsWithTests = await _active_context.RmlExtensionTestResults.Where(x => x.RmlsExtensionsGuid == guid).Select(y => y.MachineGuid).ToListAsync(); - if(machineGuidsWithTests.Count > 0) - { - - } - + if (ActiveRMLExtension.RMLStatus == RMLExtensionStatus.New) { ColorParametersVewVM.SaveColorParameters -= UpdateStatus; |
