implement SiteViewModel; improvements, fixes, etc...
This commit is contained in:
parent
dd8b1ac6b4
commit
a82bf9a287
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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()}");
|
||||||
|
|
|
||||||
|
|
@ -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");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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("/");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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))
|
||||||
|
|
|
||||||
|
|
@ -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>();
|
||||||
|
|
|
||||||
|
|
@ -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()}");
|
||||||
|
|
|
||||||
|
|
@ -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]
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue