From 5bc9663930d8cd481767cc3522e9b7d89d18c267 Mon Sep 17 00:00:00 2001 From: Loretta Date: Thu, 29 Aug 2024 16:40:46 +0200 Subject: [PATCH] Changing UserDataServiceClientBase Http to Signalr in progress... --- TIAM.Services/SignalRTags.cs | 10 +- .../Services/UserDataServiceMobile.cs | 4 +- TIAMSharedUI/Pages/Login.razor.cs | 119 ++++++------ .../Client/Services/UserDataServiceWeb.cs | 4 +- .../Server/Controllers/UserAPIController.cs | 74 ++++--- .../Shared/Interfaces/IUserDataService.cs | 4 +- .../Services/SessionServiceClientBase.cs | 7 +- .../Services/UserDataServiceClientBase.cs | 181 ++++++++++-------- 8 files changed, 221 insertions(+), 182 deletions(-) diff --git a/TIAM.Services/SignalRTags.cs b/TIAM.Services/SignalRTags.cs index 1e540bd6..3dd95968 100644 --- a/TIAM.Services/SignalRTags.cs +++ b/TIAM.Services/SignalRTags.cs @@ -113,8 +113,13 @@ public class SignalRTags : AcSignalRTags public const int GetTransferDestinationToProductsByTransferDestinationId = 96; public const int GetAllUsers = 120; - public const int GetAllUserModelDtoDetails = 121; - public const int GetAllUserModelDtoEmails = 125; + public const int GetAllUserModelDto = 121; + public const int GetAllUserModelDtoDetails = 122; + public const int GetAllUserModelDtoEmails = 123; + public const int GetUserModelDtoById = 126; + public const int GetUserModelDtoByEmail = 127; + public const int GetUserModelDtoDetailById = 128; + public const int GetUserModelDtoDetailByEmail = 129; public const int AddUser = 130; public const int AddUserModelDtoDetail = 131; public const int UpdateUser = 135; @@ -125,5 +130,6 @@ public class SignalRTags : AcSignalRTags public const int GuestUpdateTransfer = 150; public const int DriverUpdateTransfer = 151; + public const int AuthenticateUser = 160; public const int GetAllLogItemsByFilterText = 1000; } diff --git a/TIAMMobileApp/Services/UserDataServiceMobile.cs b/TIAMMobileApp/Services/UserDataServiceMobile.cs index 07f5ae4f..dba4f1e3 100644 --- a/TIAMMobileApp/Services/UserDataServiceMobile.cs +++ b/TIAMMobileApp/Services/UserDataServiceMobile.cs @@ -17,7 +17,7 @@ using TIAMWebApp.Shared.Application.Utility; namespace TIAMMobileApp.Services { - public class UserDataServiceMobile(HttpClient http, ISessionService sessionService, ISecureStorageHandler secureStorageHandler, IServiceProviderDataService serviceProviderDataService, IEnumerable logWriters) - : UserDataServiceClientBase(http, sessionService, secureStorageHandler, serviceProviderDataService, logWriters); + public class UserDataServiceMobile(HttpClient http, AdminSignalRClient adminSignalRClient, ISessionService sessionService, ISecureStorageHandler secureStorageHandler, IServiceProviderDataService serviceProviderDataService, IEnumerable logWriters) + : UserDataServiceClientBase(http, adminSignalRClient, sessionService, secureStorageHandler, serviceProviderDataService, logWriters); } diff --git a/TIAMSharedUI/Pages/Login.razor.cs b/TIAMSharedUI/Pages/Login.razor.cs index 0a81b8d1..0ce4884f 100644 --- a/TIAMSharedUI/Pages/Login.razor.cs +++ b/TIAMSharedUI/Pages/Login.razor.cs @@ -1,6 +1,7 @@ using Microsoft.AspNetCore.Components; using System.IdentityModel.Tokens.Jwt; using System.Text.Json; +using AyCode.Core.Extensions; using AyCode.Core.Helpers; using TIAMWebApp.Shared.Application.Models.ClientSide; using TIAMWebApp.Shared.Application.Models; @@ -64,80 +65,79 @@ namespace TIAMSharedUI.Pages { _currentStep = 1; BrowserConsoleLogWriter.Info("Login started: " + "Email: " + _loginModel.Email + ", Password: " + _loginModel.Password); - var response = await userDataService.AuthenticateUser(_loginModel); + + var mainResponse = await userDataService.AuthenticateUser(_loginModel); + //var response = await UserDataservice.TestUserApi(30); BrowserConsoleLogWriter.Info("Login started"); - BrowserConsoleLogWriter.Info(response); + //BrowserConsoleLogWriter.Info(response); - if (!string.IsNullOrEmpty(response)) + //if (!string.IsNullOrEmpty(response)) + if (mainResponse != null) { //get token and save to local storage //parse to Mainresponse from json string //var Mainresponse = JsonSerializer.Deserialize(response); - var mainResponse = JsonSerializer.Deserialize(response, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); + //var mainResponse = JsonSerializer.Deserialize(response, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); - if (mainResponse != null) + if (!mainResponse.IsSuccess) { + //await App.Current.MainPage.DisplayAlert("Error", "Invalid credentials", "Ok"); + //display error message via jsinterop + BrowserConsoleLogWriter.Info("Invalid credentials"); + messageClass = "text-danger"; + resultMessage = "Invalid credentials"; + await InvokeAsync(StateHasChanged); + //navManager.NavigateTo("login"); + } + else + { + string authResponseJson = mainResponse.Content.ToJson(); //JsonSerializer.Serialize(mainResponse.Content); - if (!mainResponse.IsSuccess) + var authResponse = authResponseJson.JsonTo(); //JsonSerializer.Deserialize(authResponseJson, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); + + string accessToken = authResponse.AccessToken; + + var token = ProcessToken(accessToken); + + string userId = token.Claims.First(claim => claim.Type == JwtRegisteredClaimNames.NameId).Value; + string email = token.Claims.First(claim => claim.Type == JwtRegisteredClaimNames.Email).Value; + + var myId = Guid.Parse(userId); + //userDataService.User.Email = _email; + + var userBasicDetails = new UserBasicDetails(userId, email, authResponse.AccessToken, authResponse.RefreshToken); + + string userBasicDetailsJson = JsonSerializer.Serialize(userBasicDetails); + + + //save to local storage + await secureStorageHandler.SaveToSecureStorageAsync(nameof(Setting.UserBasicDetails), userBasicDetailsJson); + + await AuthStateProvider.GetAuthenticationStateAsync(); + + + //await App.Current.MainPage.DisplayAlert("Success", "Successful login", "Ok"); + //display success message via jsinterop + BrowserConsoleLogWriter.Info("Successful login"); + var user = await userDataService.IsLoggedInAsync(myId); + + _adminSignalRClient.GetByIdAsync(SignalRTags.GetSiteViewModelByUserId, signalResponseMessage => { - //await App.Current.MainPage.DisplayAlert("Error", "Invalid credentials", "Ok"); - //display error message via jsinterop - BrowserConsoleLogWriter.Info("Invalid credentials"); - messageClass = "text-danger"; - resultMessage = "Invalid credentials"; - await InvokeAsync(StateHasChanged); - //navManager.NavigateTo("login"); - } - else - { - string authResponseJson = JsonSerializer.Serialize(mainResponse.Content); + sessionService.SiteViewModel.Initialize(signalResponseMessage.ResponseData!); + BrowserConsoleLogWriter.Debug($"UnreadMessages: {sessionService.SiteViewModel.UnreadMessages.Count}"); - var authResponse = JsonSerializer.Deserialize(authResponseJson, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); + componentUpdateService.CallRequestRefreshAll(); + return Task.CompletedTask; + }, user.UserId).Forget(); - string accessToken = authResponse.AccessToken; + messageClass = "text-success"; + resultMessage = "Successful login"; - var token = ProcessToken(accessToken); - - string userId = token.Claims.First(claim => claim.Type == JwtRegisteredClaimNames.NameId).Value; - string email = token.Claims.First(claim => claim.Type == JwtRegisteredClaimNames.Email).Value; - - var myId = Guid.Parse(userId); - //userDataService.User.Email = _email; - - var userBasicDetails = new UserBasicDetails(userId, email, authResponse.AccessToken, authResponse.RefreshToken); - - string userBasicDetailsJson = JsonSerializer.Serialize(userBasicDetails); - - - //save to local storage - await secureStorageHandler.SaveToSecureStorageAsync(nameof(Setting.UserBasicDetails), userBasicDetailsJson); - - await AuthStateProvider.GetAuthenticationStateAsync(); - - - //await App.Current.MainPage.DisplayAlert("Success", "Successful login", "Ok"); - //display success message via jsinterop - BrowserConsoleLogWriter.Info("Successful login"); - var user = await userDataService.IsLoggedInAsync(myId); - - _adminSignalRClient.GetByIdAsync(SignalRTags.GetSiteViewModelByUserId, signalResponseMessage => - { - sessionService.SiteViewModel.Initialize(signalResponseMessage.ResponseData!); - BrowserConsoleLogWriter.Debug($"UnreadMessages: {sessionService.SiteViewModel.UnreadMessages.Count}"); - - componentUpdateService.CallRequestRefreshAll(); - return Task.CompletedTask; - }, user.UserId).Forget(); - - messageClass = "text-success"; - resultMessage = "Successful login"; - - SaveToSessionInfo(user).Forget(); - navManager.NavigateTo("/"); - } + SaveToSessionInfo(user).Forget(); + navManager.NavigateTo("/"); } } else @@ -145,10 +145,9 @@ namespace TIAMSharedUI.Pages //api error //await App.Current.MainPage.DisplayAlert("Error", "An error occured while trying to login", "Ok"); //display error message via jsinterop - BrowserConsoleLogWriter.Info("An error occured while trying to login"); + BrowserConsoleLogWriter.Warning("An error occured while trying to login"); navManager.NavigateTo("login"); } - } protected override void OnInitialized() diff --git a/TIAMWebApp/Client/Services/UserDataServiceWeb.cs b/TIAMWebApp/Client/Services/UserDataServiceWeb.cs index 71268bf4..6a9e8d63 100644 --- a/TIAMWebApp/Client/Services/UserDataServiceWeb.cs +++ b/TIAMWebApp/Client/Services/UserDataServiceWeb.cs @@ -19,7 +19,7 @@ using TIAMWebApp.Shared.Application.Services; namespace TIAMWebApp.Client.Services { - public class UserDataServiceWeb(HttpClient http, ISessionService sessionService, ISecureStorageHandler secureStorageHandler, IServiceProviderDataService serviceProviderDataService, IEnumerable logWriters) - : UserDataServiceClientBase(http, sessionService, secureStorageHandler, serviceProviderDataService, logWriters); + public class UserDataServiceWeb(HttpClient http, AdminSignalRClient adminSignalRClient, ISessionService sessionService, ISecureStorageHandler secureStorageHandler, IServiceProviderDataService serviceProviderDataService, IEnumerable logWriters) + : UserDataServiceClientBase(http, adminSignalRClient, sessionService, secureStorageHandler, serviceProviderDataService, logWriters); } diff --git a/TIAMWebApp/Server/Controllers/UserAPIController.cs b/TIAMWebApp/Server/Controllers/UserAPIController.cs index 09e86ed8..49265339 100644 --- a/TIAMWebApp/Server/Controllers/UserAPIController.cs +++ b/TIAMWebApp/Server/Controllers/UserAPIController.cs @@ -96,28 +96,40 @@ namespace TIAMWebApp.Server.Controllers if (authenticateUser == null) throw new NullReferenceException("authenticateUser == null"); - _logger.Info(authenticateUser.Email); + var response = await AuthenticateUser(authenticateUser); - var loggedInModel = _loginService.Login(authenticateUser.Email, authenticateUser.Password); - if (loggedInModel.IsLoggedIn) + if (response != null) return Ok(response); + + return Unauthorized(); + } + + [NonAction] + [SignalR(SignalRTags.AuthenticateUser)] + public async Task AuthenticateUser(LoginModel authenticateUser) + { + _logger.Info($"AuthenticateUser; {authenticateUser.Email}"); + + var loggedInModel = await _loginService.LoginAsync(authenticateUser.Email, authenticateUser.Password); + + if (!loggedInModel.IsLoggedIn) { - var response = new MainResponse - { - Content = new AuthenticationResponse - { - RefreshToken = loggedInModel.LoggedInUser.RefreshToken, - AccessToken = loggedInModel.AccessToken - }, - - IsSuccess = true, - ErrorMessage = "" - }; - - return Ok(response); + _logger.Warning(@"User not valid! errorCode: " + loggedInModel.LoginErrorCode); + return null; } - _logger.Warning(@"User not valid! errorCode: " + loggedInModel.LoginErrorCode); - return Unauthorized(); + var response = new MainResponse + { + Content = new AuthenticationResponse + { + RefreshToken = loggedInModel.LoggedInUser.RefreshToken, + AccessToken = loggedInModel.AccessToken + }, + + IsSuccess = true, + ErrorMessage = "" + }; + + return response; } [AllowAnonymous] @@ -199,7 +211,7 @@ namespace TIAMWebApp.Server.Controllers else { var user = JObject.Parse(serializedRegistrationModel.GetRawText()).ToObject(); - bool result = false; + var result = false; if (user != null) { //add userModel to users array @@ -297,6 +309,7 @@ namespace TIAMWebApp.Server.Controllers [AllowAnonymous] [HttpGet] [Route("GetUsers")] + [SignalR(SignalRTags.GetAllUserModelDto)] public async Task> GetUsers() { //var users = await _userDal.Ctx.Users.ToListAsync();//.GetUsersAsync(); @@ -412,34 +425,35 @@ namespace TIAMWebApp.Server.Controllers [AllowAnonymous] [HttpGet] [Route(APIUrls.GetUserByEmailRouteName + "/{email}")] - public async Task? GetUserByEmail(string email) + [SignalR(SignalRTags.GetUserModelDtoByEmail)] + public async Task GetUserByEmail(string email) { _logger.Info($"GetUserByEmail called with email: {email}"); - var result = await userDal.GetUserModelDtoByEmailAsync(email, false); - if (result == null) - { - UserModelDto resultDto = new UserModelDto(); - return resultDto; - } - else - { - return result; - } + return await userDal.GetUserModelDtoByEmailAsync(email, false); + + //var result = await userDal.GetUserModelDtoByEmailAsync(email, false); + //if (result != null) return result; + + //var resultDto = new UserModelDto(); + //return resultDto; } [AllowAnonymous] [HttpPost] [Route(APIUrls.GetUserByIdRouteName)] + [SignalR(SignalRTags.GetUserModelDtoById)] public async Task GetUserById([FromBody] Guid id) { _logger.Info($"GetUserById called with id: {id}"); + return await userDal.GetUserModelDtoByIdAsync(id, true); } [AllowAnonymous] [HttpPost] [Route(APIUrls.GetUserDetailByIdRouteName)] + [SignalR(SignalRTags.GetUserModelDtoDetailById)] public async Task GetUserDetailById([FromBody] Guid id) { _logger.Info($"GetUserDetailById called with id: {id}"); diff --git a/TIAMWebApp/Shared/Interfaces/IUserDataService.cs b/TIAMWebApp/Shared/Interfaces/IUserDataService.cs index 202a5ae0..72cbd3dd 100644 --- a/TIAMWebApp/Shared/Interfaces/IUserDataService.cs +++ b/TIAMWebApp/Shared/Interfaces/IUserDataService.cs @@ -8,14 +8,14 @@ namespace TIAMWebApp.Shared.Application.Interfaces { public Task IsLoggedInAsync(Guid id); - public Task AuthenticateUser(LoginModel loginModel); + public Task AuthenticateUser(LoginModel loginModel); public Task<(bool isSuccess, string ErrorMessage)> CreateUser(RegistrationModel regModel); public Task<(bool isSuccess, UserModelDto? user)> CreateGuestUser(RegistrationModel regModel); public Task TestUserApi(int Param); //public Task> GetUserRolesAsync(UserModel userModel); - public Task?> GetUsersAsync(); + public Task> GetUsersAsync(); public Task> GetUsersWithDetailsAsync(); diff --git a/TIAMWebApp/Shared/Services/SessionServiceClientBase.cs b/TIAMWebApp/Shared/Services/SessionServiceClientBase.cs index 1159d3b9..fa0bec25 100644 --- a/TIAMWebApp/Shared/Services/SessionServiceClientBase.cs +++ b/TIAMWebApp/Shared/Services/SessionServiceClientBase.cs @@ -23,12 +23,7 @@ public abstract class SessionServiceClientBase : ISessionService public virtual List GetHotels() { - if (User != null) - { - return User.UserModelDto.Products.Count > 0 ? User.UserModelDto.Products.Where(x => x.ProductType == TIAM.Core.Enums.ProductType.Hotel).ToList() : []; - } - - return []; + return User != null ? User.UserModelDto.Products.Where(x => x.ProductType == TIAM.Core.Enums.ProductType.Hotel).ToList() : []; } public virtual void ClearAll() diff --git a/TIAMWebApp/Shared/Services/UserDataServiceClientBase.cs b/TIAMWebApp/Shared/Services/UserDataServiceClientBase.cs index 5d806ba7..f562f87f 100644 --- a/TIAMWebApp/Shared/Services/UserDataServiceClientBase.cs +++ b/TIAMWebApp/Shared/Services/UserDataServiceClientBase.cs @@ -5,6 +5,7 @@ using AyCode.Interfaces.StorageHandlers; using AyCode.Services.Loggers; using Newtonsoft.Json; using TIAM.Models.Dtos.Users; +using TIAM.Services; using TIAMWebApp.Shared.Application.Interfaces; using TIAMWebApp.Shared.Application.Models; using TIAMWebApp.Shared.Application.Models.ClientSide; @@ -17,18 +18,21 @@ public abstract class UserDataServiceClientBase : IUserDataService { protected readonly HttpClient Http; protected readonly LoggerClient Logger; + protected readonly AdminSignalRClient AdminSignalRClient; protected readonly ISessionService SessionService; protected readonly ISecureStorageHandler SecureStorageHandler; protected readonly IServiceProviderDataService ServiceProviderDataService; - protected UserDataServiceClientBase(HttpClient http, ISessionService sessionService, ISecureStorageHandler secureStorageHandler, IServiceProviderDataService serviceProviderDataService, IEnumerable logWriters) + protected UserDataServiceClientBase(HttpClient http, AdminSignalRClient adminSignalRClient, ISessionService sessionService, ISecureStorageHandler secureStorageHandler, IServiceProviderDataService serviceProviderDataService, IEnumerable logWriters) { Http = http; + AdminSignalRClient = adminSignalRClient; + SessionService = sessionService; SecureStorageHandler = secureStorageHandler; - + ServiceProviderDataService = serviceProviderDataService; Logger = new LoggerClient(this.GetType().Name, logWriters.ToArray()); } @@ -71,34 +75,37 @@ public abstract class UserDataServiceClientBase : IUserDataService return result; } - public async Task AuthenticateUser(LoginModel loginModel) + public async Task AuthenticateUser(LoginModel loginModel) { - var result = string.Empty; - var url = $"{Setting.ApiBaseUrl}/{APIUrls.AuthenticateUser}"; + Logger.Debug($"AuthenticateUser; email: {loginModel.Email}"); - var response = await Http.PostAsJsonAsync(url, loginModel); + return await AdminSignalRClient.PostDataAsync(SignalRTags.AuthenticateUser, loginModel); - //try + //var result = string.Empty; + //var url = $"{Setting.ApiBaseUrl}/{APIUrls.AuthenticateUser}"; + + //var response = await Http.PostAsJsonAsync(url, loginModel); + + ////try + ////{ + //// Logger.Detail("Login started: " + "Email: " + loginModel.Email + ", Password: " + loginModel.Password); + ////} + ////catch (Exception ex) + ////{ + //// _logger.Error(ex.Message, ex); + ////} + + //if (response.IsSuccessStatusCode) //{ - // Logger.Detail("Login started: " + "Email: " + loginModel.Email + ", Password: " + loginModel.Password); + // result = await response.Content.ReadAsStringAsync(); //} - //catch (Exception ex) + //else //{ - // _logger.Error(ex.Message, ex); + // result = await response.Content.ReadAsStringAsync(); //} - if (response.IsSuccessStatusCode) - { - result = await response.Content.ReadAsStringAsync(); - } - else - { - result = await response.Content.ReadAsStringAsync(); - } - - //result = await response.Content.ReadAsStringAsync(); - return result; - + ////result = await response.Content.ReadAsStringAsync(); + //return result; } public async Task<(bool isSuccess, string ErrorMessage)> CreateUser(RegistrationModel regModel) @@ -107,7 +114,7 @@ public abstract class UserDataServiceClientBase : IUserDataService var result = string.Empty; var url = $"{Setting.ApiBaseUrl}/{APIUrls.CreateUser}"; - Logger.Info("CreateUser url: " + url); + Logger.Debug("CreateUser url: " + url); var response = await Http.PostAsJsonAsync(url, regModel); result = await response.Content.ReadAsStringAsync(); @@ -133,7 +140,7 @@ public abstract class UserDataServiceClientBase : IUserDataService var user = new UserModelDto(); var url = $"{Setting.ApiBaseUrl}/{APIUrls.CreateGuestUser}"; - Logger.Info("CreateGuestUser url: " + url); + Logger.Debug("CreateGuestUser url: " + url); var response = await Http.PostAsJsonAsync(url, regModel); @@ -141,7 +148,7 @@ public abstract class UserDataServiceClientBase : IUserDataService { isSuccess = true; result = await response.Content.ReadAsStringAsync(); - Logger.Info("CreateGuestUser result: " + result); + Logger.Debug("CreateGuestUser result: " + result); user = JsonConvert.DeserializeObject(result); } else @@ -155,89 +162,107 @@ public abstract class UserDataServiceClientBase : IUserDataService } - public async Task?> GetUsersAsync() + public async Task> GetUsersAsync() { - return await Http.GetFromJsonAsync>(APIUrls.GetUsers); + Logger.Debug($"GetUsersAsync"); + + return await AdminSignalRClient.GetAllAsync>(SignalRTags.GetAllUserModelDto) ?? []; + + //return await Http.GetFromJsonAsync>(APIUrls.GetUsers); } public async Task> GetUsersWithDetailsAsync() { - var url = $"{Setting.ApiBaseUrl}/{APIUrls.GetUsersWithDetails}"; + Logger.Debug($"GetUsersWithDetailsAsync"); - Logger.Info("GetUserByEmailAsync url: " + url + "!"); - var response = await Http.GetFromJsonAsync>(APIUrls.GetUsersWithDetails); - //var result = await response.Content.ReadAsStringAsync(); - //var user = JsonConvert.DeserializeObject(result); + return await AdminSignalRClient.GetAllAsync>(SignalRTags.GetAllUserModelDtoDetails) ?? []; + + ////var url = $"{Setting.ApiBaseUrl}/{APIUrls.GetUsersWithDetails}"; + + ////Logger.Info("GetUserByEmailAsync url: " + url + "!"); + ////var response = await Http.GetFromJsonAsync>(APIUrls.GetUsersWithDetails); + //////var result = await response.Content.ReadAsStringAsync(); + //////var user = JsonConvert.DeserializeObject(result); - return response ?? []; + ////return response ?? []; } public async Task GetUserByEmailAsync(string email) { - try - { - var url = $"{Setting.ApiBaseUrl}/{APIUrls.GetUserByEmail}/{email}"; - Logger.Info("GetUserByEmailAsync url: " + url + ", " + email); + Logger.Debug($"GetUserByEmailAsync; email: {email}"); - var response = await Http.GetAsync(url); - response.EnsureSuccessStatusCode(); + return await AdminSignalRClient.GetByIdAsync(SignalRTags.GetUserModelDtoByEmail, email); - if (response.IsSuccessStatusCode) - { - var jsonResponse = await response.Content.ReadAsStringAsync(); - var user = System.Text.Json.JsonSerializer.Deserialize(jsonResponse, new JsonSerializerOptions - { - PropertyNameCaseInsensitive = true - }); - return user; - } + //try + //{ + // var url = $"{Setting.ApiBaseUrl}/{APIUrls.GetUserByEmail}/{email}"; + // Logger.Info("GetUserByEmailAsync url: " + url + ", " + email); - return null; - } - catch (HttpRequestException httpRequestException) - { - // Handle specific HTTP request exceptions - Logger.DebugConditional($"Request error: {httpRequestException.Message}"); - throw; - } - catch (Exception ex) - { - // Handle other possible exceptions - Logger.DebugConditional($"An error occurred: {ex.Message}"); - throw; - } + // var response = await Http.GetAsync(url); + // response.EnsureSuccessStatusCode(); + + // if (response.IsSuccessStatusCode) + // { + // var jsonResponse = await response.Content.ReadAsStringAsync(); + // var user = System.Text.Json.JsonSerializer.Deserialize(jsonResponse, new JsonSerializerOptions + // { + // PropertyNameCaseInsensitive = true + // }); + // return user; + // } + + // return null; + //} + //catch (HttpRequestException httpRequestException) + //{ + // // Handle specific HTTP request exceptions + // Logger.DebugConditional($"Request error: {httpRequestException.Message}"); + // throw; + //} + //catch (Exception ex) + //{ + // // Handle other possible exceptions + // Logger.DebugConditional($"An error occurred: {ex.Message}"); + // throw; + //} } public async Task GetUserByIdAsync(Guid id) { - var url = $"{Setting.ApiBaseUrl}/{APIUrls.GetUserById}"; - Logger.Info("GetUserByIdAsync url: " + url + ", " + id.ToString()); + Logger.Debug($"GetUserByIdAsync; id: {id}"); - var response = await Http.PostAsJsonAsync(url, id); - var result = await response.Content.ReadAsStringAsync(); - var user = JsonConvert.DeserializeObject(result); + return await AdminSignalRClient.GetByIdAsync(SignalRTags.GetUserModelDtoById, id); - return user; + //var url = $"{Setting.ApiBaseUrl}/{APIUrls.GetUserById}"; + //Logger.Debug("GetUserByIdAsync url: " + url + ", " + id.ToString()); + + //var response = await Http.PostAsJsonAsync(url, id); + //var result = await response.Content.ReadAsStringAsync(); + //var user = JsonConvert.DeserializeObject(result); + + //return user; } public async Task GetUserDetailByIdAsync(Guid id) { - Logger.Info("GetUserDetailByIdAsync", "GLOBAL_LOGGER"); + Logger.Debug($"GetUserDetailByIdAsync; id: {id}"); - var url = $"{Setting.ApiBaseUrl}/{APIUrls.GetUserDetailById}"; - Logger.Info("GetUserDetailByIdAsync url: " + url + ", " + id.ToString()); + return await AdminSignalRClient.GetByIdAsync(SignalRTags.GetUserModelDtoDetailById, id); - var response = await Http.PostAsJsonAsync(url, id); - //var result = await response.Content.ReadAsStringAsync(); - var result = await response.Content.ReadFromJsonAsync(); - //var user = JsonConvert.DeserializeObject(result); + //var url = $"{Setting.ApiBaseUrl}/{APIUrls.GetUserDetailById}"; + //Logger.Info("GetUserDetailByIdAsync url: " + url + ", " + id.ToString()); - return result; + //var response = await Http.PostAsJsonAsync(url, id); + ////var result = await response.Content.ReadAsStringAsync(); + //var result = await response.Content.ReadFromJsonAsync(); + ////var user = JsonConvert.DeserializeObject(result); + + //return result; } public async Task RefreshToken() { - Logger.Info("RefreshToken() called"); + Logger.Debug("RefreshToken() called"); var isTokenRefreshed = false; var url = $"{Setting.ApiBaseUrl}/{APIUrls.RefreshToken}"; @@ -251,7 +276,7 @@ public abstract class UserDataServiceClientBase : IUserDataService try { - Logger.Info("Refreshtoken url: " + url); + Logger.Debug("Refreshtoken url: " + url); var response = await Http.PostAsync(url, new StringContent(serializedStr, Encoding.UTF8, "application/json")); if (response.IsSuccessStatusCode) {