improvements
This commit is contained in:
parent
534040b6d7
commit
0bf492f2c3
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue