Commit 33926168 authored by Francesco Carraro's avatar Francesco Carraro
Browse files

working on deleting procedure in usercontrols; adding permissions for some actions

parent 0ff84002
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -127,6 +127,7 @@ namespace INAF.Apps.Uwp.SLabDataManager
                .AddSingleton<ContinuumSpectraContainer>()
                .AddSingleton<FitMethodsHelper>()
                .AddSingleton<Logger>(logger)
                .AddSingleton<PermissionsHelper>()
                .AddSingleton<RecentFilesHelper>()
                .AddSingleton<UserControlsHelper>()
                .AddSingleton<RemoteOperationsRepository>()
+4 −0
Original line number Diff line number Diff line
@@ -2,10 +2,12 @@
<remoteOperationsData>
	<baseUrl>http://localhost:81</baseUrl>
	<operationUrls>
		<!-- ACCOUNT -->
		<operation type="Authentication">Account/LoginForJwt</operation>
		<operation type="CheckAlive">AppActions/CheckAlive</operation>
		<operation type="IsTokenValid">Account/IsTokenValid</operation>
		<operation type="IsLoginValid">Account/IsLoginValid</operation>
		<!-- SPECTRA FILES ACTIONS -->
		<operation type="SaveSpectrumOfTypeAligned">AppSpectraFilesActions/SaveSpectrumOfTypeAligned</operation>
		<operation type="SaveSpectrumOfTypeContinuumRemoved">AppSpectraFilesActions/SaveSpectrumOfTypeContinuumRemoved</operation>
		<operation type="SaveAsCopySpectrumOfTypeContinuumRemoved">AppSpectraFilesActions/SaveAsCopySpectrumOfTypeContinuumRemoved</operation>
@@ -16,5 +18,7 @@
		<operation type="IsSpectrumTypeSavedOnCloud">AppSpectraFilesActions/IsSpectrumTypeSavedOnCloud</operation>
		<operation type="GetSampleDataValues">AppSpectraFilesActions/GetSampleDataValues</operation>
		<operation type="DeleteSpectrum">AppSpectraFilesActions/DeleteSpectrum</operation>
		<!-- USERS -->
		<operation type="GetUserPermissions">Users/GetUserPermissions</operation>
	</operationUrls>
</remoteOperationsData>
 No newline at end of file
+30 −0
Original line number Diff line number Diff line
using INAF.Libraries.NetStandard.SLabCommonModels.Enums;
using INAF.Libraries.NetStandard.SLabCommonModels.Models.WebApp.Permissions;
using System.Collections.Generic;
using System.Linq;
using static INAF.Libraries.NetStandard.SLabCommonModels.Enums.Enums;

namespace INAF.Apps.Uwp.SLabDataManager.Helpers
{
    public sealed class PermissionsHelper
    {
        public List<PermissionModel> Permissions { get; private set; }

        public bool isPermissionAvailable(Permissions permission)
        {
            return Permissions.Any(x => x.Id == (int)permission);
        }

        public void setPermissions(List<PermissionModel> permissions)
        {
            Permissions = permissions;
        }

        #region wrappers
        public bool isSaveOnCloudFromAppAllowed()
        {
            return isPermissionAvailable(Enums.Permissions.SaveOnCloudFromApp);
        }
        #endregion
    }
}
+1 −54
Original line number Diff line number Diff line
using INAF.Libraries.NetStandard.SLabCommonModels.Authentication;
using INAF.Libraries.NetStandard.SLabCommonModels.Models.SampleData;
using INAF.Libraries.NetStandard.SLabCommonModels.Models.WebApp.Requests;
using INAF.Libraries.NetStandard.SLabCommonModels.Models.WebApp.Requests.SaveSpectrum;
using INAF.Libraries.NetStandard.SLabCommonModels.Models.WebApp.Responses;
using INAF.Libraries.Uwp.Logging;
using INAF.Libraries.Uwp.Settings;
using Newtonsoft.Json;
@@ -14,7 +11,7 @@ using static INAF.Libraries.NetStandard.SLabCommonModels.Enums.Enums;

namespace INAF.Apps.Uwp.SLabDataManager.Helpers.RemoteOperations
{
    public sealed class RemoteOperationsManager : IDisposable
    public sealed partial class RemoteOperationsManager : IDisposable
    {
        private readonly SettingsHelper settingsHelper;
        private readonly RemoteOperationsRepository remoteOperationsRepository;
@@ -45,56 +42,6 @@ namespace INAF.Apps.Uwp.SLabDataManager.Helpers.RemoteOperations
            return await getAsync<T>(remoteOperationType);
        }

        public async Task<bool> isLoginValidAsync()
        {
            return await getAsync(RemoteOperationType.IsLoginValid);
        }

        public async Task<bool> isTokenValidAsync()
        {
            return await getAsync(RemoteOperationType.IsTokenValid);
        }

        public async Task<GenericIdResponseModel> isAnySpectrumTypeSavedOnCloudAsync(IsAnySpectrumTypeSavedOnCloudRequestModel model)
        {
            return await postAsync<GenericIdResponseModel>(model, RemoteOperationType.IsAnySpectrumTypeSavedOnCloud);
        }

        public async Task<GenericIdResponseModel> isSpectrumTypeSavedOnCloudAsync(IsSpectrumTypeSavedOnCloudRequestModel model)
        {
            return await postAsync<GenericIdResponseModel>(model, RemoteOperationType.IsSpectrumTypeSavedOnCloud);
        }

