@using salesbook.Shared.Core.Dto
@using salesbook.Shared.Core.Entity
@using salesbook.Shared.Core.Interface
@inject IManageDataService ManageData
@code {
[Parameter] public bool IsSheetVisible { get; set; }
[Parameter] public EventCallback IsSheetVisibleChanged { get; set; }
[Parameter] public ActivityDTO ActivityModel { get; set; }
[Parameter] public EventCallback ActivityModelChanged { get; set; }
private List ActivityResult { get; set; } = [];
private DateTime? EffectiveDate { get; set; } = DateTime.Today;
private TimeSpan EffectiveTime { get; set; }
private TimeSpan EffectiveEndTime { get; set; }
protected override async Task OnParametersSetAsync()
{
if (IsSheetVisible)
await LoadData();
}
private async Task LoadData()
{
ActivityResult = await ManageData.GetTable();
EffectiveTime = ActivityModel.EffectiveTime?.TimeOfDay ?? TimeSpan.Zero;
EffectiveEndTime = ActivityModel.EffectiveEndtime?.TimeOfDay ?? TimeSpan.Zero;
StateHasChanged();
}
private void CloseBottomSheet(bool save)
{
if (save)
{
if (EffectiveDate != null)
{
ActivityModel.EffectiveTime = new DateTime(EffectiveDate!.Value.Year, EffectiveDate!.Value.Month, EffectiveDate!.Value.Day,
EffectiveTime.Hours, EffectiveTime.Minutes, EffectiveTime.Seconds);
ActivityModel.EffectiveEndtime = new DateTime(EffectiveDate!.Value.Year, EffectiveDate!.Value.Month, EffectiveDate!.Value.Day,
EffectiveEndTime.Hours, EffectiveEndTime.Minutes, EffectiveEndTime.Seconds);
}
if (ActivityModel.ActivityResultId.IsNullOrEmpty())
{
Snackbar.Clear();
Snackbar.Configuration.PositionClass = Defaults.Classes.Position.TopCenter;
Snackbar.Add("Esito obbligatorio!", Severity.Error);
return;
}
}
IsSheetVisible = false;
IsSheetVisibleChanged.InvokeAsync(IsSheetVisible);
if (save)
{
ActivityModelChanged.InvokeAsync(ActivityModel);
}
}
private void CloseBottomSheet() => CloseBottomSheet(false);
private void OnAfterChangeTime()
{
if (EffectiveEndTime < EffectiveTime)
EffectiveEndTime = EffectiveTime + TimeSpan.FromHours(1);
}
}