diff --git a/Wonky.Client/HttpRepository/IMemberSupportRepository.cs b/Wonky.Client/HttpRepository/IMemberSupportRepository.cs deleted file mode 100644 index fb07e82e..00000000 --- a/Wonky.Client/HttpRepository/IMemberSupportRepository.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Wonky.Entity.DTO; -using Wonky.Entity.Views; - -namespace Wonky.Client.HttpRepository; - -public interface IMemberSupportRepository -{ - Task GetManagerByUserId(string userId); - Task GetMemberByUserId(string userId); - Task> GetEvaluationsByManagerId(string managerId); - Task> GetEvaluationsByMemberId(string memberId); - Task GetById(string evaluationId); - Task CreateEvaluation(EvaluationEditView evaluationEditView); - Task UpdateEvaluation(string evaluationId, EvaluationEditView evaluationEditView); - Task DeleteEvaluation(string evaluationId); -} \ No newline at end of file diff --git a/Wonky.Client/HttpRepository/ISupportDocumentRepository.cs b/Wonky.Client/HttpRepository/ISupportDocumentRepository.cs new file mode 100644 index 00000000..2c047055 --- /dev/null +++ b/Wonky.Client/HttpRepository/ISupportDocumentRepository.cs @@ -0,0 +1,14 @@ +using Wonky.Entity.DTO; +using Wonky.Entity.Views; + +namespace Wonky.Client.HttpRepository; + +public interface ISupportDocumentRepository +{ + Task> GetDocumentsBySupervisorId(string supervisorId); + Task> GetDocumentsByAdvisorId(string advisorId); + Task GetById(string documentId); + Task CreateDocument(SupportDocumentEditView model); + Task UpdateDocument(string documentId, SupportDocumentEditView model); + Task DeleteDocument(string documentId); +} \ No newline at end of file diff --git a/Wonky.Client/HttpRepository/ISupportManagementRepository.cs b/Wonky.Client/HttpRepository/ISupportManagementRepository.cs new file mode 100644 index 00000000..c1c5b1f4 --- /dev/null +++ b/Wonky.Client/HttpRepository/ISupportManagementRepository.cs @@ -0,0 +1,10 @@ +using Wonky.Entity.DTO; +using Wonky.Entity.Views; + +namespace Wonky.Client.HttpRepository; + +public interface ISupportManagementRepository +{ + Task GetSupervisorByUserId(string userId); + Task GetAdvisorByUserId(string userId); +} \ No newline at end of file diff --git a/Wonky.Client/HttpRepository/MemberSupportRepository.cs b/Wonky.Client/HttpRepository/MemberSupportRepository.cs deleted file mode 100644 index 8cd369e2..00000000 --- a/Wonky.Client/HttpRepository/MemberSupportRepository.cs +++ /dev/null @@ -1,133 +0,0 @@ -using System.Net.Http.Json; -using System.Text.Json; -using Microsoft.AspNetCore.Components; -using Microsoft.Extensions.Options; -using Wonky.Entity.Configuration; -using Wonky.Entity.DTO; -using Wonky.Entity.Views; - -namespace Wonky.Client.HttpRepository; - -public class MemberSupportRepository : IMemberSupportRepository -{ - private readonly JsonSerializerOptions? _options = new JsonSerializerOptions - { - PropertyNameCaseInsensitive = true - }; - - private readonly NavigationManager _navigation; - private readonly ILogger _logger; - private readonly HttpClient _client; - private readonly ApiConfig _api; - - public MemberSupportRepository(HttpClient client, - ILogger logger, - NavigationManager navigation, IOptions configuration) - { - _client = client; - _logger = logger; - _navigation = navigation; - _api = configuration.Value; - } - - - public async Task GetManagerByUserId(string userId) - { - var result = await _client - .GetAsync($"{_api.UserSupport}/user/manager/{userId}"); - var content = await result.Content.ReadAsStringAsync(); - if (!result.IsSuccessStatusCode || string.IsNullOrWhiteSpace(content)) - { - return new ManagerView(); - } - return JsonSerializer.Deserialize(content, _options) ?? new ManagerView(); - } - - - public async Task GetMemberByUserId(string userId) - { - var result = await _client - .GetAsync($"{_api.UserSupport}/user/member/{userId}"); - - var content = await result.Content.ReadAsStringAsync(); - if (!result.IsSuccessStatusCode || string.IsNullOrWhiteSpace(content)) - { - return new MemberView(); - } - return JsonSerializer.Deserialize(content, _options) ?? new MemberView(); - } - - - public async Task> GetEvaluationsByManagerId(string managerId) - { - var result = await _client - .GetFromJsonAsync>( - $"{_api.UserSupport}/manager/{managerId}", _options); - - return result ?? new List(); - } - - - public async Task> GetEvaluationsByMemberId(string memberId) - { - var result = await _client - .GetFromJsonAsync>( - $"{_api.UserSupport}/member/{memberId}", _options); - - return result ?? new List(); - } - - - public async Task GetById(string evaluationId) - { - var result = await _client - .GetFromJsonAsync( - $"{_api.UserSupport}/evaluation/{evaluationId}", _options); - - return result ?? new EvaluationEditView(); - - } - - - public async Task CreateEvaluation(EvaluationEditView evaluationEditView) - { - var result = await _client - .PostAsJsonAsync($"{_api.UserSupport}", evaluationEditView, _options); - - if (!result.IsSuccessStatusCode) - { - return new EvaluationEditView(); - } - - var content = await result.Content.ReadAsStringAsync(); - - return (string.IsNullOrWhiteSpace(content) - ? new EvaluationEditView() - : JsonSerializer.Deserialize(content, _options))!; - - } - - - public async Task UpdateEvaluation(string evaluationId, EvaluationEditView evaluationEditView) - { - var result = await _client - .PutAsJsonAsync($"{_api.UserSupport}/{evaluationId}", evaluationEditView, _options); - - if (!result.IsSuccessStatusCode) - { - return new EvaluationEditView(); - } - - var content = await result.Content.ReadAsStringAsync(); - - return (string.IsNullOrWhiteSpace(content) - ? new EvaluationEditView() - : JsonSerializer.Deserialize(content, _options))!; - } - - - public async Task DeleteEvaluation(string evaluationId) - { - await _client.DeleteAsync($"{_api.UserSupport}/{evaluationId}"); - } -} \ No newline at end of file diff --git a/Wonky.Client/HttpRepository/SupportDocumentRepository.cs b/Wonky.Client/HttpRepository/SupportDocumentRepository.cs new file mode 100644 index 00000000..378ba126 --- /dev/null +++ b/Wonky.Client/HttpRepository/SupportDocumentRepository.cs @@ -0,0 +1,106 @@ +using System.Net.Http.Json; +using System.Text.Json; +using Microsoft.AspNetCore.Components; +using Microsoft.Extensions.Options; +using Wonky.Entity.Configuration; +using Wonky.Entity.DTO; +using Wonky.Entity.Views; + +namespace Wonky.Client.HttpRepository; + +public class SupportDocumentRepository : ISupportDocumentRepository +{ + private readonly JsonSerializerOptions? _options = new JsonSerializerOptions + { + PropertyNameCaseInsensitive = true + }; + + private readonly NavigationManager _navigation; + private readonly ILogger _logger; + private readonly HttpClient _client; + private readonly ApiConfig _api; + + public SupportDocumentRepository(HttpClient client, + ILogger logger, + NavigationManager navigation, IOptions configuration) + { + _client = client; + _logger = logger; + _navigation = navigation; + _api = configuration.Value; + } + + + public async Task> GetDocumentsBySupervisorId(string supervisorId) + { + var result = await _client + .GetFromJsonAsync>( + $"{_api.UserSupport}/documents/supervisor/{supervisorId}", _options); + + return result ?? new List(); + } + + + public async Task> GetDocumentsByAdvisorId(string advisorId) + { + var result = await _client + .GetFromJsonAsync>( + $"{_api.UserSupport}/documents/advisor/{advisorId}", _options); + + return result ?? new List(); + } + + + public async Task GetById(string documentId) + { + var result = await _client + .GetFromJsonAsync( + $"{_api.UserSupport}/documents/{documentId}", _options); + + return result ?? new SupportDocumentEditView(); + + } + + + public async Task CreateDocument(SupportDocumentEditView model) + { + var result = await _client + .PostAsJsonAsync($"{_api.UserSupport}/documents", model, _options); + + if (!result.IsSuccessStatusCode) + { + return new SupportDocumentEditView(); + } + + var content = await result.Content.ReadAsStringAsync(); + + return (string.IsNullOrWhiteSpace(content) + ? new SupportDocumentEditView() + : JsonSerializer.Deserialize(content, _options))!; + + } + + + public async Task UpdateDocument(string documentId, SupportDocumentEditView model) + { + var result = await _client + .PutAsJsonAsync($"{_api.UserSupport}/documents/{documentId}", model, _options); + + if (!result.IsSuccessStatusCode) + { + return new SupportDocumentEditView(); + } + + var content = await result.Content.ReadAsStringAsync(); + + return (string.IsNullOrWhiteSpace(content) + ? new SupportDocumentEditView() + : JsonSerializer.Deserialize(content, _options))!; + } + + + public async Task DeleteDocument(string documentId) + { + await _client.DeleteAsync($"{_api.UserSupport}/documents/{documentId}"); + } +} \ No newline at end of file diff --git a/Wonky.Client/HttpRepository/SupportManagementRepository.cs b/Wonky.Client/HttpRepository/SupportManagementRepository.cs new file mode 100644 index 00000000..7fe00690 --- /dev/null +++ b/Wonky.Client/HttpRepository/SupportManagementRepository.cs @@ -0,0 +1,59 @@ +using System.Net.Http.Json; +using System.Text.Json; +using Microsoft.AspNetCore.Components; +using Microsoft.Extensions.Options; +using Wonky.Entity.Configuration; +using Wonky.Entity.DTO; +using Wonky.Entity.Views; + +namespace Wonky.Client.HttpRepository; + +public class SupportManagementRepository : ISupportManagementRepository +{ + private readonly JsonSerializerOptions? _options = new JsonSerializerOptions + { + PropertyNameCaseInsensitive = true + }; + + private readonly NavigationManager _navigation; + private readonly ILogger _logger; + private readonly HttpClient _client; + private readonly ApiConfig _api; + + public SupportManagementRepository(HttpClient client, + ILogger logger, + NavigationManager navigation, IOptions configuration) + { + _client = client; + _logger = logger; + _navigation = navigation; + _api = configuration.Value; + } + + + public async Task GetAdvisorByUserId(string userId) + { + var result = await _client + .GetAsync($"{_api.UserSupport}/user/advisor/{userId}"); + + var content = await result.Content.ReadAsStringAsync(); + if (!result.IsSuccessStatusCode || string.IsNullOrWhiteSpace(content)) + { + return new SupportAdvisorView(); + } + return JsonSerializer.Deserialize(content, _options) ?? new SupportAdvisorView(); + } + + + public async Task GetSupervisorByUserId(string userId) + { + var result = await _client + .GetAsync($"{_api.UserSupport}/user/supervisor/{userId}"); + var content = await result.Content.ReadAsStringAsync(); + if (!result.IsSuccessStatusCode || string.IsNullOrWhiteSpace(content)) + { + return new SupportSupervisorView(); + } + return JsonSerializer.Deserialize(content, _options) ?? new SupportSupervisorView(); + } +} \ No newline at end of file diff --git a/Wonky.Client/Pages/ManagerEvaluationViewEditPage.razor b/Wonky.Client/Pages/ManagerEvaluationViewEditPage.razor deleted file mode 100644 index c5f562f3..00000000 --- a/Wonky.Client/Pages/ManagerEvaluationViewEditPage.razor +++ /dev/null @@ -1,35 +0,0 @@ -@* Copyright (C) 2022 FCS Frede's Computer Services. -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as -// published by the Free Software Foundation, either version 3 of the -// License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html] -*@ - -@using Microsoft.AspNetCore.Authorization - -@attribute [Authorize(Roles = "Management,Supervisor")] - -@page "/supervisor/members/{UserId}/evaluations/{EvaluationId}" - -
-
-

