implement SiteViewModel; improvements, fixes, etc...

This commit is contained in:
Loretta 2024-08-21 18:28:22 +02:00
parent dd8b1ac6b4
commit a82bf9a287
15 changed files with 221 additions and 72 deletions

View File

@ -31,6 +31,7 @@ using DevExpress.Data.Linq.Helpers;
using TIAM.Database.DbSets.Drivers; using TIAM.Database.DbSets.Drivers;
using AyCode.Entities.Server.LogItems; using AyCode.Entities.Server.LogItems;
using AyCode.Interfaces.Entities; using AyCode.Interfaces.Entities;
using TIAM.Models;
using TIAM.Models.Dtos.Users; using TIAM.Models.Dtos.Users;
using TIAM.Models.PageViewModels; using TIAM.Models.PageViewModels;
@ -42,6 +43,13 @@ namespace TIAM.Database.DataLayers.Admins
{ {
} }
//TODO: ezt meg a Messages-eket átbuherálni a UserDal-ra... - J.
public async Task<SiteViewModel> GetSiteViewModelByUserId(Guid userId)
{
var messages = await GetEmailMessagesByUserId(userId, true);
return new SiteViewModel(messages);
}
#region Car #region Car
public Task<List<Car>> GetAllCarsAsync() => SessionAsync(ctx => ctx.Cars.OrderBy(x => x.Manufacture).ThenBy(x => x.CarModel).ToList()); public Task<List<Car>> GetAllCarsAsync() => SessionAsync(ctx => ctx.Cars.OrderBy(x => x.Manufacture).ThenBy(x => x.CarModel).ToList());
public Task<List<Car>> GetAllCarsbyProductIdAsync(Guid productId) => SessionAsync(ctx => ctx.Cars.Where(x => x.UserProductMapping.ProductId == productId).OrderBy(x => x.Manufacture).ThenBy(x => x.CarModel).ToList()); public Task<List<Car>> GetAllCarsbyProductIdAsync(Guid productId) => SessionAsync(ctx => ctx.Cars.Where(x => x.UserProductMapping.ProductId == productId).OrderBy(x => x.Manufacture).ThenBy(x => x.CarModel).ToList());
@ -69,9 +77,9 @@ namespace TIAM.Database.DataLayers.Admins
public Task<DriverManageTransfersPageModel> GetDriverManageTransfersPageModelByDriverId(Guid driverId) => SessionAsync(ctx => public Task<DriverManageTransfersPageModel> GetDriverManageTransfersPageModelByDriverId(Guid driverId) => SessionAsync(ctx =>
{ {
var transfers = ctx.GetTransfersByUserProductMappingId(driverId).OrderBy(x => x.TransferStatusType).ThenByDescending(x => x.OrderId); var transfers = ctx.GetTransfersByUserProductMappingId(driverId).OrderBy(x => x.TransferStatusType).ThenByDescending(x => x.OrderId);
var unreadedMessagesCount = GetTransfersMessagesByDriverIdInnerAsync(ctx, driverId)?.Count(x => !x.IsReaded) ?? 0; var unreadMessagesCount = GetTransfersMessagesByDriverIdInnerAsync(ctx, driverId)?.Count(x => !x.IsReaded) ?? 0;
return new DriverManageTransfersPageModel(transfers, unreadedMessagesCount); return new DriverManageTransfersPageModel(transfers, unreadMessagesCount);
}); });
public Task<List<Transfer>> GetTransfersAsync() => SessionAsync(ctx => ctx.GetTransfers().OrderBy(x => x.TransferStatusType).ThenByDescending(x => x.OrderId).ToList()); public Task<List<Transfer>> GetTransfersAsync() => SessionAsync(ctx => ctx.GetTransfers().OrderBy(x => x.TransferStatusType).ThenByDescending(x => x.OrderId).ToList());
@ -336,8 +344,11 @@ namespace TIAM.Database.DataLayers.Admins
public Task<List<EmailMessage>> GetEmailMessagesAsync(Guid contextId, Guid userId, Guid userProductMappingId) => SessionAsync(ctx => ctx.GetEmailMessages<EmailMessage, EmailRecipient>(contextId, userId, userProductMappingId).OrderByDescending(x => x.Created).ToList()); public Task<List<EmailMessage>> GetEmailMessagesAsync(Guid contextId, Guid userId, Guid userProductMappingId) => SessionAsync(ctx => ctx.GetEmailMessages<EmailMessage, EmailRecipient>(contextId, userId, userProductMappingId).OrderByDescending(x => x.Created).ToList());
public Task<List<EmailMessage>> GetAllEmailMessagesAsync() => SessionAsync(ctx => ctx.GetAllEmailMessages<EmailMessage, EmailRecipient>().OrderByDescending(x => x.Created).ToList()); public Task<List<EmailMessage>> GetAllEmailMessagesAsync() => SessionAsync(ctx => ctx.GetAllEmailMessages<EmailMessage, EmailRecipient>().OrderByDescending(x => x.Created).ToList());
public Task<List<EmailMessage>> GetEmailMessagesByUserId(Guid userId) public Task<List<EmailMessage>> GetEmailMessagesByUserId(Guid userId, bool onlyUnread = false)
=> SessionAsync(ctx => ctx.GetEmailMessagesByIds<EmailMessage, EmailRecipient>(ctx.GetUserProductMappingsByUserId(userId).Select(x => x.Id).Concat([userId])).ToList()); => SessionAsync(ctx => ctx
.GetEmailMessagesByIds<EmailMessage, EmailRecipient>(ctx.GetUserProductMappingsByUserId(userId).Select(x => x.Id).Concat([userId]))
.Where(x => !onlyUnread || !x.IsReaded)
.ToList());
/// <summary> /// <summary>
/// ///
@ -352,7 +363,7 @@ namespace TIAM.Database.DataLayers.Admins
/// </summary> /// </summary>
/// <param name="driverId">UserProductMappingId</param> /// <param name="driverId">UserProductMappingId</param>
/// <returns></returns> /// <returns></returns>
public Task<int> GetTransfersMessagesUnreadedCountByDriverIdAsync(Guid driverId) public Task<int> GetTransfersMessagesUnreadCountByDriverIdAsync(Guid driverId)
=> SessionAsync(ctx => GetTransfersMessagesByDriverIdInnerAsync(ctx, driverId)?.Count(x => !x.IsReaded) ?? 0); => SessionAsync(ctx => GetTransfersMessagesByDriverIdInnerAsync(ctx, driverId)?.Count(x => !x.IsReaded) ?? 0);
/// <summary> /// <summary>

View File

