Loading INAF.Apps.Uwp.SLabDataManager/ViewModels/UserControlViewModels/ChartPanels/SmoothingViewModel.cs +50 −52 Original line number Original line Diff line number Diff line Loading @@ -83,7 +83,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels.UserControlViewModels } } #endregion #endregion #region smoothing spectrum dict #region SMOOTHING SPECTRUM DICT private void addOrUpdateIsSmoothingSpectrumTypeSavedOnCloudDictionary(SpectrumType spectrumType, SmoothingType smoothingType, bool isSaved) private void addOrUpdateIsSmoothingSpectrumTypeSavedOnCloudDictionary(SpectrumType spectrumType, SmoothingType smoothingType, bool isSaved) { { Tuple<SpectrumType, SmoothingType> tuple = new Tuple<SpectrumType, SmoothingType>(spectrumType, smoothingType); Tuple<SpectrumType, SmoothingType> tuple = new Tuple<SpectrumType, SmoothingType>(spectrumType, smoothingType); Loading @@ -101,7 +101,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels.UserControlViewModels } } #endregion #endregion #region methods #region METHODS public async Task checkSmoothingSpectraTypesAreSavedOnCloudAsync() public async Task checkSmoothingSpectraTypesAreSavedOnCloudAsync() { { var remoteOperationsManager = serviceProvider.GetRequiredService<RemoteOperationsManager>(); var remoteOperationsManager = serviceProvider.GetRequiredService<RemoteOperationsManager>(); Loading Loading @@ -228,7 +228,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels.UserControlViewModels } } #endregion #endregion #region smoothing methods #region SMOOTHING public async Task<AppProcessingResult> applySmoothingBySegmentsAsync(SpectrumType destSpectrumType) public async Task<AppProcessingResult> applySmoothingBySegmentsAsync(SpectrumType destSpectrumType) { { /* clone spectrum for smoothing */ /* clone spectrum for smoothing */ Loading @@ -253,8 +253,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels.UserControlViewModels } } #endregion #endregion #region retrieve values from cloud #region GET/SET VALUES ON CLOUD #region fit private async Task initFitFunctionsAsync() private async Task initFitFunctionsAsync() { { var fitMethodsContainer = serviceProvider.GetRequiredService<FitMethodsHelper>(); var fitMethodsContainer = serviceProvider.GetRequiredService<FitMethodsHelper>(); Loading Loading @@ -321,55 +320,54 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels.UserControlViewModels ExMsg = "SmoothingSettingSaveErrorMessage".GetText(); ExMsg = "SmoothingSettingSaveErrorMessage".GetText(); } } #endregion #endregion #endregion #region smoothing procedure #region smoothing procedure public async Task<(IChartSpectrumModel smoothedSpectrum, bool isOk)> applySmoothingToSegments(IChartSpectrumModel inputSpectrum) //public async Task<(IChartSpectrumModel smoothedSpectrum, bool isOk)> applySmoothingToSegments(IChartSpectrumModel inputSpectrum) { //{ (IChartSpectrumModel smoothedSpectrum, bool isOk) result = await Task.Run(() => // (IChartSpectrumModel smoothedSpectrum, bool isOk) result = await Task.Run(() => { // { bool isOk = true; // bool isOk = true; try // try { // { var savitzkyGolayHelper = serviceProvider.GetRequiredService<SavitzkyGolayHelper>(); // var savitzkyGolayHelper = serviceProvider.GetRequiredService<SavitzkyGolayHelper>(); foreach (var boundariesItem in SmoothingBySegmentsContainer.Segments) // foreach (var boundariesItem in SmoothingBySegmentsContainer.Segments) { // { var segment = inputSpectrum.Elements.Where(x => x.X >= boundariesItem.XStart && x.X <= boundariesItem.XEnd); // var segment = inputSpectrum.Elements.Where(x => x.X >= boundariesItem.XStart && x.X <= boundariesItem.XEnd); var filteredValues = savitzkyGolayHelper.applySavitzkyGolayFilter(segment.Select(x => x.Y).ToArray(), // var filteredValues = savitzkyGolayHelper.applySavitzkyGolayFilter(segment.Select(x => x.Y).ToArray(), boundariesItem.WindowSize, // boundariesItem.WindowSize, boundariesItem.PolynomialOrder); // boundariesItem.PolynomialOrder); int elementsNum = segment.Count(); // int elementsNum = segment.Count(); for (int i = 0; i < elementsNum; i++) // for (int i = 0; i < elementsNum; i++) { // { segment.ElementAt(i).updateY(filteredValues[i]); // segment.ElementAt(i).updateY(filteredValues[i]); } // } } // } } // } catch (Exception ex) // catch (Exception ex) { // { isOk = false; // isOk = false; logger.Write<SmoothingViewModel>($"{nameof(applySmoothingToSegments)} - ex: {ex.Message}", Serilog.Events.LogEventLevel.Error); // logger.Write<SmoothingViewModel>($"{nameof(applySmoothingToSegments)} - ex: {ex.Message}", Serilog.Events.LogEventLevel.Error); } // } return (inputSpectrum, isOk); // return (inputSpectrum, isOk); }); // }); if (!result.isOk) // if (!result.isOk) return result; // return result; /* fill spectrum-model with values for smoothing */ // /* fill spectrum-model with values for smoothing */ SmoothingSettingsModel smoothingSettings = new SmoothingSettingsModel() // SmoothingSettingsModel smoothingSettings = new SmoothingSettingsModel() { // { Segments = getSegments(inputSpectrum.Type) // Segments = getSegments(inputSpectrum.Type) }; // }; ((ChartSpectrumOfTypeSmoothedModel)inputSpectrum).SmoothingSettings = smoothingSettings; // ((ChartSpectrumOfTypeSmoothedModel)inputSpectrum).SmoothingSettings = smoothingSettings; return result; // return result; } //} public async Task<(IChartSpectrumModel filteredSpectrum, bool isOk)> applySmoothingToSpectrum(IChartSpectrumModel inputSpectrum) public async Task<(IChartSpectrumModel filteredSpectrum, bool isOk)> applySmoothingToSpectrum(IChartSpectrumModel inputSpectrum) { { Loading Loading
INAF.Apps.Uwp.SLabDataManager/ViewModels/UserControlViewModels/ChartPanels/SmoothingViewModel.cs +50 −52 Original line number Original line Diff line number Diff line Loading @@ -83,7 +83,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels.UserControlViewModels } } #endregion #endregion #region smoothing spectrum dict #region SMOOTHING SPECTRUM DICT private void addOrUpdateIsSmoothingSpectrumTypeSavedOnCloudDictionary(SpectrumType spectrumType, SmoothingType smoothingType, bool isSaved) private void addOrUpdateIsSmoothingSpectrumTypeSavedOnCloudDictionary(SpectrumType spectrumType, SmoothingType smoothingType, bool isSaved) { { Tuple<SpectrumType, SmoothingType> tuple = new Tuple<SpectrumType, SmoothingType>(spectrumType, smoothingType); Tuple<SpectrumType, SmoothingType> tuple = new Tuple<SpectrumType, SmoothingType>(spectrumType, smoothingType); Loading @@ -101,7 +101,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels.UserControlViewModels } } #endregion #endregion #region methods #region METHODS public async Task checkSmoothingSpectraTypesAreSavedOnCloudAsync() public async Task checkSmoothingSpectraTypesAreSavedOnCloudAsync() { { var remoteOperationsManager = serviceProvider.GetRequiredService<RemoteOperationsManager>(); var remoteOperationsManager = serviceProvider.GetRequiredService<RemoteOperationsManager>(); Loading Loading @@ -228,7 +228,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels.UserControlViewModels } } #endregion #endregion #region smoothing methods #region SMOOTHING public async Task<AppProcessingResult> applySmoothingBySegmentsAsync(SpectrumType destSpectrumType) public async Task<AppProcessingResult> applySmoothingBySegmentsAsync(SpectrumType destSpectrumType) { { /* clone spectrum for smoothing */ /* clone spectrum for smoothing */ Loading @@ -253,8 +253,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels.UserControlViewModels } } #endregion #endregion #region retrieve values from cloud #region GET/SET VALUES ON CLOUD #region fit private async Task initFitFunctionsAsync() private async Task initFitFunctionsAsync() { { var fitMethodsContainer = serviceProvider.GetRequiredService<FitMethodsHelper>(); var fitMethodsContainer = serviceProvider.GetRequiredService<FitMethodsHelper>(); Loading Loading @@ -321,55 +320,54 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels.UserControlViewModels ExMsg = "SmoothingSettingSaveErrorMessage".GetText(); ExMsg = "SmoothingSettingSaveErrorMessage".GetText(); } } #endregion #endregion #endregion #region smoothing procedure #region smoothing procedure public async Task<(IChartSpectrumModel smoothedSpectrum, bool isOk)> applySmoothingToSegments(IChartSpectrumModel inputSpectrum) //public async Task<(IChartSpectrumModel smoothedSpectrum, bool isOk)> applySmoothingToSegments(IChartSpectrumModel inputSpectrum) { //{ (IChartSpectrumModel smoothedSpectrum, bool isOk) result = await Task.Run(() => // (IChartSpectrumModel smoothedSpectrum, bool isOk) result = await Task.Run(() => { // { bool isOk = true; // bool isOk = true; try // try { // { var savitzkyGolayHelper = serviceProvider.GetRequiredService<SavitzkyGolayHelper>(); // var savitzkyGolayHelper = serviceProvider.GetRequiredService<SavitzkyGolayHelper>(); foreach (var boundariesItem in SmoothingBySegmentsContainer.Segments) // foreach (var boundariesItem in SmoothingBySegmentsContainer.Segments) { // { var segment = inputSpectrum.Elements.Where(x => x.X >= boundariesItem.XStart && x.X <= boundariesItem.XEnd); // var segment = inputSpectrum.Elements.Where(x => x.X >= boundariesItem.XStart && x.X <= boundariesItem.XEnd); var filteredValues = savitzkyGolayHelper.applySavitzkyGolayFilter(segment.Select(x => x.Y).ToArray(), // var filteredValues = savitzkyGolayHelper.applySavitzkyGolayFilter(segment.Select(x => x.Y).ToArray(), boundariesItem.WindowSize, // boundariesItem.WindowSize, boundariesItem.PolynomialOrder); // boundariesItem.PolynomialOrder); int elementsNum = segment.Count(); // int elementsNum = segment.Count(); for (int i = 0; i < elementsNum; i++) // for (int i = 0; i < elementsNum; i++) { // { segment.ElementAt(i).updateY(filteredValues[i]); // segment.ElementAt(i).updateY(filteredValues[i]); } // } } // } } // } catch (Exception ex) // catch (Exception ex) { // { isOk = false; // isOk = false; logger.Write<SmoothingViewModel>($"{nameof(applySmoothingToSegments)} - ex: {ex.Message}", Serilog.Events.LogEventLevel.Error); // logger.Write<SmoothingViewModel>($"{nameof(applySmoothingToSegments)} - ex: {ex.Message}", Serilog.Events.LogEventLevel.Error); } // } return (inputSpectrum, isOk); // return (inputSpectrum, isOk); }); // }); if (!result.isOk) // if (!result.isOk) return result; // return result; /* fill spectrum-model with values for smoothing */ // /* fill spectrum-model with values for smoothing */ SmoothingSettingsModel smoothingSettings = new SmoothingSettingsModel() // SmoothingSettingsModel smoothingSettings = new SmoothingSettingsModel() { // { Segments = getSegments(inputSpectrum.Type) // Segments = getSegments(inputSpectrum.Type) }; // }; ((ChartSpectrumOfTypeSmoothedModel)inputSpectrum).SmoothingSettings = smoothingSettings; // ((ChartSpectrumOfTypeSmoothedModel)inputSpectrum).SmoothingSettings = smoothingSettings; return result; // return result; } //} public async Task<(IChartSpectrumModel filteredSpectrum, bool isOk)> applySmoothingToSpectrum(IChartSpectrumModel inputSpectrum) public async Task<(IChartSpectrumModel filteredSpectrum, bool isOk)> applySmoothingToSpectrum(IChartSpectrumModel inputSpectrum) { { Loading