WIP: evaluation and management

This commit is contained in:
Frede Hundewadt 2023-04-25 12:23:58 +02:00
parent 97cf9b8658
commit 8397b82e60
8 changed files with 41 additions and 32 deletions

View file

@ -3,7 +3,7 @@ using Wonky.Entity.Views;
namespace Wonky.Client.HttpRepository; namespace Wonky.Client.HttpRepository;
public interface IEvaluationRepository public interface IMemberSupportRepository
{ {
Task<ManagerView> GetManagerByUserId(string userId); Task<ManagerView> GetManagerByUserId(string userId);
Task<MemberView> GetMemberByUserId(string userId); Task<MemberView> GetMemberByUserId(string userId);

View file

@ -8,7 +8,7 @@ using Wonky.Entity.Views;
namespace Wonky.Client.HttpRepository; namespace Wonky.Client.HttpRepository;
public class EvaluationRepository : IEvaluationRepository public class MemberSupportRepository : IMemberSupportRepository
{ {
private readonly JsonSerializerOptions? _options = new JsonSerializerOptions private readonly JsonSerializerOptions? _options = new JsonSerializerOptions
{ {
@ -16,12 +16,12 @@ public class EvaluationRepository : IEvaluationRepository
}; };
private readonly NavigationManager _navigation; private readonly NavigationManager _navigation;
private readonly ILogger<EvaluationRepository> _logger; private readonly ILogger<MemberSupportRepository> _logger;
private readonly HttpClient _client; private readonly HttpClient _client;
private readonly ApiConfig _api; private readonly ApiConfig _api;
public EvaluationRepository(HttpClient client, public MemberSupportRepository(HttpClient client,
ILogger<EvaluationRepository> logger, ILogger<MemberSupportRepository> logger,
NavigationManager navigation, IOptions<ApiConfig> configuration) NavigationManager navigation, IOptions<ApiConfig> configuration)
{ {
_client = client; _client = client;
@ -34,18 +34,27 @@ public class EvaluationRepository : IEvaluationRepository
public async Task<ManagerView> GetManagerByUserId(string userId) public async Task<ManagerView> GetManagerByUserId(string userId)
{ {
var result = await _client var result = await _client
.GetFromJsonAsync<ManagerView>($"{_api.MemberEvaluation}/id/manager/{userId}", _options); .GetAsync($"{_api.UserSupport}/user/manager/{userId}");
var content = await result.Content.ReadAsStringAsync();
return result ?? new ManagerView(); if (!result.IsSuccessStatusCode || string.IsNullOrWhiteSpace(content))
{
return new ManagerView();
}
return JsonSerializer.Deserialize<ManagerView>(content, _options) ?? new ManagerView();
} }
public async Task<MemberView> GetMemberByUserId(string userId) public async Task<MemberView> GetMemberByUserId(string userId)
{ {
var result = await _client var result = await _client
.GetFromJsonAsync<MemberView>($"{_api.MemberEvaluation}/id/member/{userId}", _options); .GetAsync($"{_api.UserSupport}/user/member/{userId}");
return result ?? new MemberView(); var content = await result.Content.ReadAsStringAsync();
if (!result.IsSuccessStatusCode || string.IsNullOrWhiteSpace(content))
{
return new MemberView();
}
return JsonSerializer.Deserialize<MemberView>(content, _options) ?? new MemberView();
} }
@ -53,7 +62,7 @@ public class EvaluationRepository : IEvaluationRepository
{ {
var result = await _client var result = await _client
.GetFromJsonAsync<List<EvaluationEditView>>( .GetFromJsonAsync<List<EvaluationEditView>>(
$"{_api.MemberEvaluation}/manager/{managerId}", _options); $"{_api.UserSupport}/manager/{managerId}", _options);
return result ?? new List<EvaluationEditView>(); return result ?? new List<EvaluationEditView>();
} }
@ -63,7 +72,7 @@ public class EvaluationRepository : IEvaluationRepository
{ {
var result = await _client var result = await _client
.GetFromJsonAsync<List<EvaluationEditView>>( .GetFromJsonAsync<List<EvaluationEditView>>(
$"{_api.MemberEvaluation}/member/{memberId}", _options); $"{_api.UserSupport}/member/{memberId}", _options);
return result ?? new List<EvaluationEditView>(); return result ?? new List<EvaluationEditView>();
} }
@ -73,7 +82,7 @@ public class EvaluationRepository : IEvaluationRepository
{ {
var result = await _client var result = await _client
.GetFromJsonAsync<EvaluationEditView>( .GetFromJsonAsync<EvaluationEditView>(
$"{_api.MemberEvaluation}/id/{evaluationId}", _options); $"{_api.UserSupport}/evaluation/{evaluationId}", _options);
return result ?? new EvaluationEditView(); return result ?? new EvaluationEditView();
@ -83,7 +92,7 @@ public class EvaluationRepository : IEvaluationRepository
public async Task<EvaluationEditView> CreateEvaluation(EvaluationEditView evaluationEditView) public async Task<EvaluationEditView> CreateEvaluation(EvaluationEditView evaluationEditView)
{ {
var result = await _client var result = await _client
.PostAsJsonAsync($"{_api.MemberEvaluation}", evaluationEditView, _options); .PostAsJsonAsync($"{_api.UserSupport}", evaluationEditView, _options);
if (!result.IsSuccessStatusCode) if (!result.IsSuccessStatusCode)
{ {
@ -102,7 +111,7 @@ public class EvaluationRepository : IEvaluationRepository
public async Task<EvaluationEditView> UpdateEvaluation(string evaluationId, EvaluationEditView evaluationEditView) public async Task<EvaluationEditView> UpdateEvaluation(string evaluationId, EvaluationEditView evaluationEditView)
{ {
var result = await _client var result = await _client
.PutAsJsonAsync($"{_api.MemberEvaluation}/{evaluationId}", evaluationEditView, _options); .PutAsJsonAsync($"{_api.UserSupport}/{evaluationId}", evaluationEditView, _options);
if (!result.IsSuccessStatusCode) if (!result.IsSuccessStatusCode)
{ {
@ -119,6 +128,6 @@ public class EvaluationRepository : IEvaluationRepository
public async Task DeleteEvaluation(string evaluationId) public async Task DeleteEvaluation(string evaluationId)
{ {
await _client.DeleteAsync($"{_api.MemberEvaluation}/{evaluationId}"); await _client.DeleteAsync($"{_api.UserSupport}/{evaluationId}");
} }
} }

View file

@ -27,7 +27,7 @@ namespace Wonky.Client.Pages;
public partial class ManagerEvaluationListPage : IDisposable public partial class ManagerEvaluationListPage : IDisposable
{ {
// ######################################################### // #########################################################
[Inject] public IEvaluationRepository EvaluationRepo { get; set; } [Inject] public IMemberSupportRepository MemberSupportRepo { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public ILogger<ManagerEvaluationListPage> Logger { get; set; } [Inject] public ILogger<ManagerEvaluationListPage> Logger { get; set; }
@ -48,11 +48,11 @@ public partial class ManagerEvaluationListPage : IDisposable
Logger.LogDebug("UserId => {}", UserId); Logger.LogDebug("UserId => {}", UserId);
Member = await EvaluationRepo.GetMemberByUserId(UserId); Member = await MemberSupportRepo.GetMemberByUserId(UserId);
Logger.LogDebug("Member => {}",JsonSerializer.Serialize(Member)); Logger.LogDebug("Member => {}",JsonSerializer.Serialize(Member));
Evaluations = await EvaluationRepo.GetEvaluationsByMemberId(Member.MemberId); Evaluations = await MemberSupportRepo.GetEvaluationsByMemberId(Member.MemberId);
Logger.LogDebug("Evaluations => {}",JsonSerializer.Serialize(Evaluations)); Logger.LogDebug("Evaluations => {}",JsonSerializer.Serialize(Evaluations));

View file

@ -28,7 +28,7 @@ namespace Wonky.Client.Pages;
public partial class ManagerEvaluationNewPage : IDisposable public partial class ManagerEvaluationNewPage : IDisposable
{ {
// ############################################################ // ############################################################
[Inject] public IEvaluationRepository EvaluationRepo { get; set; } [Inject] public IMemberSupportRepository MemberSupportRepo { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public IUserInfoService UserService { get; set; } [Inject] public IUserInfoService UserService { get; set; }
[Inject] public ILogger<ManagerEvaluationNewPage> Logger { get; set; } [Inject] public ILogger<ManagerEvaluationNewPage> Logger { get; set; }
@ -49,7 +49,7 @@ public partial class ManagerEvaluationNewPage : IDisposable
Interceptor.RegisterEvent(); Interceptor.RegisterEvent();
Interceptor.RegisterBeforeSendEvent(); Interceptor.RegisterBeforeSendEvent();
Member = await EvaluationRepo.GetMemberByUserId(UserId); Member = await MemberSupportRepo.GetMemberByUserId(UserId);
Logger.LogDebug("Member => {}", JsonSerializer.Serialize(Member)); Logger.LogDebug("Member => {}", JsonSerializer.Serialize(Member));
@ -57,7 +57,7 @@ public partial class ManagerEvaluationNewPage : IDisposable
Logger.LogDebug("ManagerId => {}", managerId); Logger.LogDebug("ManagerId => {}", managerId);
Manager = await EvaluationRepo.GetManagerByUserId(managerId); Manager = await MemberSupportRepo.GetManagerByUserId(managerId);
Logger.LogDebug("Manager => {}", JsonSerializer.Serialize(Manager)); Logger.LogDebug("Manager => {}", JsonSerializer.Serialize(Manager));
} }

View file

@ -27,7 +27,7 @@ namespace Wonky.Client.Pages;
public partial class ManagerEvaluationViewEditPage : IDisposable public partial class ManagerEvaluationViewEditPage : IDisposable
{ {
// ######################################################### // #########################################################
[Inject] public IEvaluationRepository EvaluationRepo { get; set; } [Inject] public IMemberSupportRepository MemberSupportRepo { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; }
// ######################################################### // #########################################################
@ -44,9 +44,9 @@ public partial class ManagerEvaluationViewEditPage : IDisposable
Interceptor.RegisterEvent(); Interceptor.RegisterEvent();
Interceptor.RegisterBeforeSendEvent(); Interceptor.RegisterBeforeSendEvent();
Member = await EvaluationRepo.GetMemberByUserId(UserId); Member = await MemberSupportRepo.GetMemberByUserId(UserId);
Evaluation = await EvaluationRepo.GetById(EvaluationId); Evaluation = await MemberSupportRepo.GetById(EvaluationId);
Working = false; Working = false;
} }

View file

@ -74,7 +74,7 @@ builder.Services.AddScoped<ISystemLabelsRepository, SystemLabelsRepository>();
builder.Services.AddScoped<ISystemTextsRepository, SystemTextsRepository>(); builder.Services.AddScoped<ISystemTextsRepository, SystemTextsRepository>();
builder.Services.AddScoped<ISystemUserRepository, SystemUserRepository>(); builder.Services.AddScoped<ISystemUserRepository, SystemUserRepository>();
builder.Services.AddScoped<ICountryUserInfoRepository, CountryUserInfoRepository>(); builder.Services.AddScoped<ICountryUserInfoRepository, CountryUserInfoRepository>();
builder.Services.AddScoped<IEvaluationRepository, EvaluationRepository>(); builder.Services.AddScoped<IMemberSupportRepository, MemberSupportRepository>();
builder.Services.AddScoped<ICountryActivityRepository, CountryActivityRepository>(); builder.Services.AddScoped<ICountryActivityRepository, CountryActivityRepository>();
// warehouse repository // warehouse repository
builder.Services.AddScoped<IOrderProcessRepository, OrderProcessRepository>(); builder.Services.AddScoped<IOrderProcessRepository, OrderProcessRepository>();

View file

@ -47,7 +47,7 @@
"systemDocStringUrl": "api/v2/admin/doc", "systemDocStringUrl": "api/v2/admin/doc",
"systemLabels": "api/v2/admin/doc/labels", "systemLabels": "api/v2/admin/doc/labels",
"systemTexts": "api/v2/admin/doc/texts", "systemTexts": "api/v2/admin/doc/texts",
"memberEvaluation": "/api/v2/app/manage/evaluations", "userSupport": "/api/v2/app/manage/support",
"userInfoClient": "/api/v2/client/users", "userInfoClient": "/api/v2/client/users",
"userInfoAuth": "api/v2/auth/userinfo", "userInfoAuth": "api/v2/auth/userinfo",
"userManager": "api/v2/app/manage/users", "userManager": "api/v2/app/manage/users",

View file

@ -156,11 +156,6 @@ public class ApiConfig
/// </summary> /// </summary>
public string SystemTexts { get; set; } = ""; public string SystemTexts { get; set; } = "";
/// <summary>
/// Endpoint for user evaluations
/// </summary>
public string MemberEvaluation { get; set; } = "";
/// <summary> /// <summary>
/// Application uri for user information request /// Application uri for user information request
/// </summary> /// </summary>
@ -186,6 +181,11 @@ public class ApiConfig
/// </summary> /// </summary>
public string UserRoles { get; set; } = ""; public string UserRoles { get; set; } = "";
/// <summary>
/// Endpoint for user evaluations
/// </summary>
public string UserSupport { get; set; } = "";
/// <summary> /// <summary>
/// Uri for warehouse requests /// Uri for warehouse requests
/// </summary> /// </summary>