@ -1,4 +1,5 @@
using AyCode.Database.DataLayers.Users; using AyCode.Database.DataLayers.Users;
using AyCode.Database.DbSets.Messages;
using AyCode.Database.DbSets.Users; using AyCode.Database.DbSets.Users;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using TIAM.Database.DbContexts.Users; using TIAM.Database.DbContexts.Users;
@ -7,6 +8,7 @@ using TIAM.Entities.Emails;
using TIAM.Entities.Profiles; using TIAM.Entities.Profiles;
using TIAM.Entities.ServiceProviders; using TIAM.Entities.ServiceProviders;
using TIAM.Entities.Users; using TIAM.Entities.Users;
using TIAM.Models;
using TIAM.Models.Dtos.Users; using TIAM.Models.Dtos.Users;
namespace TIAM.Database.DataLayers.Users namespace TIAM.Database.DataLayers.Users
@ -22,6 +24,11 @@ namespace TIAM.Database.DataLayers.Users
{ {
} }
//public Task<SiteViewModel> GetSiteViewModelByUserId(Guid userId) => SessionAsync(ctx =>
//{
// ctx.GetEmailMessagesByUserIdOrUpmId<EmailMessage, EmailRecipient>(userId,
//}));
public Task<List<UserModelDtoEmail>> GetUserModelDtoEmailsAsync() => SessionAsync(ctx => ctx.Users.Select(x => new UserModelDtoEmail(x)).ToList()); public Task<List<UserModelDtoEmail>> GetUserModelDtoEmailsAsync() => SessionAsync(ctx => ctx.Users.Select(x => new UserModelDtoEmail(x)).ToList());
public override Task<User?> UpdateUserAsync(User user) => base.UpdateSafeAsync(user); public override Task<User?> UpdateUserAsync(User user) => base.UpdateSafeAsync(user);

View File

@ -1,5 +1,6 @@
using AyCode.Blazor.Models.ViewModels; using AyCode.Blazor.Models.ViewModels;
using Newtonsoft.Json; using Newtonsoft.Json;
using System.Security.Cryptography.Xml;
using TIAM.Core.Enums; using TIAM.Core.Enums;
using TIAM.Entities.Transfers; using TIAM.Entities.Transfers;
@ -10,7 +11,7 @@ public class DriverManageTransfersPageModel : AcPageViewModelBase
private readonly object _forLock = new(); private readonly object _forLock = new();
private const int AppointmentWaitingHours = 3; private const int AppointmentWaitingHours = 3;
public int UnreadedMessagesCount { get; set; } public int UnreadMessagesCount { get; set; }
public List<Transfer> Transfers { get; set; } = []; public List<Transfer> Transfers { get; set; } = [];
private readonly List<Transfer> _upcomings = []; private readonly List<Transfer> _upcomings = [];
@ -65,29 +66,39 @@ public class DriverManageTransfersPageModel : AcPageViewModelBase
{ {
} }
public DriverManageTransfersPageModel(IEnumerable<Transfer> transfers, int unreadedMessagesCount) public DriverManageTransfersPageModel(IEnumerable<Transfer> transfers, int unreadMessagesCount)
{ {
Initialize(transfers, unreadedMessagesCount); Initialize(transfers, unreadMessagesCount);
} }
public void Initialize(DriverManageTransfersPageModel? driverManageTransfersPageModel) public void Initialize(DriverManageTransfersPageModel? driverManageTransfersPageModel)
{ {
if (driverManageTransfersPageModel == null) return; if (driverManageTransfersPageModel == null) return;
Initialize(driverManageTransfersPageModel.Transfers, driverManageTransfersPageModel.UnreadedMessagesCount); Initialize(driverManageTransfersPageModel.Transfers, driverManageTransfersPageModel.UnreadMessagesCount);
} }
public void Initialize(IEnumerable<Transfer> transfers, int unreadedMessagesCount) public void Initialize(IEnumerable<Transfer> transfers, int unreadMessagesCount)
{
lock (_forLock)
{
ClearAll();
Transfers.AddRange(transfers.Where(t => t.TransferStatusType != TransferStatusType.UserCanceled && t.TransferStatusType != TransferStatusType.AdminDenied));
}
UnreadMessagesCount = unreadMessagesCount;
}
public void ClearAll()
{ {
lock (_forLock) lock (_forLock)
{ {
Transfers.Clear(); Transfers.Clear();
Transfers.AddRange(transfers.Where(t => t.TransferStatusType != TransferStatusType.UserCanceled && t.TransferStatusType != TransferStatusType.AdminDenied));
Upcomings.Clear(); Upcomings.Clear();
Problems.Clear(); Problems.Clear();
} }
UnreadedMessagesCount = unreadedMessagesCount; UnreadMessagesCount = 0;
} }
} }

View File

@ -0,0 +1,51 @@
using AyCode.Blazor.Models.ViewModels;
using TIAM.Entities.Emails;
using TIAM.Models.PageViewModels;
namespace TIAM.Models;
public class SiteViewModel : AcSiteViewModel
{
private readonly object _forLock = new object();
public List<EmailMessage> UnreadMessages { get; } = [];
public DriverManageTransfersPageModel DriverManageTransfersPageModel { get; } = new();
public SiteViewModel()
{}
public SiteViewModel(IEnumerable<EmailMessage> unreadMessages)
{
Initialize(unreadMessages);
}
public void Initialize(SiteViewModel siteViewModel)
{
lock (_forLock)
{
//A PageViewModel-eket itt nem Initialize-oljuk, azok majd lefutnak miokor használjuk őket! - J.
Initialize(siteViewModel.UnreadMessages);
}
}
public void Initialize(IEnumerable<EmailMessage> unreadMessages)
{
lock (_forLock)
{
UnreadMessages.Clear();
UnreadMessages.AddRange(unreadMessages);
}
}
public void ClearAll()
{
lock (_forLock)
{
UnreadMessages.Clear();
DriverManageTransfersPageModel.ClearAll();
}
}
}

View File

