improvements

This commit is contained in:
jozsef.b@aycode.com 2023-11-27 09:58:52 +01:00
parent 534040b6d7
commit 0bf492f2c3
3 changed files with 68 additions and 74 deletions

View File

@ -1,22 +1,14 @@
using System; using AyCode.Database.Tests;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Moq; using Moq;
using TIAM.Database.DataLayers.Users; using TIAM.Database.DataLayers.Users;
using TIAM.Database.DbContexts; using TIAM.Database.DbContexts;
using TIAM.Entities.Users; using TIAM.Entities.Users;
using System.Collections.Generic;
using System.Text;
using Microsoft.EntityFrameworkCore.ChangeTracking;
using System.Net.Sockets;
namespace TIAM.Database.Tests.DataLayers.Users namespace TIAM.Database.Test
{ {
[TestClass] [TestClass]
public class UserDalTests public class UserDalTests : DatabaseTestModelBase
{ {
private Mock<UserDbContext> _mockContext; private Mock<UserDbContext> _mockContext;
private UserDal _userDal; private UserDal _userDal;

View File

@ -86,7 +86,7 @@ namespace TIAMMobilApp.Services
string result = string.Empty; var result = string.Empty;
var url = APIUrls.AuthenticateUser; var url = APIUrls.AuthenticateUser;
var response = await http.PostAsJsonAsync(url, loginModel); var response = await http.PostAsJsonAsync(url, loginModel);
@ -108,9 +108,8 @@ namespace TIAMMobilApp.Services
public async Task<(bool isSuccess, string ErrorMessage)> CreateUser(RegistrationModel regModel) public async Task<(bool isSuccess, string ErrorMessage)> CreateUser(RegistrationModel regModel)
{ {
var isSuccess = true;
bool isSuccess = true; var result = string.Empty;
string result = string.Empty;
var url = APIUrls.CreateUser; var url = APIUrls.CreateUser;
var response = await http.PostAsJsonAsync(url, regModel); var response = await http.PostAsJsonAsync(url, regModel);
@ -142,7 +141,8 @@ namespace TIAMMobilApp.Services
public async Task<bool> RefreshToken() public async Task<bool> RefreshToken()
{ {
bool isTokenRefreshed = false; var isTokenRefreshed = false;
using (var client = new HttpClient()) using (var client = new HttpClient())
{ {
var url = APIUrls.RefreshToken; var url = APIUrls.RefreshToken;
@ -158,7 +158,7 @@ namespace TIAMMobilApp.Services
var response = await client.PostAsync(url, new StringContent(serializedStr, Encoding.UTF8, "application/json")); var response = await client.PostAsync(url, new StringContent(serializedStr, Encoding.UTF8, "application/json"));
if (response.IsSuccessStatusCode) if (response.IsSuccessStatusCode)
{ {
string contentStr = await response.Content.ReadAsStringAsync(); var contentStr = await response.Content.ReadAsStringAsync();
var mainResponse = JsonConvert.DeserializeObject<MainResponse>(contentStr); var mainResponse = JsonConvert.DeserializeObject<MainResponse>(contentStr);
if (mainResponse.IsSuccess) if (mainResponse.IsSuccess)
{ {
@ -166,7 +166,7 @@ namespace TIAMMobilApp.Services
Setting.UserBasicDetails.AccessToken = tokenDetails.AccessToken; Setting.UserBasicDetails.AccessToken = tokenDetails.AccessToken;
Setting.UserBasicDetails.RefreshToken = tokenDetails.RefreshToken; Setting.UserBasicDetails.RefreshToken = tokenDetails.RefreshToken;
string userDetailsStr = JsonConvert.SerializeObject(Setting.UserBasicDetails); var userDetailsStr = JsonConvert.SerializeObject(Setting.UserBasicDetails);
await secureStorageHandler.SaveToSecureStorageAsync(nameof(Setting.UserBasicDetails), userDetailsStr); await secureStorageHandler.SaveToSecureStorageAsync(nameof(Setting.UserBasicDetails), userDetailsStr);
isTokenRefreshed = true; isTokenRefreshed = true;
} }
@ -174,7 +174,7 @@ namespace TIAMMobilApp.Services
} }
catch (Exception ex) catch (Exception ex)
{ {
string msg = ex.Message; var msg = ex.Message;
} }
@ -187,7 +187,7 @@ namespace TIAMMobilApp.Services
{ {
//get the userModel's roles //get the userModel's roles
int role = User.UserRoles; var role = User.UserRoles;
foreach (var roleType in roleTypes) foreach (var roleType in roleTypes)
{ {

View File

@ -21,7 +21,12 @@ namespace TIAMWebApp.Client.Services
private readonly IJSRuntime jsRuntime; private readonly IJSRuntime jsRuntime;
private readonly LogToBrowserConsole logToBrowserConsole; private readonly LogToBrowserConsole logToBrowserConsole;
public UserModel? User { get; set; } = new UserModel("", "", ""); public UserModel? User { get; set; } = new UserModel("", "", "");
public Dictionary<int, string> userRoleTypes { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
public Dictionary<int, string> userRoleTypes
{
get => throw new NotImplementedException();
set => throw new NotImplementedException();
}
public UserDataService(HttpClient http, ISecureStorageHandler secureStorageHandler, IJSRuntime jSRuntime) public UserDataService(HttpClient http, ISecureStorageHandler secureStorageHandler, IJSRuntime jSRuntime)
{ {
@ -33,18 +38,18 @@ namespace TIAMWebApp.Client.Services
public List<RoleType> roleTypes = new List<RoleType> public List<RoleType> roleTypes = new List<RoleType>
{ {
new RoleType { Id = 1, RoleName = "Login" }, new RoleType { Id = 1, RoleName = "Login" },
new RoleType { Id = 2, RoleName = "Member" }, new RoleType { Id = 2, RoleName = "Member" },
new RoleType { Id = 4, RoleName = "Vip" }, new RoleType { Id = 4, RoleName = "Vip" },
new RoleType { Id = 8, RoleName = "Uvip" }, new RoleType { Id = 8, RoleName = "Uvip" },
new RoleType { Id = 16, RoleName = "Volunteer" }, new RoleType { Id = 16, RoleName = "Volunteer" },
new RoleType { Id = 32, RoleName = "Guide" }, new RoleType { Id = 32, RoleName = "Guide" },
new RoleType { Id = 64, RoleName = "Protector" }, new RoleType { Id = 64, RoleName = "Protector" },
new RoleType { Id = 128, RoleName = "Admin" }, new RoleType { Id = 128, RoleName = "Admin" },
new RoleType { Id = 256, RoleName = "SuperAdmin" }, new RoleType { Id = 256, RoleName = "SuperAdmin" },
new RoleType { Id = 512, RoleName = "God" } new RoleType { Id = 512, RoleName = "God" }
}; };
public async Task<UserModel> IsLoggedInAsync() public async Task<UserModel> IsLoggedInAsync()
@ -71,6 +76,7 @@ namespace TIAMWebApp.Client.Services
{ {
User = new UserModel("", "", ""); User = new UserModel("", "", "");
} }
//simply return true for now //simply return true for now
User.IsLoggedIn = true; User.IsLoggedIn = true;
User.UserType = (UserType)userType; User.UserType = (UserType)userType;
@ -90,7 +96,7 @@ namespace TIAMWebApp.Client.Services
string result = string.Empty; var result = string.Empty;
var url = APIUrls.AuthenticateUser; var url = APIUrls.AuthenticateUser;
var response = await http.PostAsJsonAsync(url, loginModel); var response = await http.PostAsJsonAsync(url, loginModel);
@ -106,17 +112,16 @@ namespace TIAMWebApp.Client.Services
//result = await response.Content.ReadAsStringAsync(); //result = await response.Content.ReadAsStringAsync();
return result; return result;
} }
public async Task<(bool isSuccess, string ErrorMessage)> CreateUser(RegistrationModel regModel) public async Task<(bool isSuccess, string ErrorMessage)> CreateUser(RegistrationModel regModel)
{ {
var isSuccess = true;
bool isSuccess = true; var result = string.Empty;
string result = string.Empty;
var url = $"{Setting.BaseUrl}/{APIUrls.CreateUser}"; var url = $"{Setting.BaseUrl}/{APIUrls.CreateUser}";
logToBrowserConsole.LogToBC("CreateUser url: " + url); logToBrowserConsole.LogToBC("CreateUser url: " + url);
var response = await http.PostAsJsonAsync(url, regModel); var response = await http.PostAsJsonAsync(url, regModel);
result = await response.Content.ReadAsStringAsync(); result = await response.Content.ReadAsStringAsync();
/*if (response.IsSuccessStatusCode) /*if (response.IsSuccessStatusCode)
@ -147,55 +152,52 @@ namespace TIAMWebApp.Client.Services
public async Task<bool> RefreshToken() public async Task<bool> RefreshToken()
{ {
logToBrowserConsole.LogToBC("RefreshToken() called"); logToBrowserConsole.LogToBC("RefreshToken() called");
bool isTokenRefreshed = false; var isTokenRefreshed = false;
using (var client = new HttpClient())
using var client = new HttpClient();
var url = $"{Setting.BaseUrl}{APIUrls.RefreshToken}";
//var url = APIUrls.RefreshToken;
var serializedStr = JsonConvert.SerializeObject(new AuthenticateRequestAndResponse
{ {
var url = $"{Setting.BaseUrl}{APIUrls.RefreshToken}"; RefreshToken = Setting.UserBasicDetails.RefreshToken,
//var url = APIUrls.RefreshToken; AccessToken = Setting.UserBasicDetails.AccessToken
});
var serializedStr = JsonConvert.SerializeObject(new AuthenticateRequestAndResponse try
{
logToBrowserConsole.LogToBC("Refreshtoken url: " + url);
var response = await client.PostAsync(url, new StringContent(serializedStr, Encoding.UTF8, "application/json"));
if (response.IsSuccessStatusCode)
{ {
RefreshToken = Setting.UserBasicDetails.RefreshToken, var contentStr = await response.Content.ReadAsStringAsync();
AccessToken = Setting.UserBasicDetails.AccessToken var mainResponse = JsonConvert.DeserializeObject<MainResponse>(contentStr);
}); if (mainResponse is { IsSuccess: true })
try
{
logToBrowserConsole.LogToBC("Refreshtoken url: " + url);
var response = await client.PostAsync(url, new StringContent(serializedStr, Encoding.UTF8, "application/json"));
if (response.IsSuccessStatusCode)
{ {
string contentStr = await response.Content.ReadAsStringAsync(); var tokenDetails = JsonConvert.DeserializeObject<AuthenticateRequestAndResponse>(mainResponse.Content.ToString());
var mainResponse = JsonConvert.DeserializeObject<MainResponse>(contentStr); Setting.UserBasicDetails.AccessToken = tokenDetails.AccessToken;
if (mainResponse.IsSuccess) Setting.UserBasicDetails.RefreshToken = tokenDetails.RefreshToken;
{
var tokenDetails = JsonConvert.DeserializeObject<AuthenticateRequestAndResponse>(mainResponse.Content.ToString());
Setting.UserBasicDetails.AccessToken = tokenDetails.AccessToken;
Setting.UserBasicDetails.RefreshToken = tokenDetails.RefreshToken;
string userDetailsStr = JsonConvert.SerializeObject(Setting.UserBasicDetails); var userDetailsStr = JsonConvert.SerializeObject(Setting.UserBasicDetails);
await secureStorageHandler.SaveToSecureStorageAsync(nameof(Setting.UserBasicDetails), userDetailsStr); await secureStorageHandler.SaveToSecureStorageAsync(nameof(Setting.UserBasicDetails), userDetailsStr);
isTokenRefreshed = true; isTokenRefreshed = true;
}
} }
} }
catch (Exception ex)
{
string msg = ex.Message;
logToBrowserConsole.LogToBC("Refreshtoken exception: " + ex.ToString());
}
} }
catch (Exception ex)
{
var msg = ex.Message;
logToBrowserConsole.LogToBC("Refreshtoken exception: " + ex.ToString());
}
return isTokenRefreshed; return isTokenRefreshed;
} }
public Task<Dictionary<int, string>> GetUserRolesAsync(UserModel userModel) public Task<Dictionary<int, string>> GetUserRolesAsync(UserModel userModel)
{ {
//get the userModel's roles //get the userModel's roles
int role = User.UserRoles; var role = User.UserRoles;
foreach (var roleType in roleTypes) foreach (var roleType in roleTypes)
{ {
@ -207,8 +209,8 @@ namespace TIAMWebApp.Client.Services
} }
} }
return Task.FromResult(userRoleTypes);
return Task.FromResult(userRoleTypes);
} }
} }
} }