Compare commits

...

2 Commits

14 changed files with 255 additions and 150 deletions

View File

@@ -1,4 +1,5 @@
using Microsoft.EntityFrameworkCore; using System.Linq.Expressions;
using Microsoft.EntityFrameworkCore;
using SteUp.Shared.Core.Entities; using SteUp.Shared.Core.Entities;
using SteUp.Shared.Core.Enum; using SteUp.Shared.Core.Enum;
using SteUp.Shared.Core.Helpers; using SteUp.Shared.Core.Helpers;
@@ -17,6 +18,11 @@ public class IspezioniService(AppDbContext db) : IIspezioniService
x.Data == data && x.Data == data &&
x.Rilevatore == rilevatore); x.Rilevatore == rilevatore);
public Task<List<Ispezione>> GetAllIspezioni() =>
db.Ispezioni
.AsNoTracking()
.ToListAsync();
public Task<List<Ispezione>> GetAllIspezioniWithSchedeAsync() => public Task<List<Ispezione>> GetAllIspezioniWithSchedeAsync() =>
db.Ispezioni db.Ispezioni
.Include(x => x.Schede) .Include(x => x.Schede)
@@ -67,15 +73,16 @@ public class IspezioniService(AppDbContext db) : IIspezioniService
await db.SaveChangesAsync(); await db.SaveChangesAsync();
return true; return true;
} }
public async Task<bool> UpdateStatoIspezioneAsync(string codMdep, DateTime data, string rilevatore, StatusEnum stato) public async Task<bool> UpdateStatoIspezioneAsync(string codMdep, DateTime data, string rilevatore,
StatusEnum stato)
{ {
var ispezione = await db.Ispezioni var ispezione = await db.Ispezioni
.FirstOrDefaultAsync(x => .FirstOrDefaultAsync(x =>
x.CodMdep == codMdep && x.CodMdep == codMdep &&
x.Data == data && x.Data == data &&
x.Rilevatore == rilevatore); x.Rilevatore == rilevatore);
if (ispezione is null) if (ispezione is null)
return false; return false;
@@ -93,7 +100,7 @@ public class IspezioniService(AppDbContext db) : IIspezioniService
x.CodMdep == codMdep && x.CodMdep == codMdep &&
x.Data == data && x.Data == data &&
x.Rilevatore == rilevatore); x.Rilevatore == rilevatore);
if (ispezione is null) if (ispezione is null)
return false; return false;

View File