@ -5,6 +5,8 @@ namespace TIAM.Services;
public class SignalRTags : AcSignalRTags public class SignalRTags : AcSignalRTags
{ {
public const int GetSiteViewModelByUserId = 999;
public const int GetTransfer = 1; public const int GetTransfer = 1;
public const int GetTransfers = 2; public const int GetTransfers = 2;
public const int GetTransfersByUserId = 3; public const int GetTransfersByUserId = 3;
@ -13,7 +15,6 @@ public class SignalRTags : AcSignalRTags
public const int GetTransfersByCompanyId = 6; public const int GetTransfersByCompanyId = 6;
public const int GetTransfersByUserProductMappingId = 701; public const int GetTransfersByUserProductMappingId = 701;
public const int GetTransfersByOrderingProductId = 702; public const int GetTransfersByOrderingProductId = 702;
public const int GetDriverManageTransfersPageModelByDriverId = 703;
public const int GetTransfersByFilterText = 301; public const int GetTransfersByFilterText = 301;
@ -38,6 +39,7 @@ public class SignalRTags : AcSignalRTags
public const int AddTransferToDriver = 26; public const int AddTransferToDriver = 26;
public const int UpdateTransferToDriver = 27; public const int UpdateTransferToDriver = 27;
public const int RemoveTransferToDriver = 28; public const int RemoveTransferToDriver = 28;
public const int GetDriverManageTransfersPageModelByDriverId = 803;
public const int GetAddress = 29; public const int GetAddress = 29;

View File

@ -6,6 +6,7 @@ using AyCode.Services.Loggers;
using Newtonsoft.Json; using Newtonsoft.Json;
using TIAM.Core.Loggers; using TIAM.Core.Loggers;
using TIAM.Entities.Users; using TIAM.Entities.Users;
using TIAM.Models;
using TIAM.Models.Dtos.Users; using TIAM.Models.Dtos.Users;
using TIAMWebApp.Shared.Application.Interfaces; using TIAMWebApp.Shared.Application.Interfaces;
using TIAMWebApp.Shared.Application.Models; using TIAMWebApp.Shared.Application.Models;
@ -18,19 +19,21 @@ namespace TIAMMobileApp.Services
{ {
public class UserDataServiceMobile : IUserDataService public class UserDataServiceMobile : IUserDataService
{ {
private readonly HttpClient http; private readonly HttpClient _http;
private readonly ISecureStorageHandler secureStorageHandler; private readonly SiteViewModel _siteViewModel;
private readonly IServiceProviderDataService serviceProviderDataService; private readonly ISecureStorageHandler _secureStorageHandler;
private readonly IServiceProviderDataService _serviceProviderDataService;
private readonly LoggerClient<UserDataServiceMobile> _logger; private readonly LoggerClient<UserDataServiceMobile> _logger;
public UserDataServiceMobile(HttpClient http, ISecureStorageHandler secureStorageHandler, IServiceProviderDataService serviceProviderDataService, IEnumerable<IAcLogWriterClientBase> logWriters) public UserDataServiceMobile(HttpClient http, SiteViewModel siteViewModel, ISecureStorageHandler secureStorageHandler, IServiceProviderDataService serviceProviderDataService, IEnumerable<IAcLogWriterClientBase> logWriters)
{ {
this.http = http; _http = http;
this.secureStorageHandler = secureStorageHandler; _secureStorageHandler = secureStorageHandler;
_siteViewModel = siteViewModel;
//this._browserConsoleLogWriter = new BrowserConsoleLogWriter(jsRuntime); //this._browserConsoleLogWriter = new BrowserConsoleLogWriter(jsRuntime);
this.serviceProviderDataService = serviceProviderDataService; _serviceProviderDataService = serviceProviderDataService;
_logger = new LoggerClient<UserDataServiceMobile>(logWriters.ToArray()); _logger = new LoggerClient<UserDataServiceMobile>(logWriters.ToArray());
//_logger = new TIAM.Core.Loggers.Logger<UserDataServiceWeb>(AppType.Web, LogLevel.Info, logWriters.ToArray()); //_logger = new TIAM.Core.Loggers.Logger<UserDataServiceWeb>(AppType.Web, LogLevel.Info, logWriters.ToArray());
//_logger = new TIAM.Core.Loggers.Logger<UserDataServiceWeb>(AppType.Web, LogLevel.Info, logWriter); //_logger = new TIAM.Core.Loggers.Logger<UserDataServiceWeb>(AppType.Web, LogLevel.Info, logWriter);
@ -75,7 +78,7 @@ namespace TIAMMobileApp.Services
var url = $"{Setting.ApiBaseUrl}/{APIUrls.UserTest}"; var url = $"{Setting.ApiBaseUrl}/{APIUrls.UserTest}";
var response = await http.PostAsJsonAsync(url, Param); var response = await _http.PostAsJsonAsync(url, Param);
var result = await response.Content.ReadAsStringAsync(); var result = await response.Content.ReadAsStringAsync();
return result; return result;
} }
@ -85,7 +88,7 @@ namespace TIAMMobileApp.Services
string result = string.Empty; string result = string.Empty;
var url = $"{Setting.ApiBaseUrl}/{APIUrls.AuthenticateUser}"; var url = $"{Setting.ApiBaseUrl}/{APIUrls.AuthenticateUser}";
var response = await http.PostAsJsonAsync(url, loginModel); var response = await _http.PostAsJsonAsync(url, loginModel);
//try //try
//{ //{
@ -117,7 +120,7 @@ namespace TIAMMobileApp.Services
string result = string.Empty; string result = string.Empty;
var url = $"{Setting.ApiBaseUrl}/{APIUrls.CreateUser}"; var url = $"{Setting.ApiBaseUrl}/{APIUrls.CreateUser}";
_logger.Info("CreateUser url: " + url); _logger.Info("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)
{ {
@ -142,7 +145,7 @@ namespace TIAMMobileApp.Services
UserModelDto? user = new UserModelDto(); UserModelDto? user = new UserModelDto();
var url = $"{Setting.ApiBaseUrl}/{APIUrls.CreateGuestUser}"; var url = $"{Setting.ApiBaseUrl}/{APIUrls.CreateGuestUser}";
_logger.Info("CreateGuestUser url: " + url); _logger.Info("CreateGuestUser url: " + url);
var response = await http.PostAsJsonAsync(url, regModel); var response = await _http.PostAsJsonAsync(url, regModel);
if (response.IsSuccessStatusCode) if (response.IsSuccessStatusCode)
@ -165,7 +168,7 @@ namespace TIAMMobileApp.Services
public async Task<List<UserModelDto>?> GetUsersAsync() public async Task<List<UserModelDto>?> GetUsersAsync()
{ {
return await http.GetFromJsonAsync<List<UserModelDto>>(APIUrls.GetUsers); return await _http.GetFromJsonAsync<List<UserModelDto>>(APIUrls.GetUsers);
} }
public async Task<List<UserModelDtoDetail>?> GetUsersWithDetailsAsync() public async Task<List<UserModelDtoDetail>?> GetUsersWithDetailsAsync()
@ -174,7 +177,7 @@ namespace TIAMMobileApp.Services
var url = $"{Setting.ApiBaseUrl}/{APIUrls.GetUsersWithDetails}"; var url = $"{Setting.ApiBaseUrl}/{APIUrls.GetUsersWithDetails}";
_logger.Info("GetUserByEmailAsync url: " + url + "!"); _logger.Info("GetUserByEmailAsync url: " + url + "!");
var response = await http.GetFromJsonAsync<List<UserModelDtoDetail>>(APIUrls.GetUsersWithDetails); var response = await _http.GetFromJsonAsync<List<UserModelDtoDetail>>(APIUrls.GetUsersWithDetails);
//var result = await response.Content.ReadAsStringAsync(); //var result = await response.Content.ReadAsStringAsync();
//var user = JsonConvert.DeserializeObject<UserModelDto>(result); //var user = JsonConvert.DeserializeObject<UserModelDto>(result);
return response; return response;
@ -189,7 +192,7 @@ namespace TIAMMobileApp.Services
{ {
var url = $"{Setting.ApiBaseUrl}/{APIUrls.GetUserByEmail}/{email}"; var url = $"{Setting.ApiBaseUrl}/{APIUrls.GetUserByEmail}/{email}";
_logger.Info("GetUserByEmailAsync url: " + url + ", " + email); _logger.Info("GetUserByEmailAsync url: " + url + ", " + email);
var response = await http.GetAsync(url); var response = await _http.GetAsync(url);
response.EnsureSuccessStatusCode(); response.EnsureSuccessStatusCode();
if (response.Content != null) if (response.Content != null)
@ -230,7 +233,7 @@ namespace TIAMMobileApp.Services
var url = $"{Setting.ApiBaseUrl}/{APIUrls.GetUserById}"; var url = $"{Setting.ApiBaseUrl}/{APIUrls.GetUserById}";
_logger.Info("GetUserByIdAsync url: " + url + ", " + id.ToString()); _logger.Info("GetUserByIdAsync url: " + url + ", " + id.ToString());
var response = await http.PostAsJsonAsync(url, id); var response = await _http.PostAsJsonAsync(url, id);
var result = await response.Content.ReadAsStringAsync(); var result = await response.Content.ReadAsStringAsync();
var user = JsonConvert.DeserializeObject<UserModelDto>(result); var user = JsonConvert.DeserializeObject<UserModelDto>(result);
@ -244,7 +247,7 @@ namespace TIAMMobileApp.Services
var url = $"{Setting.ApiBaseUrl}/{APIUrls.GetUserDetailById}"; var url = $"{Setting.ApiBaseUrl}/{APIUrls.GetUserDetailById}";
_logger.Info("GetUserDetailByIdAsync url: " + url + ", " + id.ToString()); _logger.Info("GetUserDetailByIdAsync url: " + url + ", " + id.ToString());
var response = await http.PostAsJsonAsync(url, id); var response = await _http.PostAsJsonAsync(url, id);
var result = await response.Content.ReadAsStringAsync(); var result = await response.Content.ReadAsStringAsync();
var user = JsonConvert.DeserializeObject<UserModelDtoDetail>(result); var user = JsonConvert.DeserializeObject<UserModelDtoDetail>(result);
@ -268,7 +271,7 @@ namespace TIAMMobileApp.Services
try try
{ {
_logger.Info("Refreshtoken url: " + url); _logger.Info("Refreshtoken url: " + url);
var response = await http.PostAsync(url, new StringContent(serializedStr, Encoding.UTF8, "application/json")); var response = await _http.PostAsync(url, new StringContent(serializedStr, Encoding.UTF8, "application/json"));
if (response.IsSuccessStatusCode) if (response.IsSuccessStatusCode)
{ {
string contentStr = await response.Content.ReadAsStringAsync(); string contentStr = await response.Content.ReadAsStringAsync();
@ -280,7 +283,7 @@ namespace TIAMMobileApp.Services
Setting.UserBasicDetails.RefreshToken = tokenDetails.RefreshToken; Setting.UserBasicDetails.RefreshToken = tokenDetails.RefreshToken;
string userDetailsStr = JsonConvert.SerializeObject(Setting.UserBasicDetails); string userDetailsStr = JsonConvert.SerializeObject(Setting.UserBasicDetails);
await secureStorageHandler.SaveToSecureStorageAsync(nameof(Setting.UserBasicDetails), userDetailsStr); await _secureStorageHandler.SaveToSecureStorageAsync(nameof(Setting.UserBasicDetails), userDetailsStr);
isTokenRefreshed = true; isTokenRefreshed = true;
} }
} }
@ -299,9 +302,11 @@ namespace TIAMMobileApp.Services
{ {
_logger.Info("Logout() called"); _logger.Info("Logout() called");
_siteViewModel.ClearAll();
var url = $"{Setting.ApiBaseUrl}/{APIUrls.LogoutUser}"; var url = $"{Setting.ApiBaseUrl}/{APIUrls.LogoutUser}";
bool result = false; bool result = false;
var response = await http.PostAsJsonAsync(url, RefreshToken); var response = await _http.PostAsJsonAsync(url, RefreshToken);
if (response.IsSuccessStatusCode) if (response.IsSuccessStatusCode)
{ {
string resultMessage = await response.Content.ReadAsStringAsync(); string resultMessage = await response.Content.ReadAsStringAsync();
@ -329,7 +334,7 @@ namespace TIAMMobileApp.Services
_logger.Info("SendForgottenPasswordMail() called"); _logger.Info("SendForgottenPasswordMail() called");
var url = $"{Setting.ApiBaseUrl}/{APIUrls.SendForgottenPasswordMail}"; var url = $"{Setting.ApiBaseUrl}/{APIUrls.SendForgottenPasswordMail}";
var response = await http.PostAsJsonAsync(url, emailAddress); var response = await _http.PostAsJsonAsync(url, emailAddress);
var success = await response.Content.ReadFromJsonAsync<bool>(); var success = await response.Content.ReadFromJsonAsync<bool>();
_logger.Detail($"SendForgottenPasswordMail(): {success.ToString()}"); _logger.Detail($"SendForgottenPasswordMail(): {success.ToString()}");
@ -344,7 +349,7 @@ namespace TIAMMobileApp.Services
var url = $"{Setting.ApiBaseUrl}/{APIUrls.ValidateForgottenPasswordToken}"; var url = $"{Setting.ApiBaseUrl}/{APIUrls.ValidateForgottenPasswordToken}";
var parameters = new[] { userId.ToString(), token }; var parameters = new[] { userId.ToString(), token };
var response = await http.PostAsJsonAsync(url, parameters); var response = await _http.PostAsJsonAsync(url, parameters);
result = await response.Content.ReadAsStringAsync(); result = await response.Content.ReadAsStringAsync();
_logger.Detail($"ValidateForgotPasswordToken(): {result}"); _logger.Detail($"ValidateForgotPasswordToken(): {result}");
@ -359,7 +364,7 @@ namespace TIAMMobileApp.Services
var url = $"{Setting.ApiBaseUrl}/{APIUrls.SetEmailConfirmed}"; var url = $"{Setting.ApiBaseUrl}/{APIUrls.SetEmailConfirmed}";
var response = await http.PostAsJsonAsync(url, userId); var response = await _http.PostAsJsonAsync(url, userId);
result = await response.Content.ReadFromJsonAsync<bool>(); result = await response.Content.ReadFromJsonAsync<bool>();
_logger.Detail($"ValidateForgotPasswordToken(): {result.ToString()}"); _logger.Detail($"ValidateForgotPasswordToken(): {result.ToString()}");

View File

@ -11,9 +11,13 @@
@using AyCode.Interfaces.StorageHandlers; @using AyCode.Interfaces.StorageHandlers;
@using System.Globalization; @using System.Globalization;
@using AyCode.Core.Enums @using AyCode.Core.Enums
@using AyCode.Core.Helpers
@using AyCode.Core.Loggers @using AyCode.Core.Loggers
@using AyCode.Services.Loggers @using AyCode.Services.Loggers
@using TIAM.Core.Loggers @using TIAM.Core.Loggers
@using TIAM.Models
@using TIAM.Services
@using TIAMWebApp.Shared.Application.Services
@inject NavigationManager NavManager @inject NavigationManager NavManager
@inject IJSRuntime JSRuntime @inject IJSRuntime JSRuntime
@inject IEnumerable<IAcLogWriterClientBase> LogWriters @inject IEnumerable<IAcLogWriterClientBase> LogWriters
@ -24,6 +28,8 @@
@inject HttpClient http; @inject HttpClient http;
@inject IComponentUpdateService ComponentUpdateService @inject IComponentUpdateService ComponentUpdateService
@inject AuthenticationStateProvider AuthStateProvider @inject AuthenticationStateProvider AuthStateProvider
@inject AdminSignalRClient _adminSignalRClient;
@inject SiteViewModel _siteViewModel;
@{ @{
if (string.IsNullOrWhiteSpace(TrackingId)) if (string.IsNullOrWhiteSpace(TrackingId))
@ -81,6 +87,7 @@
if(userBasicDetail!= null) if(userBasicDetail!= null)
Setting.UserBasicDetails = userBasicDetail; Setting.UserBasicDetails = userBasicDetail;
var isSuccess = false;
if (jsontoken?.ValidTo < DateTime.UtcNow) if (jsontoken?.ValidTo < DateTime.UtcNow)
{ {
_logger.Info("Token needs to be refreshed"); _logger.Info("Token needs to be refreshed");
@ -91,6 +98,8 @@
await AuthStateProvider.GetAuthenticationStateAsync(); await AuthStateProvider.GetAuthenticationStateAsync();
_logger.Info("Token refreshed"); _logger.Info("Token refreshed");
isSuccess = true;
} }
else else
{ {
@ -105,11 +114,25 @@
{ {
_logger.Info("Valid token found"); _logger.Info("Valid token found");
await AuthStateProvider.GetAuthenticationStateAsync(); await AuthStateProvider.GetAuthenticationStateAsync();
isSuccess = true;
} }
string _userId = jsontoken.Claims.First(claim => claim.Type == JwtRegisteredClaimNames.NameId).Value; string _userId = jsontoken.Claims.First(claim => claim.Type == JwtRegisteredClaimNames.NameId).Value;
string _email = jsontoken.Claims.First(claim => claim.Type == JwtRegisteredClaimNames.Email).Value; string _email = jsontoken.Claims.First(claim => claim.Type == JwtRegisteredClaimNames.Email).Value;
var user = await UserDataService.IsLoggedInAsync(Guid.Parse(_userId)); var user = await UserDataService.IsLoggedInAsync(Guid.Parse(_userId));
if (isSuccess)
{
_adminSignalRClient.GetByIdAsync<SiteViewModel>(SignalRTags.GetSiteViewModelByUserId, signalResponseMessage =>
{
_siteViewModel.Initialize(signalResponseMessage.ResponseData!);
_logger.Debug($"UnreadMessages: {_siteViewModel.UnreadMessages.Count}");
return Task.CompletedTask;
}, user.UserId).Forget();
}
await SaveToSessionInfo(user); await SaveToSessionInfo(user);
_logger.Info($"Saved user in db is: {user.DisplayName}, setting autenthicated state"); _logger.Info($"Saved user in db is: {user.DisplayName}, setting autenthicated state");

View File

@ -1,6 +1,7 @@
using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components;
using System.IdentityModel.Tokens.Jwt; using System.IdentityModel.Tokens.Jwt;
using System.Text.Json; using System.Text.Json;
using AyCode.Core.Helpers;
using TIAMWebApp.Shared.Application.Models.ClientSide; using TIAMWebApp.Shared.Application.Models.ClientSide;
using TIAMWebApp.Shared.Application.Models; using TIAMWebApp.Shared.Application.Models;
using TIAMWebApp.Shared.Application.Interfaces; using TIAMWebApp.Shared.Application.Interfaces;
@ -12,6 +13,8 @@ using AyCode.Services.Loggers;
using Microsoft.AspNetCore.Components.Authorization; using Microsoft.AspNetCore.Components.Authorization;
using TIAM.Core.Consts; using TIAM.Core.Consts;
using TIAM.Entities.Users; using TIAM.Entities.Users;
using TIAM.Models;
using TIAM.Services;
using TIAMWebApp.Shared.Application.Services; using TIAMWebApp.Shared.Application.Services;
using TIAMSharedUI.Shared.Components.BaseComponents; using TIAMSharedUI.Shared.Components.BaseComponents;
@ -19,6 +22,8 @@ namespace TIAMSharedUI.Pages
{ {
public partial class Login : BasePageComponent public partial class Login : BasePageComponent
{ {
[Inject] private AdminSignalRClient _adminSignalRClient { get; set; }
[Inject] private SiteViewModel _siteViewModel { get; set; }
[Inject] [Inject]
public NavigationManager navManager { get; set; } public NavigationManager navManager { get; set; }
@ -115,8 +120,17 @@ namespace TIAMSharedUI.Pages
//display success message via jsinterop //display success message via jsinterop
BrowserConsoleLogWriter.Info("Successful login"); BrowserConsoleLogWriter.Info("Successful login");
var user = await userDataService.IsLoggedInAsync(myId); var user = await userDataService.IsLoggedInAsync(myId);
SaveToSessionInfo(user);
user.UserType = UserType.Admin; _adminSignalRClient.GetByIdAsync<SiteViewModel>(SignalRTags.GetSiteViewModelByUserId, signalResponseMessage =>
{
_siteViewModel.Initialize(signalResponseMessage.ResponseData!);
BrowserConsoleLogWriter.Debug($"UnreadMessages: {_siteViewModel.UnreadMessages.Count}");
return Task.CompletedTask;
}, user.UserId).Forget();
SaveToSessionInfo(user).Forget();
navManager.NavigateTo("/"); navManager.NavigateTo("/");
} }

View File

@ -25,6 +25,7 @@
@using AyCode.Services.SignalRs @using AyCode.Services.SignalRs
@using DevExpress.Data.Filtering @using DevExpress.Data.Filtering
@using TIAM.Entities.Emails @using TIAM.Entities.Emails
@using TIAM.Models
@using TIAM.Models.PageViewModels @using TIAM.Models.PageViewModels
@using TIAMSharedUI.Shared.Components.BaseComponents @using TIAMSharedUI.Shared.Components.BaseComponents
@inherits UserBasePageComponent @inherits UserBasePageComponent
@ -34,7 +35,7 @@
@inject IWizardProcessor wizardProcessor @inject IWizardProcessor wizardProcessor
@inject ITransferDataService transferDataService @inject ITransferDataService transferDataService
@inject ISessionService sessionService @inject ISessionService sessionService
@inject DriverManageTransfersPageModel PageModel; @inject SiteViewModel SiteViewModel;
@inject AdminSignalRClient AdminSignalRClient; @inject AdminSignalRClient AdminSignalRClient;
<PageTitle>Transfers</PageTitle> <PageTitle>Transfers</PageTitle>
@ -75,12 +76,12 @@
<div class=" col-12"> <div class=" col-12">
<DxTabs CssClass="no-padding"> <DxTabs CssClass="no-padding">
<DxTabPage Text="@($"Upcoming({PageModel.Upcomings.Count})")"> <DxTabPage Text="@($"Upcoming({_pageModel.Upcomings.Count})")">
<DxAccordion CssClass="no-padding" SizeMode="@SizeMode.Small" ExpandMode="ExpandMode" <DxAccordion CssClass="no-padding" SizeMode="@SizeMode.Small" ExpandMode="ExpandMode"
ExpandCollapseAction="ExpandCollapseAction" ExpandCollapseAction="ExpandCollapseAction"
AnimationType="LayoutAnimationType.Slide"> AnimationType="LayoutAnimationType.Slide">
<Items> <Items>
@foreach (var transfer in PageModel.Upcomings) @foreach (var transfer in _pageModel.Upcomings)
{ {
<DxAccordionItem IconCssClass="@GetCustomColor(transfer.TransferStatusType)"> <DxAccordionItem IconCssClass="@GetCustomColor(transfer.TransferStatusType)">
<HeaderTextTemplate> <HeaderTextTemplate>
@ -100,18 +101,18 @@
</DxAccordion> </DxAccordion>
</DxTabPage> </DxTabPage>
<DxTabPage Text="@($"Messages({PageModel.UnreadedMessagesCount})")"> <DxTabPage Text="@($"Messages({_pageModel.UnreadMessagesCount})")">
<div class="d-flex flex-column mb-4 pb-2"> <div class="d-flex flex-column mb-4 pb-2">
<MessageDetailGridComponent ContextId="driverId" GetAllMessageTag="SignalRTags.GetTransfersMessagesByDriverId" IsSenderEmailVisible="false" IsMessageTextVisible="false"></MessageDetailGridComponent> <MessageDetailGridComponent ContextId="driverId" GetAllMessageTag="SignalRTags.GetTransfersMessagesByDriverId" IsSenderEmailVisible="false" IsMessageTextVisible="false"></MessageDetailGridComponent>
</div> </div>
</DxTabPage> </DxTabPage>
<DxTabPage Text="@($"Problems({PageModel.Problems.Count})")"> <DxTabPage Text="@($"Problems({_pageModel.Problems.Count})")">
<DxAccordion CssClass="no-padding" SizeMode="@SizeMode.Small" ExpandMode="ExpandMode" <DxAccordion CssClass="no-padding" SizeMode="@SizeMode.Small" ExpandMode="ExpandMode"
ExpandCollapseAction="ExpandCollapseAction" ExpandCollapseAction="ExpandCollapseAction"
AnimationType="LayoutAnimationType.Slide"> AnimationType="LayoutAnimationType.Slide">
<Items> <Items>
@foreach (var transfer in PageModel.Problems) @foreach (var transfer in _pageModel.Problems)
{ {
<DxAccordionItem IconCssClass="@GetCustomColor(transfer.TransferStatusType)"> <DxAccordionItem IconCssClass="@GetCustomColor(transfer.TransferStatusType)">
@ -214,6 +215,7 @@
DateTime StartDate { get; set; } = DateTime.Today; DateTime StartDate { get; set; } = DateTime.Today;
DxSchedulerDataStorage _dataStorage = new(); DxSchedulerDataStorage _dataStorage = new();
private DriverManageTransfersPageModel _pageModel;
public List<string> IgnoreList = public List<string> IgnoreList =
[ [
@ -404,6 +406,7 @@
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
_logger = new LoggerClient<DriverManageTransfers>(LogWriters.ToArray()); _logger = new LoggerClient<DriverManageTransfers>(LogWriters.ToArray());
_pageModel = SiteViewModel.DriverManageTransfersPageModel;
InitializePageAsync(DriverId).Forget(); InitializePageAsync(DriverId).Forget();
@ -418,9 +421,9 @@
{ {
_logger.Error("response.Status == SignalResponseStatus.Error || response.ResponseData == null"); _logger.Error("response.Status == SignalResponseStatus.Error || response.ResponseData == null");
} }
else PageModel.Initialize(response.ResponseData); else _pageModel.Initialize(response.ResponseData);
InitializeAppointments(PageModel.Transfers); InitializeAppointments(_pageModel.Transfers);
StateHasChanged(); StateHasChanged();
return Task.CompletedTask; return Task.CompletedTask;

View File

@ -125,7 +125,7 @@
<text>@System.Text.RegularExpressions.Regex.Replace((displayTextContext.Value as string)!, "<(.|\n)*?>", string.Empty)</text> <text>@System.Text.RegularExpressions.Regex.Replace((displayTextContext.Value as string)!, "<(.|\n)*?>", string.Empty)</text>
</CellDisplayTemplate> </CellDisplayTemplate>
</DxGridDataColumn> </DxGridDataColumn>
<DxGridDataColumn FieldName="IsReaded" Caption="Readed" Visible="@IsMessageTextVisible" Width="70" CaptionAlignment="GridTextAlignment.Center" TextAlignment="GridTextAlignment.Center" /> <DxGridDataColumn FieldName="IsReaded" Caption="Read" Visible="@IsMessageTextVisible" Width="70" CaptionAlignment="GridTextAlignment.Center" TextAlignment="GridTextAlignment.Center" />
</Columns> </Columns>
<DetailRowTemplate> <DetailRowTemplate>

View File

@ -21,6 +21,7 @@ using Microsoft.JSInterop;
using Microsoft.EntityFrameworkCore.Metadata.Internal; using Microsoft.EntityFrameworkCore.Metadata.Internal;
using Microsoft.AspNetCore.Components.Routing; using Microsoft.AspNetCore.Components.Routing;
using AyCode.Blazor.Components.Services; using AyCode.Blazor.Components.Services;
using TIAM.Models;
namespace TIAMSharedUI.Shared.Components namespace TIAMSharedUI.Shared.Components
@ -51,6 +52,7 @@ namespace TIAMSharedUI.Shared.Components
private IJSRuntime JsRuntime { get; set; } private IJSRuntime JsRuntime { get; set; }
[Inject] AuthenticationStateProvider AuthStateProvider { get; set; } [Inject] AuthenticationStateProvider AuthStateProvider { get; set; }
[Inject] SiteViewModel SiteViewModel { get; set; }
private bool enableLogin = true; private bool enableLogin = true;
private bool enableEvents = false; private bool enableEvents = false;
@ -96,6 +98,8 @@ namespace TIAMSharedUI.Shared.Components
private async Task SignOut() private async Task SignOut()
{ {
//SiteViewModel.ClearAll();
bool serverResult; bool serverResult;
string userDetailsStr = await SecureStorageHandler.GetFromSecureStorageAsync(nameof(Setting.UserBasicDetails)); string userDetailsStr = await SecureStorageHandler.GetFromSecureStorageAsync(nameof(Setting.UserBasicDetails));
if (!string.IsNullOrEmpty(userDetailsStr)) if (!string.IsNullOrEmpty(userDetailsStr))

View File

@ -13,6 +13,7 @@ using TIAMWebApp.Shared.Application.Utility;
using AyCode.Services.Loggers; using AyCode.Services.Loggers;
using System.Net; using System.Net;
using Microsoft.AspNetCore.Components.Authorization; using Microsoft.AspNetCore.Components.Authorization;
using TIAM.Models;
using TIAM.Models.PageViewModels; using TIAM.Models.PageViewModels;
@ -30,7 +31,7 @@ builder.Services.AddScoped<ISecureStorageHandler, SecureStorageHandler>();
builder.Services.AddBlazoredLocalStorage(); builder.Services.AddBlazoredLocalStorage();
builder.Services.AddSingleton<ISessionService, SessionServiceWeb>(); builder.Services.AddSingleton<ISessionService, SessionServiceWeb>();
builder.Services.AddSingleton<DriverManageTransfersPageModel>(); builder.Services.AddSingleton<SiteViewModel>();
builder.Services.AddSingleton<IComponentUpdateService, ComponentUpdateServiceWeb>(); builder.Services.AddSingleton<IComponentUpdateService, ComponentUpdateServiceWeb>();
builder.Services.AddScoped<IServiceProviderDataService, ServiceProviderDataService>(); builder.Services.AddScoped<IServiceProviderDataService, ServiceProviderDataService>();

View File

@ -12,28 +12,31 @@ using AyCode.Services.Loggers;
using System.Net.Http; using System.Net.Http;
using AyCode.Core.Extensions; using AyCode.Core.Extensions;
using System.Text.Json; using System.Text.Json;
using TIAM.Models;
namespace TIAMWebApp.Client.Services namespace TIAMWebApp.Client.Services
{ {
public class UserDataServiceWeb : IUserDataService public class UserDataServiceWeb : IUserDataService
{ {
private readonly HttpClient http; private readonly HttpClient _http;
private readonly ISecureStorageHandler secureStorageHandler; private readonly SiteViewModel _siteViewModel;
private readonly ISecureStorageHandler _secureStorageHandler;
//private readonly BrowserConsoleLogWriter _browserConsoleLogWriter; //private readonly BrowserConsoleLogWriter _browserConsoleLogWriter;
private readonly IServiceProviderDataService serviceProviderDataService; private readonly IServiceProviderDataService _serviceProviderDataService;
private readonly LoggerClient<UserDataServiceWeb> _logger; private readonly LoggerClient<UserDataServiceWeb> _logger;
public UserDataServiceWeb(HttpClient http, ISecureStorageHandler secureStorageHandler, IServiceProviderDataService serviceProviderDataService, IEnumerable<IAcLogWriterClientBase> logWriters) public UserDataServiceWeb(HttpClient http, SiteViewModel siteViewModel, ISecureStorageHandler secureStorageHandler, IServiceProviderDataService serviceProviderDataService, IEnumerable<IAcLogWriterClientBase> logWriters)
//public UserDataServiceWeb(HttpClient http, ISecureStorageHandler secureStorageHandler, IJSRuntime jSRuntime, IServiceProviderDataService serviceProviderDataService, HttpClientLogItemWriter logWriter) //public UserDataServiceWeb(HttpClient http, ISecureStorageHandler secureStorageHandler, IJSRuntime jSRuntime, IServiceProviderDataService serviceProviderDataService, HttpClientLogItemWriter logWriter)
{ {
this.http = http; _http = http;
this.secureStorageHandler = secureStorageHandler; _siteViewModel = siteViewModel;
_secureStorageHandler = secureStorageHandler;
//this._browserConsoleLogWriter = new BrowserConsoleLogWriter(jsRuntime); //this._browserConsoleLogWriter = new BrowserConsoleLogWriter(jsRuntime);
this.serviceProviderDataService = serviceProviderDataService; _serviceProviderDataService = serviceProviderDataService;
_logger = new LoggerClient<UserDataServiceWeb>(logWriters.ToArray()); _logger = new LoggerClient<UserDataServiceWeb>(logWriters.ToArray());
//_logger = new TIAM.Core.Loggers.Logger<UserDataServiceWeb>(AppType.Web, LogLevel.Info, logWriters.ToArray()); //_logger = new TIAM.Core.Loggers.Logger<UserDataServiceWeb>(AppType.Web, LogLevel.Info, logWriters.ToArray());
//_logger = new TIAM.Core.Loggers.Logger<UserDataServiceWeb>(AppType.Web, LogLevel.Info, logWriter); //_logger = new TIAM.Core.Loggers.Logger<UserDataServiceWeb>(AppType.Web, LogLevel.Info, logWriter);
@ -80,7 +83,7 @@ namespace TIAMWebApp.Client.Services
var url = $"{Setting.ApiBaseUrl}/{APIUrls.UserTest}"; var url = $"{Setting.ApiBaseUrl}/{APIUrls.UserTest}";
var response = await http.PostAsJsonAsync(url, Param); var response = await _http.PostAsJsonAsync(url, Param);
var result = await response.Content.ReadAsStringAsync(); var result = await response.Content.ReadAsStringAsync();
return result; return result;
} }
@ -90,7 +93,7 @@ namespace TIAMWebApp.Client.Services
string result = string.Empty; string result = string.Empty;
var url = $"{Setting.ApiBaseUrl}/{APIUrls.AuthenticateUser}"; var url = $"{Setting.ApiBaseUrl}/{APIUrls.AuthenticateUser}";
var response = await http.PostAsJsonAsync(url, loginModel); var response = await _http.PostAsJsonAsync(url, loginModel);
//try //try
//{ //{
@ -122,7 +125,7 @@ namespace TIAMWebApp.Client.Services
string result = string.Empty; string result = string.Empty;
var url = $"{Setting.ApiBaseUrl}/{APIUrls.CreateUser}"; var url = $"{Setting.ApiBaseUrl}/{APIUrls.CreateUser}";
_logger.Info("CreateUser url: " + url); _logger.Info("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,7 +150,7 @@ namespace TIAMWebApp.Client.Services
UserModelDto? user = new UserModelDto(); UserModelDto? user = new UserModelDto();
var url = $"{Setting.ApiBaseUrl}/{APIUrls.CreateGuestUser}"; var url = $"{Setting.ApiBaseUrl}/{APIUrls.CreateGuestUser}";
_logger.Info("CreateGuestUser url: " + url); _logger.Info("CreateGuestUser url: " + url);
var response = await http.PostAsJsonAsync(url, regModel); var response = await _http.PostAsJsonAsync(url, regModel);
if (response.IsSuccessStatusCode) if (response.IsSuccessStatusCode)
@ -171,7 +174,7 @@ namespace TIAMWebApp.Client.Services
public async Task<List<UserModelDto>?> GetUsersAsync() public async Task<List<UserModelDto>?> GetUsersAsync()
{ {
return await http.GetFromJsonAsync<List<UserModelDto>>(APIUrls.GetUsers); return await _http.GetFromJsonAsync<List<UserModelDto>>(APIUrls.GetUsers);
} }
public async Task<List<UserModelDtoDetail>> GetUsersWithDetailsAsync() public async Task<List<UserModelDtoDetail>> GetUsersWithDetailsAsync()
@ -179,7 +182,7 @@ namespace TIAMWebApp.Client.Services
var url = $"{Setting.ApiBaseUrl}/{APIUrls.GetUsersWithDetails}"; var url = $"{Setting.ApiBaseUrl}/{APIUrls.GetUsersWithDetails}";
_logger.Info("GetUserByEmailAsync url: " + url + "!"); _logger.Info("GetUserByEmailAsync url: " + url + "!");
var response = await http.GetFromJsonAsync<List<UserModelDtoDetail>>(APIUrls.GetUsersWithDetails); var response = await _http.GetFromJsonAsync<List<UserModelDtoDetail>>(APIUrls.GetUsersWithDetails);
//var result = await response.Content.ReadAsStringAsync(); //var result = await response.Content.ReadAsStringAsync();
//var user = JsonConvert.DeserializeObject<UserModelDto>(result); //var user = JsonConvert.DeserializeObject<UserModelDto>(result);
return response ?? []; return response ?? [];
@ -194,7 +197,7 @@ namespace TIAMWebApp.Client.Services
{ {
var url = $"{Setting.ApiBaseUrl}/{APIUrls.GetUserByEmail}/{email}"; var url = $"{Setting.ApiBaseUrl}/{APIUrls.GetUserByEmail}/{email}";
_logger.Info("GetUserByEmailAsync url: " + url + ", " + email); _logger.Info("GetUserByEmailAsync url: " + url + ", " + email);
var response = await http.GetAsync(url); var response = await _http.GetAsync(url);
response.EnsureSuccessStatusCode(); response.EnsureSuccessStatusCode();
if (response.Content != null) if (response.Content != null)
@ -235,7 +238,7 @@ namespace TIAMWebApp.Client.Services
var url = $"{Setting.ApiBaseUrl}/{APIUrls.GetUserById}"; var url = $"{Setting.ApiBaseUrl}/{APIUrls.GetUserById}";
_logger.Info("GetUserByIdAsync url: " + url + ", " + id.ToString()); _logger.Info("GetUserByIdAsync url: " + url + ", " + id.ToString());
var response = await http.PostAsJsonAsync(url, id); var response = await _http.PostAsJsonAsync(url, id);
var result = await response.Content.ReadAsStringAsync(); var result = await response.Content.ReadAsStringAsync();
var user = JsonConvert.DeserializeObject<UserModelDto>(result); var user = JsonConvert.DeserializeObject<UserModelDto>(result);
@ -249,7 +252,7 @@ namespace TIAMWebApp.Client.Services
var url = $"{Setting.ApiBaseUrl}/{APIUrls.GetUserDetailById}"; var url = $"{Setting.ApiBaseUrl}/{APIUrls.GetUserDetailById}";
_logger.Info("GetUserDetailByIdAsync url: " + url + ", " + id.ToString()); _logger.Info("GetUserDetailByIdAsync url: " + url + ", " + id.ToString());
var response = await http.PostAsJsonAsync(url, id); var response = await _http.PostAsJsonAsync(url, id);
//var result = await response.Content.ReadAsStringAsync(); //var result = await response.Content.ReadAsStringAsync();
var result = await response.Content.ReadFromJsonAsync<UserModelDtoDetail>(); var result = await response.Content.ReadFromJsonAsync<UserModelDtoDetail>();
//var user = JsonConvert.DeserializeObject<UserModelDtoDetail>(result); //var user = JsonConvert.DeserializeObject<UserModelDtoDetail>(result);
@ -274,7 +277,7 @@ namespace TIAMWebApp.Client.Services
try try
{ {
_logger.Info("Refreshtoken url: " + url); _logger.Info("Refreshtoken url: " + url);
var response = await http.PostAsync(url, new StringContent(serializedStr, Encoding.UTF8, "application/json")); var response = await _http.PostAsync(url, new StringContent(serializedStr, Encoding.UTF8, "application/json"));
if (response.IsSuccessStatusCode) if (response.IsSuccessStatusCode)
{ {
string contentStr = await response.Content.ReadAsStringAsync(); string contentStr = await response.Content.ReadAsStringAsync();
@ -286,7 +289,7 @@ namespace TIAMWebApp.Client.Services
Setting.UserBasicDetails.RefreshToken = tokenDetails.RefreshToken; Setting.UserBasicDetails.RefreshToken = tokenDetails.RefreshToken;
string userDetailsStr = JsonConvert.SerializeObject(Setting.UserBasicDetails); string userDetailsStr = JsonConvert.SerializeObject(Setting.UserBasicDetails);
await secureStorageHandler.SaveToSecureStorageAsync(nameof(Setting.UserBasicDetails), userDetailsStr); await _secureStorageHandler.SaveToSecureStorageAsync(nameof(Setting.UserBasicDetails), userDetailsStr);
isTokenRefreshed = true; isTokenRefreshed = true;
} }
} }
@ -306,9 +309,11 @@ namespace TIAMWebApp.Client.Services
{ {
_logger.Info("Logout() called"); _logger.Info("Logout() called");
_siteViewModel.ClearAll();
var url = $"{Setting.ApiBaseUrl}/{APIUrls.LogoutUser}"; var url = $"{Setting.ApiBaseUrl}/{APIUrls.LogoutUser}";
bool result = false; bool result = false;
var response = await http.PostAsJsonAsync(url, refreshToken); var response = await _http.PostAsJsonAsync(url, refreshToken);
if (response.IsSuccessStatusCode) if (response.IsSuccessStatusCode)
{ {
string resultMessage = await response.Content.ReadAsStringAsync(); string resultMessage = await response.Content.ReadAsStringAsync();
@ -336,7 +341,7 @@ namespace TIAMWebApp.Client.Services
_logger.Info("SendForgottenPasswordMail() called"); _logger.Info("SendForgottenPasswordMail() called");
var url = $"{Setting.ApiBaseUrl}/{APIUrls.SendForgottenPasswordMail}"; var url = $"{Setting.ApiBaseUrl}/{APIUrls.SendForgottenPasswordMail}";
var response = await http.PostAsJsonAsync(url, emailAddress); var response = await _http.PostAsJsonAsync(url, emailAddress);
var success = await response.Content.ReadFromJsonAsync<bool>(); var success = await response.Content.ReadFromJsonAsync<bool>();
_logger.Detail($"SendForgottenPasswordMail(): {success.ToString()}"); _logger.Detail($"SendForgottenPasswordMail(): {success.ToString()}");
@ -351,7 +356,7 @@ namespace TIAMWebApp.Client.Services
var url = $"{Setting.ApiBaseUrl}/{APIUrls.ValidateForgottenPasswordToken}"; var url = $"{Setting.ApiBaseUrl}/{APIUrls.ValidateForgottenPasswordToken}";
var parameters = new[] { userId.ToString(), token }; var parameters = new[] { userId.ToString(), token };
var response = await http.PostAsJsonAsync(url, parameters); var response = await _http.PostAsJsonAsync(url, parameters);
result = await response.Content.ReadAsStringAsync(); result = await response.Content.ReadAsStringAsync();
_logger.Detail($"ValidateForgotPasswordToken(): {result}"); _logger.Detail($"ValidateForgotPasswordToken(): {result}");
@ -366,7 +371,7 @@ namespace TIAMWebApp.Client.Services
var url = $"{Setting.ApiBaseUrl}/{APIUrls.SetEmailConfirmed}"; var url = $"{Setting.ApiBaseUrl}/{APIUrls.SetEmailConfirmed}";
var response = await http.PostAsJsonAsync(url, userId); var response = await _http.PostAsJsonAsync(url, userId);
result = await response.Content.ReadFromJsonAsync<bool>(); result = await response.Content.ReadFromJsonAsync<bool>();
_logger.Detail($"ValidateForgotPasswordToken(): {result.ToString()}"); _logger.Detail($"ValidateForgotPasswordToken(): {result.ToString()}");

View File

@ -34,6 +34,8 @@ using TIAM.Entities.Products;
using AyCode.Core.Enums; using AyCode.Core.Enums;
using TIAM.Core.Consts; using TIAM.Core.Consts;
using System.Security.Cryptography.Xml; using System.Security.Cryptography.Xml;
using TIAM.Models;
using TIAM.Models.Dtos.Users;
using TIAM.Models.PageViewModels; using TIAM.Models.PageViewModels;
namespace TIAMWebApp.Server.Controllers namespace TIAMWebApp.Server.Controllers
@ -60,6 +62,15 @@ namespace TIAMWebApp.Server.Controllers
_userApiController = userApiController; _userApiController = userApiController;
} }
//TODO: ezt meg a Messages-eket átbuherálni a UserDal-ra... - J.
[NonAction]
[SignalR(SignalRTags.GetSiteViewModelByUserId)]
public async Task<SiteViewModel> GetSiteViewModelByUserId(Guid userId)
{
_logger.Debug("$GetSiteViewModelByUserId called; userId: {userId}");
return await _adminDal.GetSiteViewModelByUserId(userId);
}
[AllowAnonymous] [AllowAnonymous]

View File

@ -26,6 +26,7 @@ using TIAM.Services.Server.Logins;
using TIAMWebApp.Server.Services; using TIAMWebApp.Server.Services;
using AyCode.Core.Enums; using AyCode.Core.Enums;
using AyCode.Models.Enums; using AyCode.Models.Enums;
using TIAM.Models;
namespace TIAMWebApp.Server.Controllers namespace TIAMWebApp.Server.Controllers
{ {