@using salesbook.Shared.Components.Layout.Spinner @using salesbook.Shared.Core.Dto.Activity @using salesbook.Shared.Core.Entity @using salesbook.Shared.Core.Interface @inject IManageDataService ManageDataService @inject ISnackbar Snackbar @inject IDialogService Dialog
@if (Notification.NotificationData is { Type: not null }) { @switch (Notification.NotificationData.Type) { case "memo":
break; case "newPlanned":
break; } }
@Notification.Title
@GetTimeAgo(Notification.StartDate)
@if (Unread) { }
@if ( Notification.StartDate < DateTime.Today && Notification.Body != null && Notification.Body.Contains("Oggi") ) {
@Notification.Body.Replace("Oggi", $"{Notification.StartDate:d}")
} else {
@Notification.Body
}
@code { [Parameter] public bool Unread { get; set; } [Parameter] public WtbNotification Notification { get; set; } = new(); private bool VisibleOverlay { get; set; } private async Task OpenActivity() { if(Notification.NotificationData?.ActivityId == null) return; var activityId = Notification.NotificationData.ActivityId; Snackbar.Configuration.PositionClass = Defaults.Classes.Position.TopCenter; Snackbar.Clear(); VisibleOverlay = true; StateHasChanged(); var activity = (await ManageDataService.GetActivityTryLocalDb(new WhereCondActivity { ActivityId = activityId })).LastOrDefault(); VisibleOverlay = false; StateHasChanged(); if (activity == null) Snackbar.Add("Impossibile aprire l'attivitą", Severity.Error); _ = ModalHelpers.OpenActivityForm(Dialog, activity, null); } private static string GetTimeAgo(DateTime? timestamp) { if (timestamp is null) return ""; var difference = DateTime.Now - timestamp.Value; switch (difference.TotalMinutes) { case < 1: return "Adesso"; case < 60: return $"{(int)difference.TotalMinutes} minuti fa"; default: { switch (difference.TotalHours) { case < 2: return $"{(int)difference.TotalHours} ora fa"; case < 24: return $"{timestamp.Value:t}"; default: { return timestamp.Value.ToString("dd/MM/yyyy"); } } } } } }