Loading INAF.Apps.Uwp.SLabDataManager/App.xaml.cs +6 −5 Original line number Diff line number Diff line Loading @@ -4,11 +4,11 @@ using INAF.Apps.Uwp.SLabDataManager.Charts; using INAF.Apps.Uwp.SLabDataManager.Charts.Containers; using INAF.Apps.Uwp.SLabDataManager.Charts.Smoothing; using INAF.Apps.Uwp.SLabDataManager.Helpers; using INAF.Apps.Uwp.SLabDataManager.Helpers.FileReaders; using INAF.Apps.Uwp.SLabDataManager.Helpers.RemoteOperations; using INAF.Apps.Uwp.SLabDataManager.Helpers.UI; using INAF.Apps.Uwp.SLabDataManager.Helpers.UI.Chart; using INAF.Apps.Uwp.SLabDataManager.Helpers.UI.Chart.ProcessingHelpers; using INAF.Apps.Uwp.SLabDataManager.Helpers.XmlReaders; using INAF.Apps.Uwp.SLabDataManager.Models; using INAF.Apps.Uwp.SLabDataManager.Models.Chart; using INAF.Apps.Uwp.SLabDataManager.Models.Fit; Loading Loading @@ -154,20 +154,21 @@ namespace INAF.Apps.Uwp.SLabDataManager /* transient */ .AddTransient<AnimationsHelper>() .AddTransient<AuthenticationManager>() .AddTransient<ConfigReader>() .AddTransient<FitFunctionsReader>() .AddTransient<XmlAssetConfigReader>() .AddTransient<XmlAssetFitFunctionsReader>() .AddTransient<LabSpectrumFileReader>() .AddTransient<LinearFitHelper>() .AddTransient<LinearProcessingHelper>() .AddTransient<SplineProcessingHelper>() .AddTransient<RemoteOperationsManager>() .AddTransient<RemoteOperationsXmlReader>() .AddTransient<SavitzkyGolayHelper>() .AddTransient<SmoothingDefaultBoundariesReader>() .AddTransient<XmlAssetSmoothingDefaultBoundariesReader>() .AddTransient<SpectraFactory>() .AddTransient<SpectrumReader>() .AddTransient<SplineFitHelper>() .AddTransient<ZoomHelper>() .AddTransient<XmlHelper>() .AddTransient<XmlSpectrumFileReader>() /* usercontrols viewmodels */ .AddScoped<AlignmentViewModel>() .AddScoped<MeasurementInfoViewModel>() Loading INAF.Apps.Uwp.SLabDataManager/Assets/xml/remoteoperations.xml +1 −0 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ <operation type="IsLoginValid">Account/IsLoginValid</operation> <!-- SPECTRA FILES ACTIONS --> <operation type="DeleteSpectrum">AppSpectraFilesActions/DeleteSpectrum</operation> <operation type="GetParentSpectrum">AppSpectraFilesActions/GetParentSpectrum</operation> <operation type="SaveSpectrumOfTypeAligned">AppSpectraFilesActions/SaveSpectrumOfTypeAligned</operation> <operation type="SaveSpectrumOfTypeContinuumRemoved">AppSpectraFilesActions/SaveSpectrumOfTypeContinuumRemoved</operation> <operation type="SaveAsCopySpectrumOfTypeContinuumRemoved">AppSpectraFilesActions/SaveAsCopySpectrumOfTypeContinuumRemoved</operation> Loading INAF.Apps.Uwp.SLabDataManager/Charts/Containers/SpectraContainer.cs +11 −6 Original line number Diff line number Diff line Loading @@ -418,15 +418,14 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts.Containers { bool isPropertyChangedRequired = false; if (e.PropertyName.Equals(nameof(SpectrumSummaryModel.Filepath)) || e.PropertyName.Equals(nameof(SpectrumSummaryModel.FileReadingStatus))) if (e.PropertyName.Equals(nameof(SpectrumSummaryModel.IsReady))) isPropertyChangedRequired = true; //if (e.PropertyName.Equals(nameof(SpectrumSummaryModel.Filepath)) || // e.PropertyName.Equals(nameof(SpectrumSummaryModel.FileReadingStatus))) // isPropertyChangedRequired = true; if (isPropertyChangedRequired) { IsAnySummaryUpdated = true; isAnySummaryUpdated = false; // for the next usage } raiseIsAnySummaryUpdated(); } public void resetSummaries() Loading Loading @@ -507,6 +506,12 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts.Containers IsAnySpectrumUpdated = true; isAnySpectrumUpdated = false;// trick to enable for the next added spectrum } public void raiseIsAnySummaryUpdated() { IsAnySummaryUpdated = true; isAnySummaryUpdated = false; // for the next usage } #endregion #region retrieve aligned spectrum (by smoothing type) Loading INAF.Apps.Uwp.SLabDataManager/Extensions/Extensions.cs +21 −12 Original line number Diff line number Diff line Loading @@ -13,9 +13,11 @@ using INAF.Libraries.NetStandard.SLabCommonModels.Models.Spectrum.ProcessedSpect using INAF.Libraries.NetStandard.SLabCommonModels.Models.Spectrum.ProcessedSpectraInfo.Smoothing; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using Telerik.UI.Xaml.Controls.Chart; using Windows.Data.Xml.Dom; Loading Loading @@ -351,18 +353,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Extensions /* used for 'ToSpectrumFile' extension method */ public static string ToXmlString(this IChartSpectrumModel spectrum) { if (spectrum == null || spectrum.Elements == null || spectrum.Elements.Count == 0) return null; XmlDocument dom = GetCommonXml(spectrum); var xmlspectrum = dom.SelectSingleNode(Constants.Constants.XML_SPECTRUM); /* append spectrum data (wavelength, value) */ var xmlelements = GetElements(spectrum, dom); xmlspectrum.AppendChild(xmlelements); return dom.GetXml(); return ((IChartSpectrumOfTypeProcessedModel)spectrum).ToXml().GetXml(); } /* used for 'saveSpectrumOfTypeAsLocalFileAsync' method in BaseUserControlViewModel */ Loading Loading @@ -635,5 +626,23 @@ namespace INAF.Apps.Uwp.SLabDataManager.Extensions // create the solidColorbrush return new SolidColorBrush(color); } public static IChartSpectrumModel ToChartSpectrumModel(this FileSpectrumModel fileSpectrum) { List<ElementModel> elements = new List<ElementModel>(); foreach (var element in fileSpectrum.Elements) { elements.Add(new ElementModel(element.X, element.Y)); } return new ChartSpectrumModel() { Id = fileSpectrum.Id, Filename = fileSpectrum.Filename, ParentId = fileSpectrum.ParentId, Type = fileSpectrum.Type, Elements = new ObservableCollection<ElementModel>(elements) }; } } } INAF.Apps.Uwp.SLabDataManager/Helpers/XmlReaders/ConfigReader.cs→INAF.Apps.Uwp.SLabDataManager/Helpers/FileReaders/AssetFiles/XmlAssetConfigReader.cs +20 −16 Original line number Diff line number Diff line using INAF.Apps.Uwp.SLabDataManager.ViewModels.UserControlViewModels; using INAF.Apps.Uwp.SLabDataManager.Helpers.UI; using INAF.Apps.Uwp.SLabDataManager.ViewModels.UserControlViewModels; using INAF.Libraries.NetStandard.Extensions; using INAF.Libraries.NetStandard.ScienceModels.Spectra; using INAF.Libraries.Uwp.Logging; Loading @@ -8,33 +9,36 @@ using System.Threading.Tasks; using Windows.Data.Xml.Dom; using Windows.Storage; namespace INAF.Apps.Uwp.SLabDataManager.Helpers.XmlReaders namespace INAF.Apps.Uwp.SLabDataManager.Helpers.FileReaders { public sealed class ConfigReader : XmlReader public sealed class XmlAssetConfigReader { private readonly AlignmentViewModel alignmentViewModel; private readonly XmlHelper xmlHelper; private readonly Logger logger; public ConfigReader(IServiceProvider serviceProvider, AlignmentViewModel alignmentViewModel, public XmlAssetConfigReader(AlignmentViewModel alignmentViewModel, XmlHelper xmlHelper, Logger logger) : base(serviceProvider, xmlHelper, logger) Logger logger) { this.alignmentViewModel = alignmentViewModel; this.xmlHelper = xmlHelper; this.logger = logger; } public override async Task readFileAsync() public async Task readFileAsync() { StorageFile file = await getFileAsync("config.xml"); StorageFile file = await xmlHelper.getFileAsync("config.xml"); if (file == null) { logger.Write<ConfigReader>($"config.xml NOT FOUND!", Serilog.Events.LogEventLevel.Error); logger.Write<XmlAssetConfigReader>($"config.xml NOT FOUND!", Serilog.Events.LogEventLevel.Error); return; } XmlDocument dom = await xmlHelper.getXmlDocumentAsync(file); if (dom == null) { logger.Write<ConfigReader>($"Error while parsing config.xml!", Serilog.Events.LogEventLevel.Error); logger.Write<XmlAssetConfigReader>($"Error while parsing config.xml!", Serilog.Events.LogEventLevel.Error); return; } Loading @@ -44,16 +48,16 @@ namespace INAF.Apps.Uwp.SLabDataManager.Helpers.XmlReaders int index = 0; foreach (var node in wavelengthNodes) { string _currentValue = getNodeContent(node, "currentValue"); string _currentValue = xmlHelper.getNodeContent(node, "currentValue"); double currentValue = _currentValue.ToDoubleInvariant(); string _semiRange = getNodeContent(node, "semiRange"); string _semiRange = xmlHelper.getNodeContent(node, "semiRange"); double semiRange = _semiRange.ToDoubleInvariant(); string _step = getNodeContent(node, "step"); string _step = xmlHelper.getNodeContent(node, "step"); double step = _step.ToDoubleInvariant(); string _measureUnit = getNodeContent(node, "measureUnit"); string _measureUnit = xmlHelper.getNodeContent(node, "measureUnit"); int measureUnit = _measureUnit.ToIntInvariant(); if (!alignmentViewModel.contains(index)) Loading @@ -66,7 +70,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Helpers.XmlReaders } catch (Exception ex) { logger.Write<ConfigReader>($"Error while parsing config.xml - ex: {ex.Message}", Serilog.Events.LogEventLevel.Error); logger.Write<XmlAssetConfigReader>($"Error while parsing config.xml - ex: {ex.Message}", Serilog.Events.LogEventLevel.Error); return; } } Loading Loading
INAF.Apps.Uwp.SLabDataManager/App.xaml.cs +6 −5 Original line number Diff line number Diff line Loading @@ -4,11 +4,11 @@ using INAF.Apps.Uwp.SLabDataManager.Charts; using INAF.Apps.Uwp.SLabDataManager.Charts.Containers; using INAF.Apps.Uwp.SLabDataManager.Charts.Smoothing; using INAF.Apps.Uwp.SLabDataManager.Helpers; using INAF.Apps.Uwp.SLabDataManager.Helpers.FileReaders; using INAF.Apps.Uwp.SLabDataManager.Helpers.RemoteOperations; using INAF.Apps.Uwp.SLabDataManager.Helpers.UI; using INAF.Apps.Uwp.SLabDataManager.Helpers.UI.Chart; using INAF.Apps.Uwp.SLabDataManager.Helpers.UI.Chart.ProcessingHelpers; using INAF.Apps.Uwp.SLabDataManager.Helpers.XmlReaders; using INAF.Apps.Uwp.SLabDataManager.Models; using INAF.Apps.Uwp.SLabDataManager.Models.Chart; using INAF.Apps.Uwp.SLabDataManager.Models.Fit; Loading Loading @@ -154,20 +154,21 @@ namespace INAF.Apps.Uwp.SLabDataManager /* transient */ .AddTransient<AnimationsHelper>() .AddTransient<AuthenticationManager>() .AddTransient<ConfigReader>() .AddTransient<FitFunctionsReader>() .AddTransient<XmlAssetConfigReader>() .AddTransient<XmlAssetFitFunctionsReader>() .AddTransient<LabSpectrumFileReader>() .AddTransient<LinearFitHelper>() .AddTransient<LinearProcessingHelper>() .AddTransient<SplineProcessingHelper>() .AddTransient<RemoteOperationsManager>() .AddTransient<RemoteOperationsXmlReader>() .AddTransient<SavitzkyGolayHelper>() .AddTransient<SmoothingDefaultBoundariesReader>() .AddTransient<XmlAssetSmoothingDefaultBoundariesReader>() .AddTransient<SpectraFactory>() .AddTransient<SpectrumReader>() .AddTransient<SplineFitHelper>() .AddTransient<ZoomHelper>() .AddTransient<XmlHelper>() .AddTransient<XmlSpectrumFileReader>() /* usercontrols viewmodels */ .AddScoped<AlignmentViewModel>() .AddScoped<MeasurementInfoViewModel>() Loading
INAF.Apps.Uwp.SLabDataManager/Assets/xml/remoteoperations.xml +1 −0 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ <operation type="IsLoginValid">Account/IsLoginValid</operation> <!-- SPECTRA FILES ACTIONS --> <operation type="DeleteSpectrum">AppSpectraFilesActions/DeleteSpectrum</operation> <operation type="GetParentSpectrum">AppSpectraFilesActions/GetParentSpectrum</operation> <operation type="SaveSpectrumOfTypeAligned">AppSpectraFilesActions/SaveSpectrumOfTypeAligned</operation> <operation type="SaveSpectrumOfTypeContinuumRemoved">AppSpectraFilesActions/SaveSpectrumOfTypeContinuumRemoved</operation> <operation type="SaveAsCopySpectrumOfTypeContinuumRemoved">AppSpectraFilesActions/SaveAsCopySpectrumOfTypeContinuumRemoved</operation> Loading
INAF.Apps.Uwp.SLabDataManager/Charts/Containers/SpectraContainer.cs +11 −6 Original line number Diff line number Diff line Loading @@ -418,15 +418,14 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts.Containers { bool isPropertyChangedRequired = false; if (e.PropertyName.Equals(nameof(SpectrumSummaryModel.Filepath)) || e.PropertyName.Equals(nameof(SpectrumSummaryModel.FileReadingStatus))) if (e.PropertyName.Equals(nameof(SpectrumSummaryModel.IsReady))) isPropertyChangedRequired = true; //if (e.PropertyName.Equals(nameof(SpectrumSummaryModel.Filepath)) || // e.PropertyName.Equals(nameof(SpectrumSummaryModel.FileReadingStatus))) // isPropertyChangedRequired = true; if (isPropertyChangedRequired) { IsAnySummaryUpdated = true; isAnySummaryUpdated = false; // for the next usage } raiseIsAnySummaryUpdated(); } public void resetSummaries() Loading Loading @@ -507,6 +506,12 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts.Containers IsAnySpectrumUpdated = true; isAnySpectrumUpdated = false;// trick to enable for the next added spectrum } public void raiseIsAnySummaryUpdated() { IsAnySummaryUpdated = true; isAnySummaryUpdated = false; // for the next usage } #endregion #region retrieve aligned spectrum (by smoothing type) Loading
INAF.Apps.Uwp.SLabDataManager/Extensions/Extensions.cs +21 −12 Original line number Diff line number Diff line Loading @@ -13,9 +13,11 @@ using INAF.Libraries.NetStandard.SLabCommonModels.Models.Spectrum.ProcessedSpect using INAF.Libraries.NetStandard.SLabCommonModels.Models.Spectrum.ProcessedSpectraInfo.Smoothing; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using Telerik.UI.Xaml.Controls.Chart; using Windows.Data.Xml.Dom; Loading Loading @@ -351,18 +353,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Extensions /* used for 'ToSpectrumFile' extension method */ public static string ToXmlString(this IChartSpectrumModel spectrum) { if (spectrum == null || spectrum.Elements == null || spectrum.Elements.Count == 0) return null; XmlDocument dom = GetCommonXml(spectrum); var xmlspectrum = dom.SelectSingleNode(Constants.Constants.XML_SPECTRUM); /* append spectrum data (wavelength, value) */ var xmlelements = GetElements(spectrum, dom); xmlspectrum.AppendChild(xmlelements); return dom.GetXml(); return ((IChartSpectrumOfTypeProcessedModel)spectrum).ToXml().GetXml(); } /* used for 'saveSpectrumOfTypeAsLocalFileAsync' method in BaseUserControlViewModel */ Loading Loading @@ -635,5 +626,23 @@ namespace INAF.Apps.Uwp.SLabDataManager.Extensions // create the solidColorbrush return new SolidColorBrush(color); } public static IChartSpectrumModel ToChartSpectrumModel(this FileSpectrumModel fileSpectrum) { List<ElementModel> elements = new List<ElementModel>(); foreach (var element in fileSpectrum.Elements) { elements.Add(new ElementModel(element.X, element.Y)); } return new ChartSpectrumModel() { Id = fileSpectrum.Id, Filename = fileSpectrum.Filename, ParentId = fileSpectrum.ParentId, Type = fileSpectrum.Type, Elements = new ObservableCollection<ElementModel>(elements) }; } } }
INAF.Apps.Uwp.SLabDataManager/Helpers/XmlReaders/ConfigReader.cs→INAF.Apps.Uwp.SLabDataManager/Helpers/FileReaders/AssetFiles/XmlAssetConfigReader.cs +20 −16 Original line number Diff line number Diff line using INAF.Apps.Uwp.SLabDataManager.ViewModels.UserControlViewModels; using INAF.Apps.Uwp.SLabDataManager.Helpers.UI; using INAF.Apps.Uwp.SLabDataManager.ViewModels.UserControlViewModels; using INAF.Libraries.NetStandard.Extensions; using INAF.Libraries.NetStandard.ScienceModels.Spectra; using INAF.Libraries.Uwp.Logging; Loading @@ -8,33 +9,36 @@ using System.Threading.Tasks; using Windows.Data.Xml.Dom; using Windows.Storage; namespace INAF.Apps.Uwp.SLabDataManager.Helpers.XmlReaders namespace INAF.Apps.Uwp.SLabDataManager.Helpers.FileReaders { public sealed class ConfigReader : XmlReader public sealed class XmlAssetConfigReader { private readonly AlignmentViewModel alignmentViewModel; private readonly XmlHelper xmlHelper; private readonly Logger logger; public ConfigReader(IServiceProvider serviceProvider, AlignmentViewModel alignmentViewModel, public XmlAssetConfigReader(AlignmentViewModel alignmentViewModel, XmlHelper xmlHelper, Logger logger) : base(serviceProvider, xmlHelper, logger) Logger logger) { this.alignmentViewModel = alignmentViewModel; this.xmlHelper = xmlHelper; this.logger = logger; } public override async Task readFileAsync() public async Task readFileAsync() { StorageFile file = await getFileAsync("config.xml"); StorageFile file = await xmlHelper.getFileAsync("config.xml"); if (file == null) { logger.Write<ConfigReader>($"config.xml NOT FOUND!", Serilog.Events.LogEventLevel.Error); logger.Write<XmlAssetConfigReader>($"config.xml NOT FOUND!", Serilog.Events.LogEventLevel.Error); return; } XmlDocument dom = await xmlHelper.getXmlDocumentAsync(file); if (dom == null) { logger.Write<ConfigReader>($"Error while parsing config.xml!", Serilog.Events.LogEventLevel.Error); logger.Write<XmlAssetConfigReader>($"Error while parsing config.xml!", Serilog.Events.LogEventLevel.Error); return; } Loading @@ -44,16 +48,16 @@ namespace INAF.Apps.Uwp.SLabDataManager.Helpers.XmlReaders int index = 0; foreach (var node in wavelengthNodes) { string _currentValue = getNodeContent(node, "currentValue"); string _currentValue = xmlHelper.getNodeContent(node, "currentValue"); double currentValue = _currentValue.ToDoubleInvariant(); string _semiRange = getNodeContent(node, "semiRange"); string _semiRange = xmlHelper.getNodeContent(node, "semiRange"); double semiRange = _semiRange.ToDoubleInvariant(); string _step = getNodeContent(node, "step"); string _step = xmlHelper.getNodeContent(node, "step"); double step = _step.ToDoubleInvariant(); string _measureUnit = getNodeContent(node, "measureUnit"); string _measureUnit = xmlHelper.getNodeContent(node, "measureUnit"); int measureUnit = _measureUnit.ToIntInvariant(); if (!alignmentViewModel.contains(index)) Loading @@ -66,7 +70,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Helpers.XmlReaders } catch (Exception ex) { logger.Write<ConfigReader>($"Error while parsing config.xml - ex: {ex.Message}", Serilog.Events.LogEventLevel.Error); logger.Write<XmlAssetConfigReader>($"Error while parsing config.xml - ex: {ex.Message}", Serilog.Events.LogEventLevel.Error); return; } } Loading