@foreach (var activity in Activities)
{
diff --git a/Wonky.Client/Pages/SalesReport.razor.cs b/Wonky.Client/Pages/SalesReport.razor.cs
index 1c867e5f..eca19200 100644
--- a/Wonky.Client/Pages/SalesReport.razor.cs
+++ b/Wonky.Client/Pages/SalesReport.razor.cs
@@ -32,20 +32,57 @@ public partial class SalesReport
private DateTime _reportDate;
private EditContext _editContext { get; set; }
private SalesReportDto _reportDto = new();
+ private Preferences _prefs { get; set; } = new();
+ private bool _formInvalid = true;
private List? Activities { get; set; } = new();
- protected override void OnInitialized()
+ protected override async Task OnInitializedAsync()
{
- _reportDate = DateTime.Now;
+ Interceptor.RegisterEvent();
+ Interceptor.RegisterBeforeSendEvent();
+
_editContext = new EditContext(_reportDate);
+ _editContext.OnFieldChanged += HandleFieldChanged;
+ _editContext.OnValidationStateChanged += ValidationChanged;
+
+ _prefs = await UserPrefs.GetPreferences();
+ _reportDate = string.IsNullOrWhiteSpace(_prefs.WorkDate)
+ ? DateTime.Now
+ : DateTime.Parse(_prefs.WorkDate);
+ await UserPrefs.SetWorkDate(_reportDate).ConfigureAwait(true);
}
+ private void HandleFieldChanged(object sender, FieldChangedEventArgs e)
+ {
+ _formInvalid = !_editContext.Validate();
+ StateHasChanged();
+ }
+
+ private void ValidationChanged(object sender, ValidationStateChangedEventArgs e)
+ {
+ _formInvalid = false;
+ _editContext.OnFieldChanged -= HandleFieldChanged;
+ _editContext = new EditContext(_reportDto);
+ _editContext.OnFieldChanged += HandleFieldChanged;
+ _editContext.OnValidationStateChanged += ValidationChanged;
+ }
private void CheckDayType()
{
}
private async Task GetActivities()
{
- Activities = await ActivityRepo.GetActivities($"{_reportDate:yyyy-MM-dd}").ConfigureAwait(true);
+ Activities = null;
+ await UserPrefs.SetWorkDate(_reportDate).ConfigureAwait(true);
+ Activities = await ActivityRepo
+ .GetActivities($"{_reportDate:yyyy-MM-dd}")
+ .ConfigureAwait(true);
+ }
+
+ public void Dispose()
+ {
+ Interceptor.DisposeEvent();
+ _editContext.OnFieldChanged -= HandleFieldChanged;
+ _editContext.OnValidationStateChanged -= ValidationChanged;
}
}
\ No newline at end of file
diff --git a/Wonky.Entity/DTO/SalesReportDto.cs b/Wonky.Entity/DTO/SalesReportDto.cs
index 00c55a19..237dc564 100644
--- a/Wonky.Entity/DTO/SalesReportDto.cs
+++ b/Wonky.Entity/DTO/SalesReportDto.cs
@@ -1,13 +1,15 @@
+using System.ComponentModel.DataAnnotations;
+
namespace Wonky.Entity.DTO;
public class SalesReportDto
{
- public string ActivityDate { get; set; } = "";
- public string DayTypeEnum { get; set; } = "";
- public string Comment { get; set; } = "";
+ [Required(ErrorMessage = "Dato skal angives")] public string ActivityDate { get; set; } = "";
+ [Required(ErrorMessage = "Dagtype skal angives")]public string DayTypeEnum { get; set; } = "";
+ [MaxLength(128, ErrorMessage = "Du kan højst bruge 128 tegn")]public string Comment { get; set; } = "";
//
- public long KmStart { get; set; }
- public long KmFinished { get; set; }
+ public long KmMorning { get; set; }
+ public long KmEvening { get; set; }
public int Distance { get; set; }
public int DistancePrivate { get; set; }
//