Loading INAF.Apps.Uwp.SLabDataManager/Helpers/RemoteOperations/RemoteOperationsManagerMaterials.cs +4 −10 Original line number Diff line number Diff line using INAF.Libraries.NetStandard.SLabCommonModels.Models.SampleData; using INAF.Libraries.NetStandard.SLabCommonModels.Models.SampleData.Containers; using INAF.Libraries.NetStandard.SLabCommonModels.Models.SampleData.Interfaces; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using static INAF.Libraries.NetStandard.SLabCommonModels.Enums.Enums; Loading @@ -15,18 +13,14 @@ namespace INAF.Apps.Uwp.SLabDataManager.Helpers.RemoteOperations return await getAsync<MaterialsContainer>(RemoteOperationType.GetMeteorClasses, buildArgument("Text", text)); } public async Task<List<IMaterialModel>> getMineralsAsync(string text) public async Task<List<MaterialBaseModel>> getMineralsAsync(string text) { return (await getAsync<List<MaterialBaseModel>>(RemoteOperationType.GetMinerals, buildArgument("Text", text))) .Cast<IMaterialModel>() .ToList(); return await getAsync<List<MaterialBaseModel>>(RemoteOperationType.GetMinerals, buildArgument("Text", text)); } public async Task<List<IMaterialModel>> getRocksAsync(string text) public async Task<List<MaterialBaseModel>> getRocksAsync(string text) { return (await getAsync<List<MaterialBaseModel>>(RemoteOperationType.GetRocks, buildArgument("Text", text)))? .Cast<IMaterialModel>() .ToList(); return await getAsync<List<MaterialBaseModel>>(RemoteOperationType.GetRocks, buildArgument("Text", text)); } } } INAF.Apps.Uwp.SLabDataManager/Helpers/UI/XamlHelpers.cs +4 −4 Original line number Diff line number Diff line Loading @@ -159,7 +159,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Helpers.UI #endregion #region materials visibility public static Visibility GetSelectedMeteorClassVisibility(IMaterialModel selectedSuggestedMeteorClass, string parameter) public static Visibility GetSelectedMeteorClassVisibility(MaterialBaseModel selectedSuggestedMeteorClass, string parameter) { Visibility visibility = Visibility.Collapsed; Loading @@ -181,7 +181,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Helpers.UI return visibility; } public static Visibility GetSelectedMineralVisibility(IMaterialModel selectedSuggestedMineral, MineralsSelectionType MineralsSelectionType, string parameter) public static Visibility GetSelectedMineralVisibility(MaterialBaseModel selectedSuggestedMineral, MineralsSelectionType MineralsSelectionType, string parameter) { Visibility visibility = Visibility.Collapsed; Loading Loading @@ -210,7 +210,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Helpers.UI return visibility; } public static Visibility GetSelectedMineralsVisibility(ObservableCollection<IMaterialModel> selectedSuggestedMinerals, MineralsSelectionType MineralsSelectionType, string parameter) public static Visibility GetSelectedMineralsVisibility(ObservableCollection<MaterialBaseModel> selectedSuggestedMinerals, MineralsSelectionType MineralsSelectionType, string parameter) { Visibility visibility = Visibility.Collapsed; Loading Loading @@ -239,7 +239,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Helpers.UI return visibility; } public static Visibility GetSelectedRockVisibility(IMaterialModel selectedSuggestedRock, string parameter) public static Visibility GetSelectedRockVisibility(MaterialBaseModel selectedSuggestedRock, string parameter) { Visibility visibility = Visibility.Collapsed; Loading INAF.Apps.Uwp.SLabDataManager/ViewModels/ChartViewModelInfo.cs +19 −19 Original line number Diff line number Diff line Loading @@ -33,10 +33,10 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels set { SetProperty(ref isInfoUserControlShow, value); } } private IMaterialModel SelectedMineralForDeleting { get; set; } private MaterialBaseModel SelectedMineralForDeleting { get; set; } #endregion public void askDeleteSelectedMineral(IMaterialModel item) public void askDeleteSelectedMineral(MaterialBaseModel item) { SelectedMineralForDeleting = item; Loading Loading @@ -68,11 +68,11 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels // InfoSampleDataViewModel = await userControlsViewModelFactory.initSampleDataViewModelAsync(); //} private (bool isOk, string warningMessage, IMaterialModel selectedRock) manageMeteorClassSelection() private (bool isOk, string warningMessage, MaterialBaseModel selectedRock) manageMeteorClassSelection() { bool isOk = true; string warningMessage = string.Empty; IMaterialModel selectedMeteorClass = MaterialBaseModel.CreateEmpty(); MaterialBaseModel selectedMeteorClass = MaterialBaseModel.CreateEmpty(); if (infoSampleDataViewModel.SelectedSuggestedMeteorClass != null) selectedMeteorClass = infoSampleDataViewModel.SelectedSuggestedMeteorClass; Loading @@ -80,14 +80,14 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels return (isOk, warningMessage, selectedMeteorClass); } private (bool isOk, string warningMessage, List<IMaterialModel> selectedMinerals) manageMineralsSelection() private (bool isOk, string warningMessage, List<MaterialBaseModel> selectedMinerals) manageMineralsSelection() { /* check minerals selection */ bool isOk = true; string warningMessage = string.Empty; /* create list of selected minerals */ List<IMaterialModel> selectedMinerals = new List<IMaterialModel>(); List<MaterialBaseModel> selectedMinerals = new List<MaterialBaseModel>(); switch (infoSampleDataViewModel.MineralsSelectionType) { case Constants.Enums.MineralsSelectionType.SingleItem: Loading Loading @@ -120,11 +120,11 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels return (isOk, warningMessage, selectedMinerals); } private (bool isOk, string warningMessage, IMaterialModel selectedRock) manageRockSelection() private (bool isOk, string warningMessage, MaterialBaseModel selectedRock) manageRockSelection() { bool isOk = true; string warningMessage = string.Empty; IMaterialModel selectedRock = MaterialBaseModel.CreateEmpty(); MaterialBaseModel selectedRock = MaterialBaseModel.CreateEmpty(); if (infoSampleDataViewModel.SelectedSuggestedRock != null) selectedRock = infoSampleDataViewModel.SelectedSuggestedRock; Loading @@ -144,30 +144,30 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels bool isOk = true; string warningMessage = string.Empty; List<IMaterialModel> selectedMinerals = new List<IMaterialModel>(); IMaterialModel selectedRock = MaterialBaseModel.CreateEmpty(); IMaterialModel selectedMeteorClass = MaterialBaseModel.CreateEmpty(); List<MaterialBaseModel> selectedMinerals = new List<MaterialBaseModel>(); MaterialBaseModel selectedRock = MaterialBaseModel.CreateEmpty(); MaterialBaseModel selectedMeteorClass = MaterialBaseModel.CreateEmpty(); /* check rock/minerals selection */ switch (InfoSampleDataViewModel.SelectedMineralTypeValue.Value) { case "Monomineralic": case "Mix": (bool isOk, string warningMessage, List<IMaterialModel> selectedMinerals) mineralsResult = manageMineralsSelection(); (bool isOk, string warningMessage, List<MaterialBaseModel> selectedMinerals) mineralsResult = manageMineralsSelection(); isOk = mineralsResult.isOk; warningMessage = mineralsResult.warningMessage; selectedMinerals.AddRange(mineralsResult.selectedMinerals); break; case "Rock": (bool isOk, string warningMessage, IMaterialModel selectedRock) rockResult = manageRockSelection(); (bool isOk, string warningMessage, MaterialBaseModel selectedRock) rockResult = manageRockSelection(); isOk = rockResult.isOk; warningMessage = rockResult.warningMessage; selectedRock = rockResult.selectedRock; break; case "Extraterrestrial": (bool isOk, string warningMessage, IMaterialModel selectedRock) meteorClassResult = manageMeteorClassSelection(); (bool isOk, string warningMessage, MaterialBaseModel selectedRock) meteorClassResult = manageMeteorClassSelection(); isOk = meteorClassResult.isOk; warningMessage = meteorClassResult.warningMessage; selectedMeteorClass = meteorClassResult.selectedRock; Loading Loading @@ -215,9 +215,9 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels GrainSizeTypeId = selectedGrainSizeTypeValueId, OriginTypeId = InfoSampleDataViewModel.SelectedOriginTypeValue.Id, MineralTypeId = InfoSampleDataViewModel.SelectedMineralTypeValue.Id, Minerals = selectedMinerals.Cast<MaterialBaseModel>().ToList(), Rock = (MaterialBaseModel)selectedRock, MeteorClass = (MaterialBaseModel)selectedMeteorClass, Minerals = selectedMinerals, Rock = selectedRock, MeteorClass = selectedMeteorClass, }, SpectrumFileMeasurementInfoValues = new SpectrumFileMeasurementInfoValues() { Loading Loading @@ -295,8 +295,8 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels #endregion #region commands private RelayCommand<IMaterialModel> commandAskDeleteSelectedMineral; public RelayCommand<IMaterialModel> CommandAskDeleteSelectedMineral => commandAskDeleteSelectedMineral ?? (commandAskDeleteSelectedMineral = new RelayCommand<IMaterialModel>((item) => askDeleteSelectedMineral(item))); private RelayCommand<MaterialBaseModel> commandAskDeleteSelectedMineral; public RelayCommand<MaterialBaseModel> CommandAskDeleteSelectedMineral => commandAskDeleteSelectedMineral ?? (commandAskDeleteSelectedMineral = new RelayCommand<MaterialBaseModel>((item) => askDeleteSelectedMineral(item))); private RelayCommand commandDeleteSelectedMineral; public RelayCommand CommandDeleteSelectedMineral => commandDeleteSelectedMineral ?? (commandDeleteSelectedMineral = new RelayCommand(() => deleteSelectedMineral())); Loading INAF.Apps.Uwp.SLabDataManager/ViewModels/UserControlViewModels/ChartPanels/InfoSampleDataViewModel.cs +20 −20 Original line number Diff line number Diff line Loading @@ -216,50 +216,50 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels.UserControlViewModels } } private IMaterialModel selectedSuggestedMeteorClass; public IMaterialModel SelectedSuggestedMeteorClass private MaterialBaseModel selectedSuggestedMeteorClass; public MaterialBaseModel SelectedSuggestedMeteorClass { get { return selectedSuggestedMeteorClass; } set { SetProperty(ref selectedSuggestedMeteorClass, value); } } private IMaterialModel selectedSuggestedMineral; public IMaterialModel SelectedSuggestedMineral private MaterialBaseModel selectedSuggestedMineral; public MaterialBaseModel SelectedSuggestedMineral { get { return selectedSuggestedMineral; } set { SetProperty(ref selectedSuggestedMineral, value); } } private ObservableCollection<IMaterialModel> selectedSuggestedMinerals; public ObservableCollection<IMaterialModel> SelectedSuggestedMinerals private ObservableCollection<MaterialBaseModel> selectedSuggestedMinerals; public ObservableCollection<MaterialBaseModel> SelectedSuggestedMinerals { get { return selectedSuggestedMinerals; } set { SetProperty(ref selectedSuggestedMinerals, value); } } private IMaterialModel selectedSuggestedRock; public IMaterialModel SelectedSuggestedRock private MaterialBaseModel selectedSuggestedRock; public MaterialBaseModel SelectedSuggestedRock { get { return selectedSuggestedRock; } set { SetProperty(ref selectedSuggestedRock, value); } } private List<IMaterialModel> suggestedMeteorClasses; public List<IMaterialModel> SuggestedMeteorClasses private List<MaterialBaseModel> suggestedMeteorClasses; public List<MaterialBaseModel> SuggestedMeteorClasses { get { return suggestedMeteorClasses; } set { SetProperty(ref suggestedMeteorClasses, value); } } private List<IMaterialModel> suggestedMinerals; public List<IMaterialModel> SuggestedMinerals private List<MaterialBaseModel> suggestedMinerals; public List<MaterialBaseModel> SuggestedMinerals { get { return suggestedMinerals; } set { SetProperty(ref suggestedMinerals, value); } } private List<IMaterialModel> suggestedRocks; public List<IMaterialModel> SuggestedRocks private List<MaterialBaseModel> suggestedRocks; public List<MaterialBaseModel> SuggestedRocks { get { return suggestedRocks; } set { SetProperty(ref suggestedRocks, value); } Loading Loading @@ -381,12 +381,12 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels.UserControlViewModels return await remoteOperationsManager.getMeteorClassesAsync(text); } public async Task<List<IMaterialModel>> loadMineralsSuggestionsAsync(string text) public async Task<List<MaterialBaseModel>> loadMineralsSuggestionsAsync(string text) { return await remoteOperationsManager.getMineralsAsync(text); } public async Task<List<IMaterialModel>> loadRocksSuggestionsAsync(string text) public async Task<List<MaterialBaseModel>> loadRocksSuggestionsAsync(string text) { return await remoteOperationsManager.getRocksAsync(text); } Loading @@ -399,7 +399,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels.UserControlViewModels MineralsSelectionType = MineralsSelectionType.None; IsSelectedSuggestedMineralsEmpty = true; SelectedSuggestedMineral = null; SelectedSuggestedMinerals = new ObservableCollection<IMaterialModel>(); SelectedSuggestedMinerals = new ObservableCollection<MaterialBaseModel>(); SelectedSuggestedRock = null; } Loading Loading @@ -492,7 +492,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels.UserControlViewModels if (sampleDataSelectedValues.MineralTypeId == (int)MineralType.Monomineralic) SelectedSuggestedMineral = sampleDataSelectedValues.Minerals[0]; else if (sampleDataSelectedValues.MineralTypeId == (int)MineralType.Mix) SelectedSuggestedMinerals = new ObservableCollection<IMaterialModel>(sampleDataSelectedValues.Minerals); SelectedSuggestedMinerals = new ObservableCollection<MaterialBaseModel>(sampleDataSelectedValues.Minerals); /* selected rock */ if (sampleDataSelectedValues.Rock != null) Loading @@ -501,7 +501,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels.UserControlViewModels #endregion #region selected minerals public void addSelectedSuggestedMineral(IMaterialModel mineral) public void addSelectedSuggestedMineral(MaterialBaseModel mineral) { if (SelectedSuggestedMinerals.Any(x => x.Id == mineral.Id)) return; Loading Loading @@ -530,7 +530,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels.UserControlViewModels SuggestedRocks?.Clear(); } public void deleteSelectedMineral(IMaterialModel mineral) public void deleteSelectedMineral(MaterialBaseModel mineral) { if (!SelectedSuggestedMinerals.Any(x => x.Id == mineral.Id)) return; Loading INAF.Apps.Uwp.SLabDataManager/Views/UserControls/ChartPanels/InfoUserControl.xaml.cs +7 −12 Original line number Diff line number Diff line Loading @@ -76,9 +76,9 @@ namespace INAF.Apps.Uwp.SLabDataManager.Views.UserControls #endregion #region commands public RelayCommand<IMaterialModel> CommandAskDeleteSelectedMineral public RelayCommand<MaterialBaseModel> CommandAskDeleteSelectedMineral { get { return (RelayCommand<IMaterialModel>)GetValue(CommandAskDeleteSelectedMineralProperty); } get { return (RelayCommand<MaterialBaseModel>)GetValue(CommandAskDeleteSelectedMineralProperty); } set { SetValue(CommandAskDeleteSelectedMineralProperty, value); } } Loading Loading @@ -127,13 +127,8 @@ namespace INAF.Apps.Uwp.SLabDataManager.Views.UserControls MaterialsContainer foundMeteorClassesContainer = await InfoSampleDataViewModel.loadMeteorClassesSuggestionsAsync(sender.Text); if (foundMeteorClassesContainer.Materials?.Count() > 0) { var meteorClasses = new List<IMaterialModel>(); foreach (var meteorClass in foundMeteorClassesContainer.Materials) meteorClasses.Add(meteorClass); InfoSampleDataViewModel.SuggestedMeteorClasses = meteorClasses; InfoSampleDataViewModel.SuggestedMeteorClasses = foundMeteorClassesContainer.Materials.ToList(); } //InfoSampleDataViewModel.SuggestedMeteorClasses = new List<MaterialBaseModel>(foundMeteorClassesContainer.Materials); } } } Loading @@ -145,11 +140,11 @@ namespace INAF.Apps.Uwp.SLabDataManager.Views.UserControls switch (InfoSampleDataViewModel.SelectedMineralTypeValue.Value) { case "Monomineralic": InfoSampleDataViewModel.SelectedSuggestedMineral = (args.SelectedItem as MaterialModel); InfoSampleDataViewModel.SelectedSuggestedMineral = (args.SelectedItem as MaterialBaseModel); break; case "Mix": InfoSampleDataViewModel.addSelectedSuggestedMineral((args.SelectedItem as MaterialModel)); InfoSampleDataViewModel.addSelectedSuggestedMineral((args.SelectedItem as MaterialBaseModel)); break; } Loading @@ -166,7 +161,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Views.UserControls } else if (sender.Text.Length >= 3) { List<IMaterialModel> foundMinerals = await InfoSampleDataViewModel.loadMineralsSuggestionsAsync(sender.Text); List<MaterialBaseModel> foundMinerals = await InfoSampleDataViewModel.loadMineralsSuggestionsAsync(sender.Text); if (foundMinerals?.Count > 0) InfoSampleDataViewModel.SuggestedMinerals = foundMinerals; } Loading @@ -191,7 +186,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Views.UserControls } else if (sender.Text.Length >= 3) { List<IMaterialModel> foundRocks = await InfoSampleDataViewModel.loadRocksSuggestionsAsync(sender.Text); List<MaterialBaseModel> foundRocks = await InfoSampleDataViewModel.loadRocksSuggestionsAsync(sender.Text); if (foundRocks?.Count > 0) InfoSampleDataViewModel.SuggestedRocks = foundRocks; } Loading Loading
INAF.Apps.Uwp.SLabDataManager/Helpers/RemoteOperations/RemoteOperationsManagerMaterials.cs +4 −10 Original line number Diff line number Diff line using INAF.Libraries.NetStandard.SLabCommonModels.Models.SampleData; using INAF.Libraries.NetStandard.SLabCommonModels.Models.SampleData.Containers; using INAF.Libraries.NetStandard.SLabCommonModels.Models.SampleData.Interfaces; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using static INAF.Libraries.NetStandard.SLabCommonModels.Enums.Enums; Loading @@ -15,18 +13,14 @@ namespace INAF.Apps.Uwp.SLabDataManager.Helpers.RemoteOperations return await getAsync<MaterialsContainer>(RemoteOperationType.GetMeteorClasses, buildArgument("Text", text)); } public async Task<List<IMaterialModel>> getMineralsAsync(string text) public async Task<List<MaterialBaseModel>> getMineralsAsync(string text) { return (await getAsync<List<MaterialBaseModel>>(RemoteOperationType.GetMinerals, buildArgument("Text", text))) .Cast<IMaterialModel>() .ToList(); return await getAsync<List<MaterialBaseModel>>(RemoteOperationType.GetMinerals, buildArgument("Text", text)); } public async Task<List<IMaterialModel>> getRocksAsync(string text) public async Task<List<MaterialBaseModel>> getRocksAsync(string text) { return (await getAsync<List<MaterialBaseModel>>(RemoteOperationType.GetRocks, buildArgument("Text", text)))? .Cast<IMaterialModel>() .ToList(); return await getAsync<List<MaterialBaseModel>>(RemoteOperationType.GetRocks, buildArgument("Text", text)); } } }
INAF.Apps.Uwp.SLabDataManager/Helpers/UI/XamlHelpers.cs +4 −4 Original line number Diff line number Diff line Loading @@ -159,7 +159,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Helpers.UI #endregion #region materials visibility public static Visibility GetSelectedMeteorClassVisibility(IMaterialModel selectedSuggestedMeteorClass, string parameter) public static Visibility GetSelectedMeteorClassVisibility(MaterialBaseModel selectedSuggestedMeteorClass, string parameter) { Visibility visibility = Visibility.Collapsed; Loading @@ -181,7 +181,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Helpers.UI return visibility; } public static Visibility GetSelectedMineralVisibility(IMaterialModel selectedSuggestedMineral, MineralsSelectionType MineralsSelectionType, string parameter) public static Visibility GetSelectedMineralVisibility(MaterialBaseModel selectedSuggestedMineral, MineralsSelectionType MineralsSelectionType, string parameter) { Visibility visibility = Visibility.Collapsed; Loading Loading @@ -210,7 +210,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Helpers.UI return visibility; } public static Visibility GetSelectedMineralsVisibility(ObservableCollection<IMaterialModel> selectedSuggestedMinerals, MineralsSelectionType MineralsSelectionType, string parameter) public static Visibility GetSelectedMineralsVisibility(ObservableCollection<MaterialBaseModel> selectedSuggestedMinerals, MineralsSelectionType MineralsSelectionType, string parameter) { Visibility visibility = Visibility.Collapsed; Loading Loading @@ -239,7 +239,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Helpers.UI return visibility; } public static Visibility GetSelectedRockVisibility(IMaterialModel selectedSuggestedRock, string parameter) public static Visibility GetSelectedRockVisibility(MaterialBaseModel selectedSuggestedRock, string parameter) { Visibility visibility = Visibility.Collapsed; Loading
INAF.Apps.Uwp.SLabDataManager/ViewModels/ChartViewModelInfo.cs +19 −19 Original line number Diff line number Diff line Loading @@ -33,10 +33,10 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels set { SetProperty(ref isInfoUserControlShow, value); } } private IMaterialModel SelectedMineralForDeleting { get; set; } private MaterialBaseModel SelectedMineralForDeleting { get; set; } #endregion public void askDeleteSelectedMineral(IMaterialModel item) public void askDeleteSelectedMineral(MaterialBaseModel item) { SelectedMineralForDeleting = item; Loading Loading @@ -68,11 +68,11 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels // InfoSampleDataViewModel = await userControlsViewModelFactory.initSampleDataViewModelAsync(); //} private (bool isOk, string warningMessage, IMaterialModel selectedRock) manageMeteorClassSelection() private (bool isOk, string warningMessage, MaterialBaseModel selectedRock) manageMeteorClassSelection() { bool isOk = true; string warningMessage = string.Empty; IMaterialModel selectedMeteorClass = MaterialBaseModel.CreateEmpty(); MaterialBaseModel selectedMeteorClass = MaterialBaseModel.CreateEmpty(); if (infoSampleDataViewModel.SelectedSuggestedMeteorClass != null) selectedMeteorClass = infoSampleDataViewModel.SelectedSuggestedMeteorClass; Loading @@ -80,14 +80,14 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels return (isOk, warningMessage, selectedMeteorClass); } private (bool isOk, string warningMessage, List<IMaterialModel> selectedMinerals) manageMineralsSelection() private (bool isOk, string warningMessage, List<MaterialBaseModel> selectedMinerals) manageMineralsSelection() { /* check minerals selection */ bool isOk = true; string warningMessage = string.Empty; /* create list of selected minerals */ List<IMaterialModel> selectedMinerals = new List<IMaterialModel>(); List<MaterialBaseModel> selectedMinerals = new List<MaterialBaseModel>(); switch (infoSampleDataViewModel.MineralsSelectionType) { case Constants.Enums.MineralsSelectionType.SingleItem: Loading Loading @@ -120,11 +120,11 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels return (isOk, warningMessage, selectedMinerals); } private (bool isOk, string warningMessage, IMaterialModel selectedRock) manageRockSelection() private (bool isOk, string warningMessage, MaterialBaseModel selectedRock) manageRockSelection() { bool isOk = true; string warningMessage = string.Empty; IMaterialModel selectedRock = MaterialBaseModel.CreateEmpty(); MaterialBaseModel selectedRock = MaterialBaseModel.CreateEmpty(); if (infoSampleDataViewModel.SelectedSuggestedRock != null) selectedRock = infoSampleDataViewModel.SelectedSuggestedRock; Loading @@ -144,30 +144,30 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels bool isOk = true; string warningMessage = string.Empty; List<IMaterialModel> selectedMinerals = new List<IMaterialModel>(); IMaterialModel selectedRock = MaterialBaseModel.CreateEmpty(); IMaterialModel selectedMeteorClass = MaterialBaseModel.CreateEmpty(); List<MaterialBaseModel> selectedMinerals = new List<MaterialBaseModel>(); MaterialBaseModel selectedRock = MaterialBaseModel.CreateEmpty(); MaterialBaseModel selectedMeteorClass = MaterialBaseModel.CreateEmpty(); /* check rock/minerals selection */ switch (InfoSampleDataViewModel.SelectedMineralTypeValue.Value) { case "Monomineralic": case "Mix": (bool isOk, string warningMessage, List<IMaterialModel> selectedMinerals) mineralsResult = manageMineralsSelection(); (bool isOk, string warningMessage, List<MaterialBaseModel> selectedMinerals) mineralsResult = manageMineralsSelection(); isOk = mineralsResult.isOk; warningMessage = mineralsResult.warningMessage; selectedMinerals.AddRange(mineralsResult.selectedMinerals); break; case "Rock": (bool isOk, string warningMessage, IMaterialModel selectedRock) rockResult = manageRockSelection(); (bool isOk, string warningMessage, MaterialBaseModel selectedRock) rockResult = manageRockSelection(); isOk = rockResult.isOk; warningMessage = rockResult.warningMessage; selectedRock = rockResult.selectedRock; break; case "Extraterrestrial": (bool isOk, string warningMessage, IMaterialModel selectedRock) meteorClassResult = manageMeteorClassSelection(); (bool isOk, string warningMessage, MaterialBaseModel selectedRock) meteorClassResult = manageMeteorClassSelection(); isOk = meteorClassResult.isOk; warningMessage = meteorClassResult.warningMessage; selectedMeteorClass = meteorClassResult.selectedRock; Loading Loading @@ -215,9 +215,9 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels GrainSizeTypeId = selectedGrainSizeTypeValueId, OriginTypeId = InfoSampleDataViewModel.SelectedOriginTypeValue.Id, MineralTypeId = InfoSampleDataViewModel.SelectedMineralTypeValue.Id, Minerals = selectedMinerals.Cast<MaterialBaseModel>().ToList(), Rock = (MaterialBaseModel)selectedRock, MeteorClass = (MaterialBaseModel)selectedMeteorClass, Minerals = selectedMinerals, Rock = selectedRock, MeteorClass = selectedMeteorClass, }, SpectrumFileMeasurementInfoValues = new SpectrumFileMeasurementInfoValues() { Loading Loading @@ -295,8 +295,8 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels #endregion #region commands private RelayCommand<IMaterialModel> commandAskDeleteSelectedMineral; public RelayCommand<IMaterialModel> CommandAskDeleteSelectedMineral => commandAskDeleteSelectedMineral ?? (commandAskDeleteSelectedMineral = new RelayCommand<IMaterialModel>((item) => askDeleteSelectedMineral(item))); private RelayCommand<MaterialBaseModel> commandAskDeleteSelectedMineral; public RelayCommand<MaterialBaseModel> CommandAskDeleteSelectedMineral => commandAskDeleteSelectedMineral ?? (commandAskDeleteSelectedMineral = new RelayCommand<MaterialBaseModel>((item) => askDeleteSelectedMineral(item))); private RelayCommand commandDeleteSelectedMineral; public RelayCommand CommandDeleteSelectedMineral => commandDeleteSelectedMineral ?? (commandDeleteSelectedMineral = new RelayCommand(() => deleteSelectedMineral())); Loading
INAF.Apps.Uwp.SLabDataManager/ViewModels/UserControlViewModels/ChartPanels/InfoSampleDataViewModel.cs +20 −20 Original line number Diff line number Diff line Loading @@ -216,50 +216,50 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels.UserControlViewModels } } private IMaterialModel selectedSuggestedMeteorClass; public IMaterialModel SelectedSuggestedMeteorClass private MaterialBaseModel selectedSuggestedMeteorClass; public MaterialBaseModel SelectedSuggestedMeteorClass { get { return selectedSuggestedMeteorClass; } set { SetProperty(ref selectedSuggestedMeteorClass, value); } } private IMaterialModel selectedSuggestedMineral; public IMaterialModel SelectedSuggestedMineral private MaterialBaseModel selectedSuggestedMineral; public MaterialBaseModel SelectedSuggestedMineral { get { return selectedSuggestedMineral; } set { SetProperty(ref selectedSuggestedMineral, value); } } private ObservableCollection<IMaterialModel> selectedSuggestedMinerals; public ObservableCollection<IMaterialModel> SelectedSuggestedMinerals private ObservableCollection<MaterialBaseModel> selectedSuggestedMinerals; public ObservableCollection<MaterialBaseModel> SelectedSuggestedMinerals { get { return selectedSuggestedMinerals; } set { SetProperty(ref selectedSuggestedMinerals, value); } } private IMaterialModel selectedSuggestedRock; public IMaterialModel SelectedSuggestedRock private MaterialBaseModel selectedSuggestedRock; public MaterialBaseModel SelectedSuggestedRock { get { return selectedSuggestedRock; } set { SetProperty(ref selectedSuggestedRock, value); } } private List<IMaterialModel> suggestedMeteorClasses; public List<IMaterialModel> SuggestedMeteorClasses private List<MaterialBaseModel> suggestedMeteorClasses; public List<MaterialBaseModel> SuggestedMeteorClasses { get { return suggestedMeteorClasses; } set { SetProperty(ref suggestedMeteorClasses, value); } } private List<IMaterialModel> suggestedMinerals; public List<IMaterialModel> SuggestedMinerals private List<MaterialBaseModel> suggestedMinerals; public List<MaterialBaseModel> SuggestedMinerals { get { return suggestedMinerals; } set { SetProperty(ref suggestedMinerals, value); } } private List<IMaterialModel> suggestedRocks; public List<IMaterialModel> SuggestedRocks private List<MaterialBaseModel> suggestedRocks; public List<MaterialBaseModel> SuggestedRocks { get { return suggestedRocks; } set { SetProperty(ref suggestedRocks, value); } Loading Loading @@ -381,12 +381,12 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels.UserControlViewModels return await remoteOperationsManager.getMeteorClassesAsync(text); } public async Task<List<IMaterialModel>> loadMineralsSuggestionsAsync(string text) public async Task<List<MaterialBaseModel>> loadMineralsSuggestionsAsync(string text) { return await remoteOperationsManager.getMineralsAsync(text); } public async Task<List<IMaterialModel>> loadRocksSuggestionsAsync(string text) public async Task<List<MaterialBaseModel>> loadRocksSuggestionsAsync(string text) { return await remoteOperationsManager.getRocksAsync(text); } Loading @@ -399,7 +399,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels.UserControlViewModels MineralsSelectionType = MineralsSelectionType.None; IsSelectedSuggestedMineralsEmpty = true; SelectedSuggestedMineral = null; SelectedSuggestedMinerals = new ObservableCollection<IMaterialModel>(); SelectedSuggestedMinerals = new ObservableCollection<MaterialBaseModel>(); SelectedSuggestedRock = null; } Loading Loading @@ -492,7 +492,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels.UserControlViewModels if (sampleDataSelectedValues.MineralTypeId == (int)MineralType.Monomineralic) SelectedSuggestedMineral = sampleDataSelectedValues.Minerals[0]; else if (sampleDataSelectedValues.MineralTypeId == (int)MineralType.Mix) SelectedSuggestedMinerals = new ObservableCollection<IMaterialModel>(sampleDataSelectedValues.Minerals); SelectedSuggestedMinerals = new ObservableCollection<MaterialBaseModel>(sampleDataSelectedValues.Minerals); /* selected rock */ if (sampleDataSelectedValues.Rock != null) Loading @@ -501,7 +501,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels.UserControlViewModels #endregion #region selected minerals public void addSelectedSuggestedMineral(IMaterialModel mineral) public void addSelectedSuggestedMineral(MaterialBaseModel mineral) { if (SelectedSuggestedMinerals.Any(x => x.Id == mineral.Id)) return; Loading Loading @@ -530,7 +530,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels.UserControlViewModels SuggestedRocks?.Clear(); } public void deleteSelectedMineral(IMaterialModel mineral) public void deleteSelectedMineral(MaterialBaseModel mineral) { if (!SelectedSuggestedMinerals.Any(x => x.Id == mineral.Id)) return; Loading
INAF.Apps.Uwp.SLabDataManager/Views/UserControls/ChartPanels/InfoUserControl.xaml.cs +7 −12 Original line number Diff line number Diff line Loading @@ -76,9 +76,9 @@ namespace INAF.Apps.Uwp.SLabDataManager.Views.UserControls #endregion #region commands public RelayCommand<IMaterialModel> CommandAskDeleteSelectedMineral public RelayCommand<MaterialBaseModel> CommandAskDeleteSelectedMineral { get { return (RelayCommand<IMaterialModel>)GetValue(CommandAskDeleteSelectedMineralProperty); } get { return (RelayCommand<MaterialBaseModel>)GetValue(CommandAskDeleteSelectedMineralProperty); } set { SetValue(CommandAskDeleteSelectedMineralProperty, value); } } Loading Loading @@ -127,13 +127,8 @@ namespace INAF.Apps.Uwp.SLabDataManager.Views.UserControls MaterialsContainer foundMeteorClassesContainer = await InfoSampleDataViewModel.loadMeteorClassesSuggestionsAsync(sender.Text); if (foundMeteorClassesContainer.Materials?.Count() > 0) { var meteorClasses = new List<IMaterialModel>(); foreach (var meteorClass in foundMeteorClassesContainer.Materials) meteorClasses.Add(meteorClass); InfoSampleDataViewModel.SuggestedMeteorClasses = meteorClasses; InfoSampleDataViewModel.SuggestedMeteorClasses = foundMeteorClassesContainer.Materials.ToList(); } //InfoSampleDataViewModel.SuggestedMeteorClasses = new List<MaterialBaseModel>(foundMeteorClassesContainer.Materials); } } } Loading @@ -145,11 +140,11 @@ namespace INAF.Apps.Uwp.SLabDataManager.Views.UserControls switch (InfoSampleDataViewModel.SelectedMineralTypeValue.Value) { case "Monomineralic": InfoSampleDataViewModel.SelectedSuggestedMineral = (args.SelectedItem as MaterialModel); InfoSampleDataViewModel.SelectedSuggestedMineral = (args.SelectedItem as MaterialBaseModel); break; case "Mix": InfoSampleDataViewModel.addSelectedSuggestedMineral((args.SelectedItem as MaterialModel)); InfoSampleDataViewModel.addSelectedSuggestedMineral((args.SelectedItem as MaterialBaseModel)); break; } Loading @@ -166,7 +161,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Views.UserControls } else if (sender.Text.Length >= 3) { List<IMaterialModel> foundMinerals = await InfoSampleDataViewModel.loadMineralsSuggestionsAsync(sender.Text); List<MaterialBaseModel> foundMinerals = await InfoSampleDataViewModel.loadMineralsSuggestionsAsync(sender.Text); if (foundMinerals?.Count > 0) InfoSampleDataViewModel.SuggestedMinerals = foundMinerals; } Loading @@ -191,7 +186,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Views.UserControls } else if (sender.Text.Length >= 3) { List<IMaterialModel> foundRocks = await InfoSampleDataViewModel.loadRocksSuggestionsAsync(sender.Text); List<MaterialBaseModel> foundRocks = await InfoSampleDataViewModel.loadRocksSuggestionsAsync(sender.Text); if (foundRocks?.Count > 0) InfoSampleDataViewModel.SuggestedRocks = foundRocks; } Loading