Evalueringer

-
-
-
-
-
- Loading... -
-
-
-
-
\ No newline at end of file diff --git a/Wonky.Client/Pages/ManagerEvaluationViewEditPage.razor.cs b/Wonky.Client/Pages/ManagerEvaluationViewEditPage.razor.cs deleted file mode 100644 index 93a47ae9..00000000 --- a/Wonky.Client/Pages/ManagerEvaluationViewEditPage.razor.cs +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright (C) 2022 FCS Frede's Computer Services. -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as -// published by the Free Software Foundation, either version 3 of the -// License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html] -// - -using Microsoft.AspNetCore.Components; -using Wonky.Client.HttpInterceptors; -using Wonky.Client.HttpRepository; -using Wonky.Entity.DTO; -using Wonky.Entity.Views; - -namespace Wonky.Client.Pages; - -#pragma warning disable CS8618 - - -public partial class ManagerEvaluationViewEditPage : IDisposable -{ - // ######################################################### - [Inject] public IMemberSupportRepository MemberSupportRepo { get; set; } - [Inject] public HttpInterceptorService Interceptor { get; set; } - - // ######################################################### - [Parameter] public string UserId { get; set; } = ""; - [Parameter] public string EvaluationId { get; set; } = ""; - - // ######################################################### - private bool Working { get; set; } = true; - private EvaluationEditView Evaluation { get; set; } = new(); - private MemberView Member { get; set; } = new(); - - protected override async Task OnInitializedAsync() - { - Interceptor.RegisterEvent(); - Interceptor.RegisterBeforeSendEvent(); - - Member = await MemberSupportRepo.GetMemberByUserId(UserId); - - Evaluation = await MemberSupportRepo.GetById(EvaluationId); - - Working = false; - } - - - public void Dispose() - { - Interceptor.DisposeEvent(); - } -} \ No newline at end of file diff --git a/Wonky.Client/Pages/ManagerMemberListPage.razor b/Wonky.Client/Pages/SuportAdvisorListPage.razor similarity index 82% rename from Wonky.Client/Pages/ManagerMemberListPage.razor rename to Wonky.Client/Pages/SuportAdvisorListPage.razor index 628af735..620fd03d 100644 --- a/Wonky.Client/Pages/ManagerMemberListPage.razor +++ b/Wonky.Client/Pages/SuportAdvisorListPage.razor @@ -37,10 +37,10 @@ @if (Users.Any()) { -
+
@foreach (var user in Users) { -
+
@@ -68,8 +68,14 @@
diff --git a/Wonky.Client/Pages/ManagerMemberListPage.razor.cs b/Wonky.Client/Pages/SuportAdvisorListPage.razor.cs similarity index 97% rename from Wonky.Client/Pages/ManagerMemberListPage.razor.cs rename to Wonky.Client/Pages/SuportAdvisorListPage.razor.cs index ba006c79..8d0748ce 100644 --- a/Wonky.Client/Pages/ManagerMemberListPage.razor.cs +++ b/Wonky.Client/Pages/SuportAdvisorListPage.razor.cs @@ -22,7 +22,7 @@ namespace Wonky.Client.Pages; #pragma warning disable CS8618 -public partial class ManagerMemberListPage +public partial class SuportAdvisorListPage { // ############################################################# [Inject] public HttpInterceptorService Interceptor { get; set; } diff --git a/Wonky.Client/Pages/ManagerMemberActivityListViewPage.razor b/Wonky.Client/Pages/SupportAdvisorActivityListViewPage.razor similarity index 94% rename from Wonky.Client/Pages/ManagerMemberActivityListViewPage.razor rename to Wonky.Client/Pages/SupportAdvisorActivityListViewPage.razor index b333f149..bf1dff28 100644 --- a/Wonky.Client/Pages/ManagerMemberActivityListViewPage.razor +++ b/Wonky.Client/Pages/SupportAdvisorActivityListViewPage.razor @@ -17,7 +17,7 @@ @using Microsoft.AspNetCore.Authorization @attribute [Authorize(Roles = "Management,Supervisor")] -@page "/supervisor/members/{UserId}/activities/{ReportDate}" +@page "/supervisor/advisors/{AdvisorId}/activities/{ReportDate}"
@if (!string.IsNullOrWhiteSpace(Report.ReportData.DayTypeEnum)) @@ -42,7 +42,7 @@ else {
-
Ingen rapport data
+
Ingen data
}
diff --git a/Wonky.Client/Pages/ManagerMemberActivityListViewPage.razor.cs b/Wonky.Client/Pages/SupportAdvisorActivityListViewPage.razor.cs similarity index 83% rename from Wonky.Client/Pages/ManagerMemberActivityListViewPage.razor.cs rename to Wonky.Client/Pages/SupportAdvisorActivityListViewPage.razor.cs index a0f6ca41..5787d7f8 100644 --- a/Wonky.Client/Pages/ManagerMemberActivityListViewPage.razor.cs +++ b/Wonky.Client/Pages/SupportAdvisorActivityListViewPage.razor.cs @@ -30,22 +30,18 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class ManagerMemberActivityListViewPage : IDisposable +public partial class SupportAdvisorActivityListViewPage : IDisposable { // ############################################################# [Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public ICountryReportRepository ReportRepo { get; set; } [Inject] public NavigationManager Navigator { get; set; } - [Inject] public ILogger Logger { get; set; } + [Inject] public ILogger Logger { get; set; } [Inject] public ILocalStorageService Storage { get; set; } [Inject] public UserPreferenceService PreferenceService { get; set; } - [Inject] public IToastService Toaster { get; set; } - [Inject] public IOrderProcessRepository ProcessRepo { get; set; } - // [Inject] public EventCallback OnShowDocument { get; set; } - // ############################################################# - [Parameter] public string UserId { get; set; } = ""; + [Parameter] public string AdvisorId { get; set; } = ""; [Parameter] public string ReportDate { get; set; } = ""; @@ -55,7 +51,7 @@ public partial class ManagerMemberActivityListViewPage : IDisposable private List Activities { get; set; } = new(); private bool Working { get; set; } = true; private UserPreference Profile { get; set; } = new(); - private string _returnUrl = ""; + // private string _returnUrl = ""; protected override async Task OnParametersSetAsync() @@ -78,7 +74,7 @@ public partial class ManagerMemberActivityListViewPage : IDisposable { // shoe order/activity document // the supervisor version - Navigator.NavigateTo($"/supervisor/members/{UserId}/activities/{ReportDate}/visits/{documentId}"); + Navigator.NavigateTo($"/supervisor/advisors/{AdvisorId}/activities/{ReportDate}/visits/{documentId}"); } @@ -97,7 +93,7 @@ public partial class ManagerMemberActivityListViewPage : IDisposable ReportDate = workDate; // ensure the browser address bar contains the correct link - Navigator.NavigateTo($"/supervisor/members/{UserId}/activities/{workDate}", false, true); + Navigator.NavigateTo($"/supervisor/advisors/{AdvisorId}/activities/{workDate}", false, true); // return if we are already at it if (Working) @@ -112,9 +108,9 @@ public partial class ManagerMemberActivityListViewPage : IDisposable // set busy signal Working = true; - Logger.LogDebug("UserId => {}", UserId); + Logger.LogDebug("UserId => {}", AdvisorId); // fetch report - Report = await ReportRepo.GetCountryReport(UserId, workDate); + Report = await ReportRepo.GetCountryReport(AdvisorId, workDate); Logger.LogDebug("Report => {}", JsonSerializer.Serialize(Report, new JsonSerializerOptions(JsonSerializerDefaults.Web))); // extract activities @@ -123,7 +119,7 @@ public partial class ManagerMemberActivityListViewPage : IDisposable // store locally if (!string.IsNullOrWhiteSpace(Report.ReportData.ReportDate)) { - await Storage.SetItemAsync($"{UserId}-{workDate}", Report); + await Storage.SetItemAsync($"{AdvisorId}-{workDate}", Report); } // remove busy signal diff --git a/Wonky.Client/Pages/ManagerMemberActivityViewPage.razor b/Wonky.Client/Pages/SupportAdvisorActivityViewPage.razor similarity index 98% rename from Wonky.Client/Pages/ManagerMemberActivityViewPage.razor rename to Wonky.Client/Pages/SupportAdvisorActivityViewPage.razor index a40da505..d97ac3bf 100644 --- a/Wonky.Client/Pages/ManagerMemberActivityViewPage.razor +++ b/Wonky.Client/Pages/SupportAdvisorActivityViewPage.razor @@ -18,7 +18,7 @@ @using Wonky.Client.Components @attribute [Authorize(Roles = "Management,Supervisor")] -@page "/supervisor/members/{UserId}/activities/{ReportDate}/visits/{DocumentId}" +@page "/supervisor/advisors/{AdvisorId}/activities/{ReportDate}/visits/{DocumentId}" @ReportItem.ESalesNumber - @ReportItem.Company.Name diff --git a/Wonky.Client/Pages/ManagerMemberActivityViewPage.razor.cs b/Wonky.Client/Pages/SupportAdvisorActivityViewPage.razor.cs similarity index 84% rename from Wonky.Client/Pages/ManagerMemberActivityViewPage.razor.cs rename to Wonky.Client/Pages/SupportAdvisorActivityViewPage.razor.cs index 01f8de10..d0f8d2f1 100644 --- a/Wonky.Client/Pages/ManagerMemberActivityViewPage.razor.cs +++ b/Wonky.Client/Pages/SupportAdvisorActivityViewPage.razor.cs @@ -28,21 +28,16 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class ManagerMemberActivityViewPage : IDisposable +public partial class SupportAdvisorActivityViewPage : IDisposable { // ############################################################# [Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public ICountryActivityRepository ActivityRepo { get; set; } - [Inject] public ISystemSendMailService MailService { get; set; } - [Inject] public ILocalStorageService Storage { get; set; } - [Inject] public ICountryUserInfoRepository UserRepo { get; set; } [Inject] public ILogger Logger { get; set; } - [Inject] public IToastService Toast { get; set; } - [Inject] public IUserInfoService UserInfoService { get; set; } // ############################################################# - [Parameter] public string UserId { get; set; } = ""; + [Parameter] public string AdvisorId { get; set; } = ""; [Parameter] public string DocumentId { get; set; } = ""; [Parameter] public string ReportDate { get; set; } = ""; @@ -56,8 +51,7 @@ public partial class ManagerMemberActivityViewPage : IDisposable PropertyNameCaseInsensitive = true }; - - + protected override async Task OnInitializedAsync() { Interceptor.RegisterEvent(); diff --git a/Wonky.Client/Pages/ManagerMemberActivityViewPage.razor.css b/Wonky.Client/Pages/SupportAdvisorActivityViewPage.razor.css similarity index 100% rename from Wonky.Client/Pages/ManagerMemberActivityViewPage.razor.css rename to Wonky.Client/Pages/SupportAdvisorActivityViewPage.razor.css diff --git a/Wonky.Client/Pages/ManagerMemberBaseViewPage.razor b/Wonky.Client/Pages/SupportAdvisorViewPage.razor similarity index 96% rename from Wonky.Client/Pages/ManagerMemberBaseViewPage.razor rename to Wonky.Client/Pages/SupportAdvisorViewPage.razor index 27b2f0b0..1aa0d8f1 100644 --- a/Wonky.Client/Pages/ManagerMemberBaseViewPage.razor +++ b/Wonky.Client/Pages/SupportAdvisorViewPage.razor @@ -17,7 +17,7 @@ @using Wonky.Client.Components @attribute [Authorize(Roles = "Management,Supervisor")] -@page "/supervisor/members/{UserId}" +@page "/supervisor/advisors/{AdvisorId}" Rapport Arkiv @InfoAdvisor.FirstName @InfoAdvisor.LastName
diff --git a/Wonky.Client/Pages/ManagerMemberBaseViewPage.razor.cs b/Wonky.Client/Pages/SupportAdvisorViewPage.razor.cs similarity index 85% rename from Wonky.Client/Pages/ManagerMemberBaseViewPage.razor.cs rename to Wonky.Client/Pages/SupportAdvisorViewPage.razor.cs index 592f9438..727bd52b 100644 --- a/Wonky.Client/Pages/ManagerMemberBaseViewPage.razor.cs +++ b/Wonky.Client/Pages/SupportAdvisorViewPage.razor.cs @@ -7,18 +7,18 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class ManagerMemberBaseViewPage : IDisposable +public partial class SupportAdvisorViewPage : IDisposable { // ############################################################# [Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public ICountryUserInfoRepository UserRepo { get; set; } [Inject] public ICountryReportRepository ReportRepo { get; set; } [Inject] public NavigationManager Navigator { get; set; } - [Inject] public ILogger Logger { get; set; } + [Inject] public ILogger Logger { get; set; } // ############################################################# - [Parameter] public string UserId { get; set; } = ""; + [Parameter] public string AdvisorId { get; set; } = ""; // ############################################################# @@ -32,14 +32,14 @@ public partial class ManagerMemberBaseViewPage : IDisposable Interceptor.RegisterEvent(); Interceptor.RegisterBeforeSendEvent(); - InfoAdvisor = await UserRepo.GetUserInfo(UserId); + InfoAdvisor = await UserRepo.GetUserInfo(AdvisorId); while (string.IsNullOrWhiteSpace(InfoAdvisor.UserId)) { await Task.Delay(500); } - var reports = await ReportRepo.GetCountryReports(UserId); + var reports = await ReportRepo.GetCountryReports(AdvisorId); if (reports.Any()) ActivityReports = reports.OrderByDescending(x => x.ReportDate).ToList(); } diff --git a/Wonky.Client/Pages/ManagerEvaluationListPage.razor b/Wonky.Client/Pages/SupportDocumentListPage.razor similarity index 52% rename from Wonky.Client/Pages/ManagerEvaluationListPage.razor rename to Wonky.Client/Pages/SupportDocumentListPage.razor index 19d0ecc6..689d54c7 100644 --- a/Wonky.Client/Pages/ManagerEvaluationListPage.razor +++ b/Wonky.Client/Pages/SupportDocumentListPage.razor @@ -16,17 +16,17 @@ @using Microsoft.AspNetCore.Authorization @attribute [Authorize(Roles = "Management,Supervisor")] -@page "/supervisor/members/{UserId}/evaluations" +@page "/supervisor/advisors/{AdvisorId}/documents" -Evalueringer +Support Dokumentation
-

Evalueringer

+

Support Dokumentation

- Opret Evaluering + Opret @*
@@ -38,9 +38,33 @@
-@if (Evaluations.Any()) +@if (Documents.Any()) { - +
+
+
+
Dato
+
Supervisor
+
Navn
+
+
+ @foreach (var document in Documents) + { + +
+
+ @document.DocumentDate +
+
+ @document.SupervisorName +
+
+ @document.Description +
+
+
+ } +
} else { diff --git a/Wonky.Client/Pages/ManagerEvaluationListPage.razor.cs b/Wonky.Client/Pages/SupportDocumentListPage.razor.cs similarity index 63% rename from Wonky.Client/Pages/ManagerEvaluationListPage.razor.cs rename to Wonky.Client/Pages/SupportDocumentListPage.razor.cs index 0f1cceae..ec4b13bc 100644 --- a/Wonky.Client/Pages/ManagerEvaluationListPage.razor.cs +++ b/Wonky.Client/Pages/SupportDocumentListPage.razor.cs @@ -24,20 +24,21 @@ namespace Wonky.Client.Pages; #pragma warning disable CS8618 -public partial class ManagerEvaluationListPage : IDisposable +public partial class SupportDocumentListPage : IDisposable { // ######################################################### - [Inject] public IMemberSupportRepository MemberSupportRepo { get; set; } + [Inject] public ISupportDocumentRepository DocumentRepo { get; set; } + [Inject] public ISupportManagementRepository SupportRepo { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; } - [Inject] public ILogger Logger { get; set; } + [Inject] public ILogger Logger { get; set; } // ######################################################### - [Parameter] public string UserId { get; set; } = ""; + [Parameter] public string AdvisorId { get; set; } = ""; // ######################################################### - private List Evaluations { get; set; } = new(); - private MemberView Member { get; set; } = new(); - private bool _working = true; + private List Documents { get; set; } = new(); + private SupportAdvisorView Advisor { get; set; } = new(); + // private bool _working = true; protected override async Task OnInitializedAsync() @@ -46,17 +47,17 @@ public partial class ManagerEvaluationListPage : IDisposable Interceptor.RegisterEvent(); Interceptor.RegisterBeforeSendEvent(); - Logger.LogDebug("UserId => {}", UserId); + Logger.LogDebug("UserId => {}", AdvisorId); - Member = await MemberSupportRepo.GetMemberByUserId(UserId); + Advisor = await SupportRepo.GetAdvisorByUserId(AdvisorId); - Logger.LogDebug("Member => {}",JsonSerializer.Serialize(Member)); + Logger.LogDebug("Advisor => {}",JsonSerializer.Serialize(Advisor)); - Evaluations = await MemberSupportRepo.GetEvaluationsByMemberId(Member.MemberId); + Documents = await DocumentRepo.GetDocumentsByAdvisorId(Advisor.AdvisorId); - Logger.LogDebug("Evaluations => {}",JsonSerializer.Serialize(Evaluations)); + Logger.LogDebug("Documents => {}",JsonSerializer.Serialize(Documents)); - _working = false; + // _working = false; } diff --git a/Wonky.Client/Pages/ManagerEvaluationNewPage.razor b/Wonky.Client/Pages/SupportDocumentNewPage.razor similarity index 66% rename from Wonky.Client/Pages/ManagerEvaluationNewPage.razor rename to Wonky.Client/Pages/SupportDocumentNewPage.razor index 47a5c060..637267ff 100644 --- a/Wonky.Client/Pages/ManagerEvaluationNewPage.razor +++ b/Wonky.Client/Pages/SupportDocumentNewPage.razor @@ -17,31 +17,38 @@ @attribute [Authorize(Roles = "Management,Supervisor")] -@page "/supervisor/members/{UserId}/evaluations/new" +@page "/supervisor/advisors/{AdvisorId}/documents/new" -Ny evaluering +Support Dokumentation
-

Evaluering

+

Opret Dokumentation

- -
- + +
+
- -
- + +
+
- -
+ +
+ +
+ +
-
+ +
+ +
diff --git a/Wonky.Client/Pages/ManagerEvaluationNewPage.razor.cs b/Wonky.Client/Pages/SupportDocumentNewPage.razor.cs similarity index 66% rename from Wonky.Client/Pages/ManagerEvaluationNewPage.razor.cs rename to Wonky.Client/Pages/SupportDocumentNewPage.razor.cs index f38f9e63..77d5b666 100644 --- a/Wonky.Client/Pages/ManagerEvaluationNewPage.razor.cs +++ b/Wonky.Client/Pages/SupportDocumentNewPage.razor.cs @@ -27,26 +27,27 @@ namespace Wonky.Client.Pages; #pragma warning disable CS8618 -public partial class ManagerEvaluationNewPage : IDisposable +public partial class SupportDocumentNewPage : IDisposable { // ############################################################ - [Inject] public IMemberSupportRepository MemberSupportRepo { get; set; } + [Inject] public ISupportDocumentRepository DocumentRepo { get; set; } + [Inject] public ISupportManagementRepository SupportRepo { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public IUserInfoService UserService { get; set; } - [Inject] public ILogger Logger { get; set; } + [Inject] public ILogger Logger { get; set; } [Inject] public IToastService Toaster { get; set; } [Inject] public NavigationManager Navigator { get; set; } // ############################################################ - [Parameter] public string UserId { get; set; } = ""; + [Parameter] public string AdvisorId { get; set; } = ""; // ############################################################ private EditContext FormContext { get; set; } - private MemberView Member { get; set; } = new(); - private ManagerView Manager { get; set; } = new(); - private EvaluationEditView Document { get; set; } = new(); + private SupportAdvisorView Advisor { get; set; } = new(); + private SupportSupervisorView Supervisor { get; set; } = new(); + private SupportDocumentEditView Document { get; set; } = new(); private DateTime DocumentDate { get; set; } = DateTime.Now; private bool FormInvalid { get; set; } = true; @@ -60,44 +61,46 @@ public partial class ManagerEvaluationNewPage : IDisposable FormContext.OnFieldChanged += HandleFieldChanged!; FormContext.OnValidationStateChanged += ValidationChanged!; - Member = await MemberSupportRepo.GetMemberByUserId(UserId); + Advisor = await SupportRepo.GetAdvisorByUserId(AdvisorId); - Logger.LogDebug("Member => {}", JsonSerializer.Serialize(Member)); + Logger.LogDebug("Advisor => {}", JsonSerializer.Serialize(Advisor)); - var managerId = await UserService.GetUserId(); + var supervisorId = await UserService.GetUserId(); - Logger.LogDebug("ManagerId => {}", managerId); + Logger.LogDebug("SupervisorId => {}", supervisorId); - Manager = await MemberSupportRepo.GetManagerByUserId(managerId); + Supervisor = await SupportRepo.GetSupervisorByUserId(supervisorId); - Logger.LogDebug("Manager => {}", JsonSerializer.Serialize(Manager)); + Logger.LogDebug("Supervisor => {}", JsonSerializer.Serialize(Supervisor)); - Document.EvaluationDate = $"{DocumentDate:yyyy-MM-dd}"; - Document.ManagerId = Manager.ManagerId; - Document.ManagerName = Manager.FullName; - Document.MemberId = Member.MemberId; - Document.MemberName = Member.FullName; + Document.SupervisorId = Supervisor.SupervisorId; + Document.SupervisorName = Supervisor.FullName; + Document.AdvisorId = Advisor.AdvisorId; + Document.AdvisorName = Advisor.FullName; + Document.CountryCode = Advisor.CountryCode; } private async Task SubmitDocument() { + Document.DocumentDate = $"{DocumentDate:yyyy-MM-dd}"; Toaster.ShowInfo("Gemmer Evaluering"); - var x = await MemberSupportRepo.CreateEvaluation(Document); - if (string.IsNullOrWhiteSpace(x.EvaluationId)) + Logger.LogDebug("Document => {}", JsonSerializer.Serialize(Document, new JsonSerializerOptions(JsonSerializerDefaults.Web))); + var x = await DocumentRepo.CreateDocument(Document); + if (string.IsNullOrWhiteSpace(x.DocumentId)) { Toaster.ShowError("Fejl"); } else { Toaster.ShowSuccess("Ok"); - Navigator.NavigateTo($"/supervisor/members/{UserId}/evaluations/{x.EvaluationId}"); + Navigator.NavigateTo("/supervisor/advisors/{AdvisorId}/documents/{x.DocumentId}"); } } private void HandleFieldChanged(object sender, FieldChangedEventArgs e) { - Document.EvaluationDate = $"{DocumentDate:yyyy-MM-dd}"; + Document.DocumentDate = $"{DocumentDate:yyyy-MM-dd}"; FormInvalid = !FormContext.Validate(); diff --git a/Wonky.Client/Pages/SupportDocumentViewEditPage.razor b/Wonky.Client/Pages/SupportDocumentViewEditPage.razor new file mode 100644 index 00000000..a77a5a2d --- /dev/null +++ b/Wonky.Client/Pages/SupportDocumentViewEditPage.razor @@ -0,0 +1,81 @@ +@* Copyright (C) 2022 FCS Frede's Computer Services. +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as +// published by the Free Software Foundation, either version 3 of the +// License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html] +*@ + +@using Microsoft.AspNetCore.Authorization + +@attribute [Authorize(Roles = "Management,Supervisor")] + +@page "/supervisor/advisors/{AdvisorId}/documents/{DocumentId}" + +
+
+

Support Dokumentation

+
+
+
+
+
+ Loading... +
+
+
+
+
+ +
+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
+
+ +
+
diff --git a/Wonky.Client/Pages/SupportDocumentViewEditPage.razor.cs b/Wonky.Client/Pages/SupportDocumentViewEditPage.razor.cs new file mode 100644 index 00000000..65d253bd --- /dev/null +++ b/Wonky.Client/Pages/SupportDocumentViewEditPage.razor.cs @@ -0,0 +1,104 @@ +// Copyright (C) 2022 FCS Frede's Computer Services. +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as +// published by the Free Software Foundation, either version 3 of the +// License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html] +// + +using Blazored.Toast.Services; +using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Forms; +using Wonky.Client.HttpInterceptors; +using Wonky.Client.HttpRepository; +using Wonky.Entity.DTO; + +namespace Wonky.Client.Pages; + +#pragma warning disable CS8618 + + +public partial class SupportDocumentViewEditPage : IDisposable +{ + // ############################################################ + [Inject] public ISupportDocumentRepository DocumentRepo { get; set; } + [Inject] public HttpInterceptorService Interceptor { get; set; } + [Inject] public IToastService Toaster { get; set; } + [Inject] public NavigationManager Navigator { get; set; } + + + // ############################################################ + [Parameter] public string AdvisorId { get; set; } = ""; + [Parameter] public string DocumentId { get; set; } = ""; + + + // ############################################################ + private EditContext FormContext { get; set; } + private SupportDocumentEditView Document { get; set; } = new(); + private bool Working { get; set; } = true; + + protected override async Task OnInitializedAsync() + { + Interceptor.RegisterEvent(); + Interceptor.RegisterBeforeSendEvent(); + + FormContext = new EditContext(Document); + + FormContext.OnFieldChanged += HandleFieldChanged!; + FormContext.OnValidationStateChanged += ValidationChanged!; + + Document = await DocumentRepo.GetById(DocumentId); + + Working = false; + + StateHasChanged(); + } + + + private async Task RemoveDocument() + { + Toaster.ShowInfo("Sletter Dokument"); + await DocumentRepo.DeleteDocument(Document.DocumentId); + Navigator.NavigateTo($"/supervisor/advisors/{AdvisorId}/documents"); + } + + + private async Task SubmitDocument() + { + var x = await DocumentRepo.UpdateDocument(Document.DocumentId, Document); + + Toaster.ShowSuccess("Ok"); + } + + + private void HandleFieldChanged(object sender, FieldChangedEventArgs e) + { + StateHasChanged(); + } + + + private void ValidationChanged(object sender, ValidationStateChangedEventArgs e) + { + FormContext.OnFieldChanged -= HandleFieldChanged!; + FormContext.OnValidationStateChanged -= ValidationChanged!; + FormContext = new EditContext(Document); + FormContext.OnFieldChanged += HandleFieldChanged!; + FormContext.OnValidationStateChanged += ValidationChanged!; + } + + + + public void Dispose() + { + Interceptor.DisposeEvent(); + FormContext.OnFieldChanged -= HandleFieldChanged!; + FormContext.OnValidationStateChanged -= ValidationChanged!; + } +} \ No newline at end of file diff --git a/Wonky.Client/Program.cs b/Wonky.Client/Program.cs index 8eaeb89f..e6a7fccb 100644 --- a/Wonky.Client/Program.cs +++ b/Wonky.Client/Program.cs @@ -28,6 +28,7 @@ using Wonky.Client.HttpRepository; using Wonky.Client.Local.Services; using Wonky.Client.Shared; using Wonky.Entity.Configuration; +using Wonky.Entity.DTO; var builder = WebAssemblyHostBuilder.CreateDefault(args); builder.RootComponents.Add("#app"); @@ -74,7 +75,8 @@ builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); -builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); builder.Services.AddScoped(); // warehouse repository builder.Services.AddScoped(); diff --git a/Wonky.Client/Shared/NavMenu.razor b/Wonky.Client/Shared/NavMenu.razor index fe96e5c9..32ba089b 100644 --- a/Wonky.Client/Shared/NavMenu.razor +++ b/Wonky.Client/Shared/NavMenu.razor @@ -111,12 +111,12 @@ - + - + + + + + + +