Loading INAF.Apps.Uwp.SLabDataManager.Core/INAF.Apps.Uwp.SLabDataManager.Core.csproj +1 −1 Original line number Diff line number Diff line Loading @@ -10,6 +10,6 @@ </ItemGroup> <ItemGroup> <PackageReference Include="Newtonsoft.Json" Version="12.0.3" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.1" /> </ItemGroup> </Project> INAF.Apps.Uwp.SLabDataManager/App.xaml.cs +2 −1 Original line number Diff line number Diff line Loading @@ -169,12 +169,13 @@ namespace INAF.Apps.Uwp.SLabDataManager /* usercontrols viewmodels */ .AddScoped<AlignmentViewModel>() .AddScoped<MeasurementInfoViewModel>() .AddScoped<SampleDataViewModel>() .AddScoped<InfoViewModel>() .AddSingleton<SegmentsFitViewModel>() .AddScoped<SmoothingViewModel>() .AddSingleton<UserControlsViewModelFactory>() /* view models */ .AddSingleton<ChartViewModel>() .AddScoped<CurrentUserViewModel>() .AddSingleton<CustomPaletteHelper>() .AddTransient<LoginViewModel>() .AddTransient<LoginCheckViewModel>() Loading INAF.Apps.Uwp.SLabDataManager/Assets/xml/remoteoperations.xml +6 −4 Original line number Diff line number Diff line Loading @@ -16,19 +16,21 @@ <operation type="SaveAsCopySpectrumOfTypeContinuumRemoved">AppSpectraFilesActions/SaveAsCopySpectrumOfTypeContinuumRemoved</operation> <operation type="SaveSpectrumOfTypeRaw">AppSpectraFilesActions/SaveSpectrumOfTypeRaw</operation> <operation type="SaveSpectrumOfTypeSmoothed">AppSpectraFilesActions/SaveSpectrumOfTypeSmoothed</operation> <operation type="SaveSpectrumSampleData">AppSpectraFilesActions/SaveSpectrumSampleData</operation> <operation type="IsAnySpectrumTypeSavedOnCloud">AppSpectraFilesActions/IsAnySpectrumTypeSavedOnCloud</operation> <operation type="IsSpectrumTypeSavedOnCloud">AppSpectraFilesActions/IsSpectrumTypeSavedOnCloud</operation> <operation type="GetChildrenSpectraTypes">AppSpectraFilesActions/GetChildrenSpectraTypes</operation> <!-- USERS --> <operation type="GetUserDetailsSimple">Users/GetUserDetailsSimple</operation> <operation type="GetUserPermissions">Users/GetUserPermissions</operation> <!-- PERMISSIONS --> <operation type="IsSaveOnCloudFromAppPermissionGranted">Permissions/IsSaveOnCloudFromAppPermissionGranted</operation> <!-- SAMPLE AND MEASUREMENT --> <operation type="GetSpectrumMeasurementInfo">SampleAndMeasurement/GetSpectrumMeasurementInfo</operation> <operation type="GetSpectrumSampleData">SampleAndMeasurement/GetSpectrumSampleData</operation> <!-- MINERALS --> <operation type="GetMinerals">Minerals/GetMinerals</operation> <operation type="GetSampleDataValues">Minerals/GetSampleDataValues</operation> <operation type="SaveInfo">SampleAndMeasurement/SaveInfo</operation> <!-- MATERIALS --> <operation type="GetMinerals">Materials/GetMinerals</operation> <operation type="GetRocks">Materials/GetRocks</operation> <operation type="GetSampleDataValues">Materials/GetSampleDataValues</operation> </operationUrls> </remoteOperationsData> No newline at end of file INAF.Apps.Uwp.SLabDataManager/Converters/Converters.cs +25 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ using INAF.Apps.Uwp.SLabDataManager.Models.Charts; using INAF.Apps.Uwp.SLabDataManager.Models.Containers; using INAF.Apps.Uwp.SLabDataManager.ViewModels; using INAF.Libraries.NetStandard.SLabCommonModels.Extensions; using INAF.Libraries.NetStandard.SLabCommonModels.Models.WebApp.Permissions; using System; using System.Collections.Generic; using System.IO; Loading Loading @@ -220,6 +221,30 @@ namespace INAF.Apps.Uwp.SLabDataManager.Converters } } public sealed class PermissionDescriptionConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, string language) { try { PermissionModel permission = (PermissionModel)value; if (!string.IsNullOrEmpty(permission.Description)) return string.Join(string.Empty, "(", permission.Description, ")"); else return string.Empty; } catch (Exception) { return string.Empty; } } public object ConvertBack(object value, Type targetType, object parameter, string language) { throw new NotImplementedException(); } } public sealed class ShortFilepathConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, string language) Loading INAF.Apps.Uwp.SLabDataManager/Helpers/PermissionsHelper.cs +32 −5 Original line number Diff line number Diff line using INAF.Libraries.NetStandard.SLabCommonModels.Enums; using INAF.Apps.Uwp.SLabDataManager.Helpers.RemoteOperations; using INAF.Libraries.NetStandard.SLabCommonModels.Enums; using INAF.Libraries.NetStandard.SLabCommonModels.Models.WebApp.Permissions; using INAF.Libraries.Uwp.Logging; using Microsoft.Extensions.DependencyInjection; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using static INAF.Libraries.NetStandard.SLabCommonModels.Enums.Enums; namespace INAF.Apps.Uwp.SLabDataManager.Helpers { public sealed class PermissionsHelper { public PermissionsHelper() { } private readonly IServiceProvider serviceProvider; private readonly Logger logger; public PermissionsHelper(IServiceProvider serviceProvider) { this.serviceProvider = serviceProvider; logger = serviceProvider.GetRequiredService<Logger>(); tryInitAsync(); } public List<PermissionModel> Permissions { get; private set; } Loading @@ -20,9 +34,22 @@ namespace INAF.Apps.Uwp.SLabDataManager.Helpers return Permissions.Any(x => x.Id == (int)permission); } public void setPermissions(List<PermissionModel> permissions) public async Task<bool> tryInitAsync() { Permissions = permissions; bool isOk = true; try { RemoteOperationsManager remoteOperationsManager = serviceProvider.GetRequiredService<RemoteOperationsManager>(); Permissions = await remoteOperationsManager.getUserPermissionsAsync(); } catch (Exception ex) { isOk = false; logger.Write<PermissionsHelper>($"{nameof(tryInitAsync)} - ex: {ex.Message}", Serilog.Events.LogEventLevel.Error); } return isOk; } #region wrappers Loading Loading
INAF.Apps.Uwp.SLabDataManager.Core/INAF.Apps.Uwp.SLabDataManager.Core.csproj +1 −1 Original line number Diff line number Diff line Loading @@ -10,6 +10,6 @@ </ItemGroup> <ItemGroup> <PackageReference Include="Newtonsoft.Json" Version="12.0.3" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.1" /> </ItemGroup> </Project>
INAF.Apps.Uwp.SLabDataManager/App.xaml.cs +2 −1 Original line number Diff line number Diff line Loading @@ -169,12 +169,13 @@ namespace INAF.Apps.Uwp.SLabDataManager /* usercontrols viewmodels */ .AddScoped<AlignmentViewModel>() .AddScoped<MeasurementInfoViewModel>() .AddScoped<SampleDataViewModel>() .AddScoped<InfoViewModel>() .AddSingleton<SegmentsFitViewModel>() .AddScoped<SmoothingViewModel>() .AddSingleton<UserControlsViewModelFactory>() /* view models */ .AddSingleton<ChartViewModel>() .AddScoped<CurrentUserViewModel>() .AddSingleton<CustomPaletteHelper>() .AddTransient<LoginViewModel>() .AddTransient<LoginCheckViewModel>() Loading
INAF.Apps.Uwp.SLabDataManager/Assets/xml/remoteoperations.xml +6 −4 Original line number Diff line number Diff line Loading @@ -16,19 +16,21 @@ <operation type="SaveAsCopySpectrumOfTypeContinuumRemoved">AppSpectraFilesActions/SaveAsCopySpectrumOfTypeContinuumRemoved</operation> <operation type="SaveSpectrumOfTypeRaw">AppSpectraFilesActions/SaveSpectrumOfTypeRaw</operation> <operation type="SaveSpectrumOfTypeSmoothed">AppSpectraFilesActions/SaveSpectrumOfTypeSmoothed</operation> <operation type="SaveSpectrumSampleData">AppSpectraFilesActions/SaveSpectrumSampleData</operation> <operation type="IsAnySpectrumTypeSavedOnCloud">AppSpectraFilesActions/IsAnySpectrumTypeSavedOnCloud</operation> <operation type="IsSpectrumTypeSavedOnCloud">AppSpectraFilesActions/IsSpectrumTypeSavedOnCloud</operation> <operation type="GetChildrenSpectraTypes">AppSpectraFilesActions/GetChildrenSpectraTypes</operation> <!-- USERS --> <operation type="GetUserDetailsSimple">Users/GetUserDetailsSimple</operation> <operation type="GetUserPermissions">Users/GetUserPermissions</operation> <!-- PERMISSIONS --> <operation type="IsSaveOnCloudFromAppPermissionGranted">Permissions/IsSaveOnCloudFromAppPermissionGranted</operation> <!-- SAMPLE AND MEASUREMENT --> <operation type="GetSpectrumMeasurementInfo">SampleAndMeasurement/GetSpectrumMeasurementInfo</operation> <operation type="GetSpectrumSampleData">SampleAndMeasurement/GetSpectrumSampleData</operation> <!-- MINERALS --> <operation type="GetMinerals">Minerals/GetMinerals</operation> <operation type="GetSampleDataValues">Minerals/GetSampleDataValues</operation> <operation type="SaveInfo">SampleAndMeasurement/SaveInfo</operation> <!-- MATERIALS --> <operation type="GetMinerals">Materials/GetMinerals</operation> <operation type="GetRocks">Materials/GetRocks</operation> <operation type="GetSampleDataValues">Materials/GetSampleDataValues</operation> </operationUrls> </remoteOperationsData> No newline at end of file
INAF.Apps.Uwp.SLabDataManager/Converters/Converters.cs +25 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ using INAF.Apps.Uwp.SLabDataManager.Models.Charts; using INAF.Apps.Uwp.SLabDataManager.Models.Containers; using INAF.Apps.Uwp.SLabDataManager.ViewModels; using INAF.Libraries.NetStandard.SLabCommonModels.Extensions; using INAF.Libraries.NetStandard.SLabCommonModels.Models.WebApp.Permissions; using System; using System.Collections.Generic; using System.IO; Loading Loading @@ -220,6 +221,30 @@ namespace INAF.Apps.Uwp.SLabDataManager.Converters } } public sealed class PermissionDescriptionConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, string language) { try { PermissionModel permission = (PermissionModel)value; if (!string.IsNullOrEmpty(permission.Description)) return string.Join(string.Empty, "(", permission.Description, ")"); else return string.Empty; } catch (Exception) { return string.Empty; } } public object ConvertBack(object value, Type targetType, object parameter, string language) { throw new NotImplementedException(); } } public sealed class ShortFilepathConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, string language) Loading
INAF.Apps.Uwp.SLabDataManager/Helpers/PermissionsHelper.cs +32 −5 Original line number Diff line number Diff line using INAF.Libraries.NetStandard.SLabCommonModels.Enums; using INAF.Apps.Uwp.SLabDataManager.Helpers.RemoteOperations; using INAF.Libraries.NetStandard.SLabCommonModels.Enums; using INAF.Libraries.NetStandard.SLabCommonModels.Models.WebApp.Permissions; using INAF.Libraries.Uwp.Logging; using Microsoft.Extensions.DependencyInjection; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using static INAF.Libraries.NetStandard.SLabCommonModels.Enums.Enums; namespace INAF.Apps.Uwp.SLabDataManager.Helpers { public sealed class PermissionsHelper { public PermissionsHelper() { } private readonly IServiceProvider serviceProvider; private readonly Logger logger; public PermissionsHelper(IServiceProvider serviceProvider) { this.serviceProvider = serviceProvider; logger = serviceProvider.GetRequiredService<Logger>(); tryInitAsync(); } public List<PermissionModel> Permissions { get; private set; } Loading @@ -20,9 +34,22 @@ namespace INAF.Apps.Uwp.SLabDataManager.Helpers return Permissions.Any(x => x.Id == (int)permission); } public void setPermissions(List<PermissionModel> permissions) public async Task<bool> tryInitAsync() { Permissions = permissions; bool isOk = true; try { RemoteOperationsManager remoteOperationsManager = serviceProvider.GetRequiredService<RemoteOperationsManager>(); Permissions = await remoteOperationsManager.getUserPermissionsAsync(); } catch (Exception ex) { isOk = false; logger.Write<PermissionsHelper>($"{nameof(tryInitAsync)} - ex: {ex.Message}", Serilog.Events.LogEventLevel.Error); } return isOk; } #region wrappers Loading