        public async Task<GenericIdResponseModel> saveSpectrumOfTypeAlignedAsync(SaveSpectrumOfTypeAlignedRequestModel saveSpectrumRequest)
        {
            return await postAsync<GenericIdResponseModel>(saveSpectrumRequest, RemoteOperationType.SaveSpectrumOfTypeAligned);
        }

        public async Task<SegmentsProcessingResponseModel> saveSpectrumOfTypeContinuumRemovedAsync(SaveSpectrumOfTypeContinuumRemovedRequestModel saveSpectrumRequest)
        {
            return await postAsync<SegmentsProcessingResponseModel>(saveSpectrumRequest, RemoteOperationType.SaveSpectrumOfTypeContinuumRemoved);
        }

        public async Task<SegmentsProcessingResponseModel> saveAsCopySpectrumOfTypeContinuumRemovedAsync(SaveSpectrumOfTypeContinuumRemovedRequestModel saveSpectrumRequest)
        {
            return await postAsync<SegmentsProcessingResponseModel>(saveSpectrumRequest, RemoteOperationType.SaveAsCopySpectrumOfTypeContinuumRemoved);
        }

        public async Task<GenericIdResponseModel> saveSpectrumOfTypeRawAsync(SaveSpectrumOfTypeRawRequestModel saveSpectrumRequest)
        {
            return await postAsync<GenericIdResponseModel>(saveSpectrumRequest, RemoteOperationType.SaveSpectrumOfTypeRaw);
        }

        public async Task<SegmentsProcessingResponseModel> saveSpectrumOfTypeSmoothedAsync(SaveSpectrumOfTypeSmoothedRequestModel saveSpectrumRequest)
        {
            return await postAsync<SegmentsProcessingResponseModel>(saveSpectrumRequest, RemoteOperationType.SaveSpectrumOfTypeSmoothed);
        }

        public async Task<GenericIdResponseModel> saveSpectrumSampleDataAsync(InfoSelectedValuesModel saveSampleDataRequest)
        {
            return await postAsync<GenericIdResponseModel>(saveSampleDataRequest, RemoteOperationType.SaveSpectrumSampleData);
        }

        #region private
        private HttpStringContent getHttpStringContent(Object objectToBeSerialized)
        {
+52 −0
Original line number Diff line number Diff line
using INAF.Libraries.NetStandard.SLabCommonModels.Models.SampleData;
using INAF.Libraries.NetStandard.SLabCommonModels.Models.WebApp.Requests;
using INAF.Libraries.NetStandard.SLabCommonModels.Models.WebApp.Requests.SaveSpectrum;
using INAF.Libraries.NetStandard.SLabCommonModels.Models.WebApp.Responses;
using System.Threading.Tasks;
using static INAF.Libraries.NetStandard.SLabCommonModels.Enums.Enums;

namespace INAF.Apps.Uwp.SLabDataManager.Helpers.RemoteOperations
{
    public partial class RemoteOperationsManager
    {
        public async Task<GenericIdResponseModel> isAnySpectrumTypeSavedOnCloudAsync(IsAnySpectrumTypeSavedOnCloudRequestModel model)
        {
            return await postAsync<GenericIdResponseModel>(model, RemoteOperationType.IsAnySpectrumTypeSavedOnCloud);
        }

        public async Task<GenericIdResponseModel> isSpectrumTypeSavedOnCloudAsync(IsSpectrumTypeSavedOnCloudRequestModel model)
        {
            return await postAsync<GenericIdResponseModel>(model, RemoteOperationType.IsSpectrumTypeSavedOnCloud);
        }

        public async Task<GenericIdResponseModel> saveSpectrumOfTypeAlignedAsync(SaveSpectrumOfTypeAlignedRequestModel saveSpectrumRequest)
        {
            return await postAsync<GenericIdResponseModel>(saveSpectrumRequest, RemoteOperationType.SaveSpectrumOfTypeAligned);
        }

        public async Task<SegmentsProcessingResponseModel> saveSpectrumOfTypeContinuumRemovedAsync(SaveSpectrumOfTypeContinuumRemovedRequestModel saveSpectrumRequest)
        {
            return await postAsync<SegmentsProcessingResponseModel>(saveSpectrumRequest, RemoteOperationType.SaveSpectrumOfTypeContinuumRemoved);
        }

        public async Task<SegmentsProcessingResponseModel> saveAsCopySpectrumOfTypeContinuumRemovedAsync(SaveSpectrumOfTypeContinuumRemovedRequestModel saveSpectrumRequest)
        {
            return await postAsync<SegmentsProcessingResponseModel>(saveSpectrumRequest, RemoteOperationType.SaveAsCopySpectrumOfTypeContinuumRemoved);
        }

        public async Task<GenericIdResponseModel> saveSpectrumOfTypeRawAsync(SaveSpectrumOfTypeRawRequestModel saveSpectrumRequest)
        {
            return await postAsync<GenericIdResponseModel>(saveSpectrumRequest, RemoteOperationType.SaveSpectrumOfTypeRaw);
        }

        public async Task<SegmentsProcessingResponseModel> saveSpectrumOfTypeSmoothedAsync(SaveSpectrumOfTypeSmoothedRequestModel saveSpectrumRequest)
        {
            return await postAsync<SegmentsProcessingResponseModel>(saveSpectrumRequest, RemoteOperationType.SaveSpectrumOfTypeSmoothed);
        }

        public async Task<GenericIdResponseModel> saveSpectrumSampleDataAsync(InfoSelectedValuesModel saveSampleDataRequest)
        {
            return await postAsync<GenericIdResponseModel>(saveSampleDataRequest, RemoteOperationType.SaveSpectrumSampleData);
        }
    }
}
Loading