diff --git a/NRZMyk.Component.Playground/Startup.cs b/NRZMyk.Component.Playground/Startup.cs index 8235459..e957cc4 100644 --- a/NRZMyk.Component.Playground/Startup.cs +++ b/NRZMyk.Component.Playground/Startup.cs @@ -35,6 +35,8 @@ public void ConfigureServices(IServiceCollection services) services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); services.AddScoped(); services.AddScoped(); diff --git a/NRZMyk.Components/Pages/Index.razor b/NRZMyk.Components/Pages/Index.razor index e47f723..1da7756 100644 --- a/NRZMyk.Components/Pages/Index.razor +++ b/NRZMyk.Components/Pages/Index.razor @@ -1,52 +1,54 @@ @page "/" @using NRZMyk.Services.Models @using NRZMyk.Services.Utils +@using Humanizer @inherits IndexBase -

- Das vom Robert Koch-Institut und dem Bundesministerium für Gesundheit berufene - Nationale Referenzzentrum für Invasive Pilzinfektionen (NRZMyk) ist - Ansprechpartner für Ärzte und Mikrobiologen aus ganz Deutschland bei Fragen - zur Diagnostik und Behandlung invasiver Pilzinfektionen. Neben einer gezielten - Beratung bietet das NRZMyk auch spezielle diagnostische Verfahren zum Nachweis - von invasiven Pilzerkrankungen an. Es kooperiert dabei mit anderen Referenzlabors weltweit. -

+@if (Organizations == null) +{ +

Lädt...

+} +else +{ +

+ Das vom Robert Koch-Institut und dem Bundesministerium für Gesundheit berufene + Nationale Referenzzentrum für Invasive Pilzinfektionen (NRZMyk) ist + Ansprechpartner für Ärzte und Mikrobiologen aus ganz Deutschland bei Fragen + zur Diagnostik und Behandlung invasiver Pilzinfektionen. Neben einer gezielten + Beratung bietet das NRZMyk auch spezielle diagnostische Verfahren zum Nachweis + von invasiven Pilzerkrankungen an. Es kooperiert dabei mit anderen Referenzlabors weltweit. +

-

- Das NRZMyk ist angesiedelt am - Leibniz-Institut für Naturstoff-Forschung und - Infektionsbiologie - Hans-Knöll-Institut (HKI) - in Jena. Einige Untersuchungen werden am - Institut für Hygiene und - Mikrobiologie - der Universität Würzburg (Lehrstuhl für Medizinische Mikrobiologie & Mykologie, Prof. Kurzai) durchgeführt. -

+

+ Das NRZMyk ist angesiedelt am + Leibniz-Institut für Naturstoff-Forschung und + Infektionsbiologie - Hans-Knöll-Institut (HKI) + in Jena. Einige Untersuchungen werden am + Institut für Hygiene und + Mikrobiologie + der Universität Würzburg (Lehrstuhl für Medizinische Mikrobiologie & Mykologie, Prof. Kurzai) durchgeführt. +

- - - - - + + + + + - - - @if (Organizations == null) - { -

Lädt...

- } - else - { + +

Feste Monate der Einsendung

@@ -55,6 +57,9 @@ Monat Mikrobiologie + Letzte Datenerfassung + Letzte Einsendung + Nächstes Einsendefenster @@ -63,14 +68,26 @@ @EnumUtils.GetEnumDescription(organization.DispatchMonth) @organization.Name + @organization.LatestDataEntryDate.ToString("dd.MM.yyyy") + @organization.LatestStrainArrivalDate.ToString("dd.MM.yyyy") + + @if (ReminderService.CalculateExpectedNextSending(organization) < DateTime.Today) + { + @ReminderService.HumanReadableExpectedNextSending(organization) + } + else + { + @ReminderService.HumanReadableExpectedNextSending(organization) + } + }
- } -
-
+
+
- + +} \ No newline at end of file diff --git a/NRZMyk.Components/Pages/IndexBase.cs b/NRZMyk.Components/Pages/IndexBase.cs index ec0ff0e..477c98d 100644 --- a/NRZMyk.Components/Pages/IndexBase.cs +++ b/NRZMyk.Components/Pages/IndexBase.cs @@ -11,17 +11,21 @@ public class IndexBase : BlazorComponent [Inject] private IAccountService AccountService { get; set; } = default!; + [Inject] + internal IReminderService ReminderService { get; set; } = default!; + [Inject] private ILogger Logger { get; set; } = default!; - internal ICollection Organizations { get; set; } = default!; + internal ICollection Organizations { get; private set; } = new List(); - internal SaveState SaveState { get; set; } - protected override async Task OnInitializedAsync() { Logger.LogInformation("Now loading... /Index"); - Organizations = await AccountService.ListOrganizations().ConfigureAwait(true); + if (!Organizations.Any()) + { + Organizations = await AccountService.ListOrganizations().ConfigureAwait(true); + } await base.OnInitializedAsync().ConfigureAwait(true); } } diff --git a/NRZMyk.Mocks/MockServices/MockEmailNotificationService.cs b/NRZMyk.Mocks/MockServices/MockEmailNotificationService.cs new file mode 100644 index 0000000..5a36ab3 --- /dev/null +++ b/NRZMyk.Mocks/MockServices/MockEmailNotificationService.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using NRZMyk.Services.Services; + +namespace NRZMyk.Mocks.MockServices +{ + public class MockEmailNotificationService : IEmailNotificationService + { + public Task NotifyNewUserRegistered(string userName, string userEmail, string userCity) + { + return Task.CompletedTask; + } + + public void SendEmail(string email, string message) + { + } + } +} \ No newline at end of file diff --git a/NRZMyk.Services/Services/IReminderService.cs b/NRZMyk.Services/Services/IReminderService.cs index dc0895a..e84383e 100644 --- a/NRZMyk.Services/Services/IReminderService.cs +++ b/NRZMyk.Services/Services/IReminderService.cs @@ -1,5 +1,10 @@ -namespace NRZMyk.Services.Services; +using NRZMyk.Services.Data.Entities; +using System; + +namespace NRZMyk.Services.Services; public interface IReminderService { + public string HumanReadableExpectedNextSending(Organization organization); + public DateTime CalculateExpectedNextSending(Organization organization); } \ No newline at end of file diff --git a/global.json b/global.json index cf440a7..ed3fdea 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,5 @@ { "sdk": { - "version": "6.0.100", - "rollForward": "latestMajor" + "version": "6.0.100" } } \ No newline at end of file