aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ThreadExtensions/ViewModels/MainViewVM.cs
diff options
context:
space:
mode:
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.cs339
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;