diff --git a/SchengenVisaApi/BlazorWebAssemblyVisaApiClient/FluentValidation/Applicants/Validators/PassportModelValidator.cs b/SchengenVisaApi/BlazorWebAssemblyVisaApiClient/FluentValidation/Applicants/Validators/PassportModelValidator.cs
index 289b8c4..a8d0fbe 100644
--- a/SchengenVisaApi/BlazorWebAssemblyVisaApiClient/FluentValidation/Applicants/Validators/PassportModelValidator.cs
+++ b/SchengenVisaApi/BlazorWebAssemblyVisaApiClient/FluentValidation/Applicants/Validators/PassportModelValidator.cs
@@ -1,4 +1,5 @@
using BlazorWebAssemblyVisaApiClient.Infrastructure.Services;
+using BlazorWebAssemblyVisaApiClient.Infrastructure.Services.DateTimeProvider;
using FluentValidation;
using VisaApiClient;
diff --git a/SchengenVisaApi/BlazorWebAssemblyVisaApiClient/FluentValidation/Applicants/Validators/RegisterApplicantRequestValidator.cs b/SchengenVisaApi/BlazorWebAssemblyVisaApiClient/FluentValidation/Applicants/Validators/RegisterApplicantRequestValidator.cs
index d7c626d..907e159 100644
--- a/SchengenVisaApi/BlazorWebAssemblyVisaApiClient/FluentValidation/Applicants/Validators/RegisterApplicantRequestValidator.cs
+++ b/SchengenVisaApi/BlazorWebAssemblyVisaApiClient/FluentValidation/Applicants/Validators/RegisterApplicantRequestValidator.cs
@@ -1,5 +1,6 @@
using BlazorWebAssemblyVisaApiClient.FluentValidation.Applicants.Models;
using BlazorWebAssemblyVisaApiClient.Infrastructure.Services;
+using BlazorWebAssemblyVisaApiClient.Infrastructure.Services.DateTimeProvider;
using FluentValidation;
using VisaApiClient;
using PlaceOfWorkModel = BlazorWebAssemblyVisaApiClient.FluentValidation.Applicants.Models.PlaceOfWorkModel;
diff --git a/SchengenVisaApi/BlazorWebAssemblyVisaApiClient/Infrastructure/Helpers/EnumExtensions.cs b/SchengenVisaApi/BlazorWebAssemblyVisaApiClient/Infrastructure/Helpers/EnumExtensions.cs
new file mode 100644
index 0000000..d49ba1b
--- /dev/null
+++ b/SchengenVisaApi/BlazorWebAssemblyVisaApiClient/Infrastructure/Helpers/EnumExtensions.cs
@@ -0,0 +1,18 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace BlazorWebAssemblyVisaApiClient.Infrastructure.Helpers
+{
+ public static class EnumExtensions
+ {
+ public static string GetDisplayName(this Enum value)
+ {
+ var enumMembers = value.GetType().GetMembers();
+ var member = enumMembers.First(info => info.Name == value.ToString());
+ var displayAttribute = (DisplayAttribute?)member
+ .GetCustomAttributes(typeof(DisplayAttribute), false)
+ .FirstOrDefault();
+ var displayName = displayAttribute?.Name ?? value.ToString();
+ return displayName;
+ }
+ }
+}
diff --git a/SchengenVisaApi/BlazorWebAssemblyVisaApiClient/Infrastructure/Services/DateTimeProvider.cs b/SchengenVisaApi/BlazorWebAssemblyVisaApiClient/Infrastructure/Services/DateTimeProvider/DateTimeProvider.cs
similarity index 89%
rename from SchengenVisaApi/BlazorWebAssemblyVisaApiClient/Infrastructure/Services/DateTimeProvider.cs
rename to SchengenVisaApi/BlazorWebAssemblyVisaApiClient/Infrastructure/Services/DateTimeProvider/DateTimeProvider.cs
index 35e9e91..340eb09 100644
--- a/SchengenVisaApi/BlazorWebAssemblyVisaApiClient/Infrastructure/Services/DateTimeProvider.cs
+++ b/SchengenVisaApi/BlazorWebAssemblyVisaApiClient/Infrastructure/Services/DateTimeProvider/DateTimeProvider.cs
@@ -1,4 +1,4 @@
-namespace BlazorWebAssemblyVisaApiClient.Infrastructure.Services
+namespace BlazorWebAssemblyVisaApiClient.Infrastructure.Services.DateTimeProvider
{
public class DateTimeProvider : IDateTimeProvider
{
diff --git a/SchengenVisaApi/BlazorWebAssemblyVisaApiClient/Infrastructure/Services/IDateTimeProvider.cs b/SchengenVisaApi/BlazorWebAssemblyVisaApiClient/Infrastructure/Services/DateTimeProvider/IDateTimeProvider.cs
similarity index 87%
rename from SchengenVisaApi/BlazorWebAssemblyVisaApiClient/Infrastructure/Services/IDateTimeProvider.cs
rename to SchengenVisaApi/BlazorWebAssemblyVisaApiClient/Infrastructure/Services/DateTimeProvider/IDateTimeProvider.cs
index d0f7596..4dc42ba 100644
--- a/SchengenVisaApi/BlazorWebAssemblyVisaApiClient/Infrastructure/Services/IDateTimeProvider.cs
+++ b/SchengenVisaApi/BlazorWebAssemblyVisaApiClient/Infrastructure/Services/DateTimeProvider/IDateTimeProvider.cs
@@ -1,4 +1,4 @@
-namespace BlazorWebAssemblyVisaApiClient.Infrastructure.Services
+namespace BlazorWebAssemblyVisaApiClient.Infrastructure.Services.DateTimeProvider
{
public interface IDateTimeProvider
{
diff --git a/SchengenVisaApi/BlazorWebAssemblyVisaApiClient/Pages/Applications.razor b/SchengenVisaApi/BlazorWebAssemblyVisaApiClient/Pages/Applications.razor
new file mode 100644
index 0000000..06dab63
--- /dev/null
+++ b/SchengenVisaApi/BlazorWebAssemblyVisaApiClient/Pages/Applications.razor
@@ -0,0 +1,56 @@
+@page "/applications"
+@using System.Net
+@using System.Text
+@using BlazorWebAssemblyVisaApiClient.Components
+@using BlazorWebAssemblyVisaApiClient.Components.Auth
+@using BlazorWebAssemblyVisaApiClient.Infrastructure.Helpers
+@using VisaApiClient
+@inherits BlazorWebAssemblyVisaApiClient.Components.Base.VisaClientComponentBase
+
+
@(AuthComponent.CurrentRole ?? "bruh")
+
+@((MarkupString)htmlMarkup)
+
+@code {
+ private string htmlMarkup = "bruh";
+
+ protected override async Task OnInitializedAsync()
+ {
+ var stringBuilder = new StringBuilder();
+
+ try
+ {
+ switch (AuthComponent.CurrentRole)
+ {
+ case "Applicant":
+ var applications = await Client.GetForApplicantAsync();
+
+ stringBuilder.AppendLine("
| Destination Country | Visa Category | Request date | Days requested | Status |
");
+ foreach (var application in applications)
+ {
+ stringBuilder.AppendLine($"| {application.DestinationCountry} | {application.VisaCategory.GetDisplayName()} | {application.RequestDate.ToString("d")} | {application.ValidDaysRequested} | {application.Status.GetDisplayName()} |
");
+ }
+
+ stringBuilder.AppendLine("
");
+ htmlMarkup = stringBuilder.ToString();
+ break;
+ default:
+ htmlMarkup = AuthComponent.CurrentRole;
+ break;
+ }
+ }
+ catch (Exception e)
+ {
+ if (e is ApiException
{ Result.Status: (int)HttpStatusCode.Unauthorized } problemDetailsException)
+ {
+ htmlMarkup = problemDetailsException.Result.Detail!;
+ }
+ else
+ {
+ //ErrorHandler.Handle(e);
+ throw;
+ }
+ }
+ }
+
+}
diff --git a/SchengenVisaApi/BlazorWebAssemblyVisaApiClient/Pages/Register.razor b/SchengenVisaApi/BlazorWebAssemblyVisaApiClient/Pages/Register.razor
index c195c19..cfdf329 100644
--- a/SchengenVisaApi/BlazorWebAssemblyVisaApiClient/Pages/Register.razor
+++ b/SchengenVisaApi/BlazorWebAssemblyVisaApiClient/Pages/Register.razor
@@ -10,6 +10,7 @@
@using Newtonsoft.Json
@using Newtonsoft.Json.Linq
@using BlazorWebAssemblyVisaApiClient.Components
+@using BlazorWebAssemblyVisaApiClient.Infrastructure.Services.DateTimeProvider
@inherits BlazorWebAssemblyVisaApiClient.Components.Base.VisaClientComponentBase
Registration