@@ -1,7 +1,5 @@
@using CommunityToolkit.Mvvm.Messaging @using CommunityToolkit.Mvvm.Messaging
@using SteUp.Shared.Core.Entities @using SteUp.Shared.Components.SingleElements.MessageBox
@using SteUp.Shared.Core.Interface.IntegryApi
@using SteUp.Shared.Core.Interface.System.Network
@using SteUp.Shared.Core.Messages.Ispezione @using SteUp.Shared.Core.Messages.Ispezione
@using SteUp.Shared.Core.Messages.Scheda @using SteUp.Shared.Core.Messages.Scheda
@inject INetworkService NetworkService @inject INetworkService NetworkService
@@ -40,18 +38,18 @@
Size="Size.Medium" IconSize="Size.Medium"> Size="Size.Medium" IconSize="Size.Medium">
@if (SchedaVisible) @if (SchedaVisible)
{ {
<MudFabMenuItem Disabled="!NetworkService.IsNetworkAvailable()" OnClick="@NewScheda"
Label="Nuova scheda" Color="Color.Surface"/>
if (ShowCompleteInspection) if (ShowCompleteInspection)
{ {
<MudFabMenuItem Disabled="!NetworkService.IsNetworkAvailable()" OnClick="@CompleteInspection" <MudFabMenuItem Disabled="!NetworkService.IsNetworkAvailable()" OnClick="@CompleteInspection"
Label="Concludi ispezione" Color="Color.Surface"/> Label="Concludi ispezione" Color="Color.Surface"/>
} }
<MudFabMenuItem Disabled="!NetworkService.IsNetworkAvailable()" OnClick="@NewScheda"
Label="Nuova scheda" Color="Color.Surface"/>
} }
else else
{ {
<MudFabMenuItem Disabled="!NetworkService.IsNetworkAvailable()" OnClick="@NewActivity" <MudFabMenuItem Disabled="!NetworkService.IsNetworkAvailable()" OnClick="@NewInspection"
Label="Nuova ispezione" Color="Color.Surface"/> Label="Nuova ispezione" Color="Color.Surface"/>
} }
</MudFabMenu> </MudFabMenu>
@@ -59,6 +57,9 @@
</nav> </nav>
</div> </div>
<ConfirmMessageBox @ref="_messageBox" NoText="No" YesText="Si" YesColor="Color.Primary"
Message="Completando l'ispezione non sarà più possibile editarla o aggiungere ulteriori segnalazioni. Procedere?"/>
@code @code
{ {
private bool IsVisible { get; set; } = true; private bool IsVisible { get; set; } = true;
@@ -66,6 +67,8 @@
private bool ShowCompleteInspection { get; set; } private bool ShowCompleteInspection { get; set; }
private bool SchedaVisible { get; set; } private bool SchedaVisible { get; set; }
private ConfirmMessageBox _messageBox = null!;
protected override Task OnInitializedAsync() protected override Task OnInitializedAsync()
{ {
NavigationManager.LocationChanged += (_, args) => NavigationManager.LocationChanged += (_, args) =>
@@ -87,18 +90,30 @@
return Task.CompletedTask; return Task.CompletedTask;
} }
private void NewActivity() private async Task NewInspection()
{ {
_ = ModalHelper.OpenSelectShop(Dialog); if (await SteupDataService.CanOpenNewInspection())
{
_ = Dialog.OpenSelectShop();
}
else
{
await Dialog.ShowWarning("Per aprire una nuova ispezione è necessario concludere prima tutte le ispezioni aperte più vecchie di 20 giorni!");
}
} }
private void CompleteInspection() => private async Task CompleteInspection()
Messenger.Send(new CompleteInspectionMessage()); {
var result = await _messageBox.ShowAsync();
if (result is true)
Messenger.Send(new CompleteInspectionMessage());
}
private async Task NewScheda() private async Task NewScheda()
{ {
var ispezione = SteupDataService.InspectionPageState.Ispezione; var ispezione = SteupDataService.InspectionPageState.Ispezione;
var modal = await ModalHelper.OpenFormScheda(Dialog, ispezione.CodMdep, ispezione.Data, true); var modal = await Dialog.OpenFormScheda(ispezione.CodMdep, ispezione.Data, true);
if (modal is { Canceled: false }) if (modal is { Canceled: false })
Messenger.Send(new NewSchedaMessage()); Messenger.Send(new NewSchedaMessage());

View File

@@ -133,7 +133,7 @@
catch (Exception e) catch (Exception e)
{ {
Console.WriteLine(e.Message); Console.WriteLine(e.Message);
await InvokeAsync(() => await InvokeAsync(() =>
{ {
VisibleOverlay = false; VisibleOverlay = false;
@@ -173,8 +173,7 @@
private async Task CreateNewScheda(JtbFasiDto jtbFasi) private async Task CreateNewScheda(JtbFasiDto jtbFasi)
{ {
var modal = await ModalHelper.OpenFormScheda( var modal = await Dialog.OpenFormScheda(
Dialog,
SteupDataService.InspectionPageState.Ispezione.CodMdep, SteupDataService.InspectionPageState.Ispezione.CodMdep,
SteupDataService.InspectionPageState.Ispezione.Data, SteupDataService.InspectionPageState.Ispezione.Data,
true, true,
@@ -244,7 +243,7 @@
{ {
if (errorMessage == null) return; if (errorMessage == null) return;
_ = ModalHelper.ShowError(Dialog, errorMessage); _ = Dialog.ShowError(errorMessage);
} }
void IDisposable.Dispose() void IDisposable.Dispose()

View File

@@ -49,7 +49,8 @@
</div> </div>
<SpinnerOverlay VisibleOverlay="VisibleOverlay"/> <SpinnerOverlay VisibleOverlay="VisibleOverlay"/>
<ConfirmDeleteMessageBox @ref="_deleteMessageBox" Message="Confermi la cancellazione della scheda corrente?"/> <ConfirmMessageBox @ref="_messageBox" YesText="Cancella" YesColor="Color.Error"
Message="Confermi la cancellazione della scheda corrente?"/>
@code{ @code{
[Parameter] public string CodMdep { get; set; } = string.Empty; [Parameter] public string CodMdep { get; set; } = string.Empty;
@@ -60,22 +61,31 @@
private bool VisibleOverlay { get; set; } private bool VisibleOverlay { get; set; }
private ConfirmDeleteMessageBox _deleteMessageBox = null!; private ConfirmMessageBox _messageBox = null!;
private async Task UpdateScheda() private async Task UpdateScheda()
{ {
var modal = await ModalHelper.OpenFormScheda(Dialog, CodMdep, Data, false, Scheda); var modal = await Dialog.OpenFormScheda(CodMdep, Data, false, Scheda);
if (modal is { Canceled: false, Data: Scheda scheda }) await OnSchedaModified.InvokeAsync(scheda); if (modal is { Canceled: false, Data: Scheda scheda }) await OnSchedaModified.InvokeAsync(scheda);
} }
private async Task DeleteScheda() private async Task DeleteScheda()
{ {
var result = await _deleteMessageBox.ShowAsync(); var result = await _messageBox.ShowAsync();
if (result is true) if (result is true)
{ {
VisibleOverlay = true;
StateHasChanged();
if (Scheda.ActivityId != null)
await IntegrySteupService.DeleteScheda(Scheda.ActivityId);
var deleteScheda = await IspezioniService.DeleteSchedaAsync(Scheda.Id); var deleteScheda = await IspezioniService.DeleteSchedaAsync(Scheda.Id);
if (deleteScheda) await OnSchedaDeleted.InvokeAsync(Scheda); if (deleteScheda) await OnSchedaDeleted.InvokeAsync(Scheda);
VisibleOverlay = false;
StateHasChanged();
} }
} }

View File

@@ -1,10 +1,10 @@
<MudMessageBox @ref="_confirmDelete" Title="Attenzione!" CancelText="Annulla"> <MudMessageBox @ref="_confirmDelete" Title="Attenzione!" CancelText="@NoText">
<MessageContent> <MessageContent>
@Message @Message
</MessageContent> </MessageContent>
<YesButton> <YesButton>
<MudButton Size="Size.Small" Variant="Variant.Filled" Color="Color.Error"> <MudButton Size="Size.Small" Variant="Variant.Filled" Color="YesColor">
Cancella @YesText
</MudButton> </MudButton>
</YesButton> </YesButton>
</MudMessageBox> </MudMessageBox>
@@ -12,6 +12,9 @@
@code @code
{ {
[Parameter] public string Message { get; set; } = string.Empty; [Parameter] public string Message { get; set; } = string.Empty;
[Parameter] public string YesText { get; set; } = string.Empty;
[Parameter] public string NoText { get; set; } = "Annulla";
[Parameter] public Color YesColor { get; set; } = Color.Primary;
private MudMessageBox? _confirmDelete; private MudMessageBox? _confirmDelete;

View File

@@ -1,9 +1,19 @@
<MudDialog OnBackdropClick="Cancel"> <MudDialog OnBackdropClick="Cancel">
<DialogContent> <DialogContent>
<div class="exception-header mb-2"> @if (IsWarning)
<i class="ri-emotion-unhappy-line"></i> {
<span>Ops</span> <div class="exception-header mb-2">
</div> <i class="ri-error-warning-line"></i>
<span>Attenzione</span>
</div>
}
else
{
<div class="exception-header mb-2">
<i class="ri-emotion-unhappy-line"></i>
<span>Ops</span>
</div>
}
<div class="text"> <div class="text">
<code>@ErrorMessage</code> <code>@ErrorMessage</code>
</div> </div>
@@ -18,6 +28,7 @@
@code { @code {
[CascadingParameter] private IMudDialogInstance MudDialog { get; set; } = null!; [CascadingParameter] private IMudDialogInstance MudDialog { get; set; } = null!;
[Parameter] public string ErrorMessage { get; set; } = string.Empty; [Parameter] public string ErrorMessage { get; set; } = string.Empty;
[Parameter] public bool IsWarning { get; set; }
private void Cancel() => MudDialog.Cancel(); private void Cancel() => MudDialog.Cancel();
} }

View File

@@ -8,9 +8,16 @@
.exception-header > i { .exception-header > i {
font-size: 3rem; font-size: 3rem;
line-height: normal; line-height: normal;
}
.error-icon {
color: var(--bs-danger); color: var(--bs-danger);
} }
.warning-icon {
color: var(--bs-warning);
}
.exception-header > span { .exception-header > span {
font-size: x-large; font-size: x-large;
font-weight: 700; font-weight: 700;

View File

@@ -285,7 +285,7 @@
{ {
Console.WriteLine(e.Message); Console.WriteLine(e.Message);
await ModalHelper.ShowError(Dialog, e.Message); await Dialog.ShowError(e.Message);
} }
if (IsNew) await NewSave(apiResponse); if (IsNew) await NewSave(apiResponse);
@@ -474,7 +474,7 @@
private async Task OpenAddAttached() private async Task OpenAddAttached()
{ {
var result = await ModalHelper.OpenAddAttached(Dialog); var result = await Dialog.OpenAddAttached();
if (result is not { Canceled: false, Data: List<AttachedDto> attachedList }) return; if (result is not { Canceled: false, Data: List<AttachedDto> attachedList }) return;
OnLoading = true; OnLoading = true;
@@ -561,7 +561,7 @@
return; return;
} }
var modal = await ModalHelper.OpenSelectArt(Dialog, articoli); var modal = await Dialog.OpenSelectArt(articoli);
await InvokeAsync(() => await InvokeAsync(() =>
{ {
@@ -614,7 +614,7 @@
{ {
var activityDescriptions = await IntegryApiService.SuggestActivityDescription(Scheda.ActivityTypeId); var activityDescriptions = await IntegryApiService.SuggestActivityDescription(Scheda.ActivityTypeId);
var modal = await ModalHelper.OpenSuggestActivityDescription(Dialog, activityDescriptions); var modal = await Dialog.OpenSuggestActivityDescription(activityDescriptions);
if (modal is { Canceled: false, Data: not null }) if (modal is { Canceled: false, Data: not null })
Scheda.Note = modal.Data!.ToString(); Scheda.Note = modal.Data!.ToString();
@@ -694,7 +694,7 @@
{ {
if (errorMessage == null) return; if (errorMessage == null) return;
_ = ModalHelper.ShowError(Dialog, errorMessage); _ = Dialog.ShowError(errorMessage);
} }
private void RemoveArt(string barcode) private void RemoveArt(string barcode)

View File

@@ -6,6 +6,7 @@ namespace SteUp.Shared.Core.Data.Contracts;
public interface ISteupDataService public interface ISteupDataService
{ {
Task Init(); Task Init();
Task<bool> CanOpenNewInspection();
void RegisterAppVersion(); void RegisterAppVersion();
List<PuntoVenditaDto> PuntiVenditaList { get; } List<PuntoVenditaDto> PuntiVenditaList { get; }

View File

@@ -3,11 +3,11 @@ using IntegryApiClient.Core.Domain.Abstraction.Contracts.Device;
using SteUp.Shared.Core.Data.Contracts; using SteUp.Shared.Core.Data.Contracts;
using SteUp.Shared.Core.Dto; using SteUp.Shared.Core.Dto;
using SteUp.Shared.Core.Dto.PageState; using SteUp.Shared.Core.Dto.PageState;
using SteUp.Shared.Core.Enum;
using SteUp.Shared.Core.Helpers; using SteUp.Shared.Core.Helpers;
using SteUp.Shared.Core.Interface.IntegryApi; using SteUp.Shared.Core.Interface.IntegryApi;
using SteUp.Shared.Core.Interface.LocalDb; using SteUp.Shared.Core.Interface.LocalDb;
using SteUp.Shared.Core.Interface.System; using SteUp.Shared.Core.Interface.System;
using SteUp.Shared.Core.Interface.System.Network;
namespace SteUp.Shared.Core.Data; namespace SteUp.Shared.Core.Data;
@@ -76,6 +76,20 @@ public class SteupDataService(
} }
} }
public async Task<bool> CanOpenNewInspection()
{
var completedInspection = await ispezioniService.GetAllIspezioni();
if (completedInspection.IsNullOrEmpty()) return true;
//Controllo se sono presenti attività più vecchie di 20 giorni non chiuse
//Se presenti non si possono aprire nuove ispezioni
return !completedInspection.Any(x =>
x.Stato != StatusEnum.Completata &&
x.Data < DateTime.Now.AddDays(-20)
);
}
private async Task LoadDataAsync() private async Task LoadDataAsync()
{ {
if (!await userSession.IsLoggedIn()) return; if (!await userSession.IsLoggedIn()) return;

View File

@@ -6,129 +6,154 @@ using SteUp.Shared.Core.Entities;
namespace SteUp.Shared.Core.Helpers; namespace SteUp.Shared.Core.Helpers;
public abstract class ModalHelper public static class ModalHelper
{ {
public static async Task<DialogResult?> OpenSelectShop(IDialogService dialog) extension(IDialogService dialog)
{ {
var modal = await dialog.ShowAsync<ModalSelectShop>( public async Task<DialogResult?> OpenSelectShop()
"ModalSelectShop", {
new DialogParameters(), var modal = await dialog.ShowAsync<ModalSelectShop>(
new DialogOptions "ModalSelectShop",
{ new DialogParameters(),
FullScreen = false, new DialogOptions
CloseButton = false, {
NoHeader = true, FullScreen = false,
BackdropClick = true CloseButton = false,
} NoHeader = true,
); BackdropClick = true
}
);
return await modal.Result; return await modal.Result;
} }
public static async Task<DialogResult?> OpenFormScheda(IDialogService dialog, string codMdep, DateTime data, public async Task<DialogResult?> OpenFormScheda(string codMdep, DateTime data,
bool isNew = false, Scheda? scheda = null) bool isNew = false, Scheda? scheda = null)
{ {
scheda = isNew && scheda == null ? new Scheda() : scheda; scheda = isNew && scheda == null ? new Scheda() : scheda;
var modal = await dialog.ShowAsync<ModalFormScheda>( var modal = await dialog.ShowAsync<ModalFormScheda>(
"ModalFormScheda", "ModalFormScheda",
new DialogParameters<ModalFormScheda> new DialogParameters<ModalFormScheda>
{ {
{ x => x.CodMdep, codMdep }, { x => x.CodMdep, codMdep },
{ x => x.Data, data }, { x => x.Data, data },
{ x => x.IsNew, isNew }, { x => x.IsNew, isNew },
{ x => x.Scheda, scheda } { x => x.Scheda, scheda }
}, },
new DialogOptions new DialogOptions
{ {
FullScreen = true, FullScreen = true,
CloseButton = false, CloseButton = false,
NoHeader = true NoHeader = true
} }
); );
return await modal.Result; return await modal.Result;
} }
public static async Task<DialogResult?> OpenAddAttached(IDialogService dialog) public async Task<DialogResult?> OpenAddAttached()
{ {
var modal = await dialog.ShowAsync<ModalAddAttached>( var modal = await dialog.ShowAsync<ModalAddAttached>(
"Add attached", "Add attached",
new DialogParameters(), new DialogParameters(),
new DialogOptions new DialogOptions
{ {
FullScreen = false, FullScreen = false,
CloseButton = false, CloseButton = false,
NoHeader = true, NoHeader = true,
BackdropClick = false BackdropClick = false
} }
); );
return await modal.Result; return await modal.Result;
} }
public static async Task<DialogResult?> OpenSuggestActivityDescription(IDialogService dialog, public async Task<DialogResult?> OpenSuggestActivityDescription(List<StbActivityTyperDto>? activityTypers)
List<StbActivityTyperDto>? activityTypers) {
{ var modal = await dialog.ShowAsync<ModalSuggestDescription>(
var modal = await dialog.ShowAsync<ModalSuggestDescription>( "Suggest activity description",
"Suggest activity description", new DialogParameters<ModalSuggestDescription>
new DialogParameters<ModalSuggestDescription> {
{ { x => x.ActivityTypers, activityTypers }
{ x => x.ActivityTypers, activityTypers } },
}, new DialogOptions
new DialogOptions {
{ FullScreen = false,
FullScreen = false, CloseButton = false,
CloseButton = false, NoHeader = true,
NoHeader = true, BackdropClick = true
BackdropClick = true }
} );
);
return await modal.Result; return await modal.Result;
} }
public static async Task<DialogResult?> OpenSelectArt(IDialogService dialog, List<ArticoliInGrigliaDto>? articoli) public async Task<DialogResult?> OpenSelectArt(List<ArticoliInGrigliaDto>? articoli)
{ {
var modal = await dialog.ShowAsync<ModalSelectArt>( var modal = await dialog.ShowAsync<ModalSelectArt>(
"ModalSelectArt", "ModalSelectArt",
new DialogParameters<ModalSelectArt> new DialogParameters<ModalSelectArt>
{ {
{ x => x.Articoli, articoli } { x => x.Articoli, articoli }
}, },
new DialogOptions new DialogOptions
{ {
FullScreen = false, FullScreen = false,
CloseButton = false, CloseButton = false,
NoHeader = true, NoHeader = true,
BackdropClick = true, BackdropClick = true,
FullWidth = true, FullWidth = true,
MaxWidth = MaxWidth.ExtraLarge MaxWidth = MaxWidth.ExtraLarge
} }
); );
return await modal.Result; return await modal.Result;
} }
public static async Task ShowError(IDialogService dialog, string message) public async Task ShowError(string message)
{ {
var modal = await dialog.ShowAsync<ModalError>( var modal = await dialog.ShowAsync<ModalError>(
"ModalError", "ModalError",
new DialogParameters<ModalError> new DialogParameters<ModalError>
{ {
{ x => x.ErrorMessage, message } { x => x.ErrorMessage, message }
}, },
new DialogOptions new DialogOptions
{ {
FullScreen = false, FullScreen = false,
CloseButton = false, CloseButton = false,
NoHeader = true, NoHeader = true,
BackdropClick = true, BackdropClick = true,
FullWidth = true, FullWidth = true,
MaxWidth = MaxWidth.ExtraLarge MaxWidth = MaxWidth.ExtraLarge
} }
); );
await modal.Result; await modal.Result;
}
public async Task ShowWarning(string message)
{
var modal = await dialog.ShowAsync<ModalError>(
"ModalError",
new DialogParameters<ModalError>
{
{ x => x.ErrorMessage, message },
{ x => x.IsWarning, true }
},
new DialogOptions
{
FullScreen = false,
CloseButton = false,
NoHeader = true,
BackdropClick = true,
FullWidth = true,
MaxWidth = MaxWidth.ExtraLarge
}
);
await modal.Result;
}
} }
} }

View File

@@ -17,4 +17,6 @@ public interface IIntegrySteupService
Task<SaveSchedaResponseDto?> SaveMultipleSchede(List<SaveRequestDto> request); Task<SaveSchedaResponseDto?> SaveMultipleSchede(List<SaveRequestDto> request);
Task CompleteInspection(string activityId); Task CompleteInspection(string activityId);
Task UploadFile(string activityId, byte[] file, string fileName); Task UploadFile(string activityId, byte[] file, string fileName);
Task DeleteScheda(string activityId);
} }

View File

@@ -1,4 +1,5 @@
using SteUp.Shared.Core.Entities; using System.Linq.Expressions;
using SteUp.Shared.Core.Entities;
using SteUp.Shared.Core.Enum; using SteUp.Shared.Core.Enum;
namespace SteUp.Shared.Core.Interface.LocalDb; namespace SteUp.Shared.Core.Interface.LocalDb;
@@ -7,6 +8,7 @@ public interface IIspezioniService
{ {
// ISPEZIONI // ISPEZIONI
Task<Ispezione?> GetIspezioneAsync(string codMdep, DateTime data, string rilevatore); Task<Ispezione?> GetIspezioneAsync(string codMdep, DateTime data, string rilevatore);
Task<List<Ispezione>> GetAllIspezioni();
Task<List<Ispezione>> GetAllIspezioniWithSchedeAsync(); Task<List<Ispezione>> GetAllIspezioniWithSchedeAsync();
Task AddIspezioneAsync(Ispezione ispezione); Task AddIspezioneAsync(Ispezione ispezione);
Task<Ispezione> GetOrCreateIspezioneAsync(string codMdep, DateTime data, string rilevatore); Task<Ispezione> GetOrCreateIspezioneAsync(string codMdep, DateTime data, string rilevatore);

View File

@@ -67,4 +67,13 @@ public class IntegrySteupService(IIntegryApiRestClient integryApiRestClient) : I
return integryApiRestClient.Post<object>($"{BaseRequest}/uploadAttachment", content, queryParams!); return integryApiRestClient.Post<object>($"{BaseRequest}/uploadAttachment", content, queryParams!);
} }
public Task DeleteScheda(string activityId) =>
integryApiRestClient.AuthorizedGet<object>(
$"{BaseRequest}/deleteScheda",
new Dictionary<string, object>
{
{ "activityId", activityId }
}
);
} }