ManageUser update; etc...

This commit is contained in:
Loretta 2024-07-06 15:05:20 +02:00
parent 4beae9c801
commit b05145b571
6 changed files with 85 additions and 74 deletions

View File

@ -214,7 +214,7 @@ namespace TIAM.Database.DataLayers.Admins
public string GetUsersJson() => Session(ctx => ctx.Users.ToJson()); public string GetUsersJson() => Session(ctx => ctx.Users.ToJson());
public Task<bool> AddUserAsync(User user) => TransactionAsync(ctx => ctx.AddUser(user)); public Task<bool> AddUserAsync(User user) => TransactionAsync(ctx => ctx.AddUser(user));
public Task<bool> UpdateUserAsync(User user) => TransactionAsync(ctx => ctx.UpdateUser(user)); public Task<User?> UpdateUserAsync(User user) => UpdateSafeAsync(user);
public Task<bool> RemoveUserAsync(Guid userId) => TransactionAsync(ctx => ctx.RemoveUser(userId)); public Task<bool> RemoveUserAsync(Guid userId) => TransactionAsync(ctx => ctx.RemoveUser(userId));
#region Product #region Product

View File

@ -1,4 +1,5 @@
using AyCode.Database.DataLayers.Users; using AyCode.Database.DataLayers.Users;
using AyCode.Database.DbSets.Users;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using TIAM.Database.DbContexts.Users; using TIAM.Database.DbContexts.Users;
using TIAM.Entities.Addresses; using TIAM.Entities.Addresses;
@ -23,6 +24,18 @@ namespace TIAM.Database.DataLayers.Users
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 async Task<UserModelDtoDetail?> UpdateUserModelDtoDetailAsync(UserModelDtoDetail userModelDtoDetail)
{
var user = GetUserById(userModelDtoDetail.UserDto.Id, false);
if (user == null) return null;
userModelDtoDetail.CopyMainValuesToUser(user);
return await UpdateUserAsync(user) == null ? null : await GetUserModelDtoByIdAsync<UserModelDtoDetail>(userModelDtoDetail.Id, false);
}
public async Task<bool> CreateUserAsync(User user) public async Task<bool> CreateUserAsync(User user)
{ {
Context.Users.Add(user); Context.Users.Add(user);
@ -34,21 +47,5 @@ namespace TIAM.Database.DataLayers.Users
Console.WriteLine($@"Saving user to db {user.Id}, {user.EmailAddress}, {user.PhoneNumber}, {user.Password}"); Console.WriteLine($@"Saving user to db {user.Id}, {user.EmailAddress}, {user.PhoneNumber}, {user.Password}");
return await Context.SaveChangesAsync() > 0; return await Context.SaveChangesAsync() > 0;
} }
public async Task<bool> UpdateUserAsync(User user)
{
var existingUser = await Context.Users.CountAsync(u => u.EmailAddress == user.EmailAddress);
if (existingUser == 1)
{
//user.Modified = DateTime.UtcNow; //ezt nem kell megadni, a háttérben ezt magától megcsinálja a DbContextBase - J.
Context.Users.Update(user);
return await Context.SaveChangesAsync() > 0;
}
else
{
throw new Exception("User not found");
}
}
} }
} }

View File

@ -50,6 +50,16 @@ namespace TIAM.Models.Dtos.Users
} }
} }
public void CopyMainValuesToUser(User user)
{
user.AffiliateId = UserDto.AffiliateId;
user.EmailAddress = UserDto.EmailAddress;
user.EmailConfirmed = UserDto.EmailConfirmed;
user.PhoneNumber = UserDto.PhoneNumber;
user.RefferalId = UserDto.RefferalId;
}
public virtual User CreateMainEntity() public virtual User CreateMainEntity()
{ {
//TODO: Models... - J. //TODO: Models... - J.

View File

@ -105,6 +105,8 @@ public class SignalRTags : AcSignalRTags
public const int GetAllUsers = 120; public const int GetAllUsers = 120;
public const int GetAllUserModelDtoDetails = 121; public const int GetAllUserModelDtoDetails = 121;
public const int GetAllUserModelDtoEmails = 125; public const int GetAllUserModelDtoEmails = 125;
public const int UpdateUser = 130;
public const int UpdateUserModelDtoDetail = 131;
public const int GetAllLogItemsByFilterText = 1000; public const int GetAllLogItemsByFilterText = 1000;
} }

View File

@ -12,6 +12,7 @@
@using AyCode.Services.Loggers @using AyCode.Services.Loggers
@using AyCode.Core @using AyCode.Core
@using AyCode.Core.Consts @using AyCode.Core.Consts
@using AyCode.Core.Extensions
@using AyCode.Core.Helpers @using AyCode.Core.Helpers
@using TIAMWebApp.Shared.Application.Services @using TIAMWebApp.Shared.Application.Services
@layout AdminLayout @layout AdminLayout
@ -123,19 +124,19 @@
</DetailRowTemplate> </DetailRowTemplate>
<EditFormTemplate Context="EditFormContext"> <EditFormTemplate Context="editFormContext">
@{ @{
var transfer2 = (UserModelDtoDetail)EditFormContext.EditModel; var transfer2 = (UserModelDtoDetail)editFormContext.EditModel;
} }
<DxFormLayout CssClass="w-100 form-control"> <DxFormLayout CssClass="w-100 form-control">
<DxFormLayoutItem Caption=@Localizer.GetString(ResourceKeys.EmailAddress) ColSpanMd="4"> <DxFormLayoutItem Caption=@Localizer.GetString(ResourceKeys.EmailAddress) ColSpanMd="4">
@EditFormContext.GetEditor("UserDto.EmailAddress") @editFormContext.GetEditor("UserDto.EmailAddress")
</DxFormLayoutItem> </DxFormLayoutItem>
<DxFormLayoutItem Caption=@Localizer.GetString(ResourceKeys.ConfirmEmail) ColSpanMd="4"> <DxFormLayoutItem Caption=@Localizer.GetString(ResourceKeys.ConfirmEmail) ColSpanMd="4">
@EditFormContext.GetEditor("UserDto.EmailConfirmed") @editFormContext.GetEditor("UserDto.EmailConfirmed")
</DxFormLayoutItem> </DxFormLayoutItem>
<DxFormLayoutItem Caption=@Localizer.GetString(ResourceKeys.PhoneNumber) ColSpanMd="4"> <DxFormLayoutItem Caption=@Localizer.GetString(ResourceKeys.PhoneNumber) ColSpanMd="4">
@EditFormContext.GetEditor("UserDto.PhoneNumber") @editFormContext.GetEditor("UserDto.PhoneNumber")
</DxFormLayoutItem> </DxFormLayoutItem>
</DxFormLayout> </DxFormLayout>
@ -160,7 +161,7 @@
private LoggerClient<ManageUsers> _logger; private LoggerClient<ManageUsers> _logger;
//public UserModelDtoDetail UserModelDtoDetail = new(); //public UserModelDtoDetail UserModelDtoDetail = new();
public List<UserModelDtoDetail> UserData { get; set; } public List<UserModelDtoDetail> UserData { get; set; } = null!;
bool PopupVisible { get; set; } = false; bool PopupVisible { get; set; } = false;
@ -269,7 +270,7 @@
async Task Grid_EditModelSaving(GridEditModelSavingEventArgs e) async Task Grid_EditModelSaving(GridEditModelSavingEventArgs e)
{ {
var userModelDtoDetail = ((UserModelDtoDetail)e.EditModel); var userModelDtoDetailEditModel = ((UserModelDtoDetail)e.EditModel);
if (e.IsNew) if (e.IsNew)
{ {
@ -283,36 +284,24 @@
// .Select(s => s[random.Next(s.Length)]).ToArray()); // .Select(s => s[random.Next(s.Length)]).ToArray());
registration.Email = userModelDtoDetail.UserDto.EmailAddress; registration.Email = userModelDtoDetailEditModel.UserDto.EmailAddress;
registration.PhoneNumber = userModelDtoDetail.UserDto.PhoneNumber; registration.PhoneNumber = userModelDtoDetailEditModel.UserDto.PhoneNumber;
//registration.Password = password; //registration.Password = password;
registration.Password = AcCharsGenerator.NewPassword(AcConst.MinPasswordLength, 16); registration.Password = AcCharsGenerator.NewPassword(AcConst.MinPasswordLength, 16);
registration.ReferralId = null; registration.ReferralId = null;
await UserDataService.CreateGuestUser(registration); await UserDataService.CreateGuestUser(registration);
_logger.Info("New user created added"); _logger.Info("New user created added");
return;
} }
else
{
_logger.Info("UserData updated at id " + userModelDtoDetail.Id);
//await transferDataService.UpdateTransferAsync((TransferWizardModel)e.EditModel); _logger.Info("UserData updated at id " + userModelDtoDetailEditModel.Id);
//modify transferData where transferData.Id == e.EditModel.Id
}
//get transfer from TransferData by Id
// foreach (var transferToModify in (List<Transfer>)TransferData) var updateUserModelDtoDetail = await AdminSignalRClient.PostDataAsync(SignalRTags.UpdateUserModelDtoDetail, userModelDtoDetailEditModel);
// { if (updateUserModelDtoDetail == null) return;
// myModel = (Transfer)e.EditModel;
// if (transferToModify.Id == myModel.Id) UserData.UpdateCollection(updateUserModelDtoDetail, false);
// {
// //transferToModify.Driver = myModel.Driver;
// }
// }
//TODO: ne a teljes grid-et refresh-eljük, elég lenne csak az adott sort! - J.
await UpdateDataAsync();
} }
async Task Grid_DataItemDeleting(GridDataItemDeletingEventArgs e) async Task Grid_DataItemDeleting(GridDataItemDeletingEventArgs e)

View File

@ -15,6 +15,7 @@ using TIAM.Entities.Addresses;
using TIAM.Services.Server.Logins; using TIAM.Services.Server.Logins;
using ILogger = TIAM.Core.Loggers.ILogger; using ILogger = TIAM.Core.Loggers.ILogger;
using AyCode.Core.Helpers; using AyCode.Core.Helpers;
using AyCode.Entities;
using AyCode.Services.SignalRs; using AyCode.Services.SignalRs;
using TIAM.Services; using TIAM.Services;
@ -233,40 +234,42 @@ namespace TIAMWebApp.Server.Controllers
[AllowAnonymous] [AllowAnonymous]
[HttpPost] [HttpPost]
[Route(APIUrls.UpdateUser)] [Route(APIUrls.UpdateUser)]
public async Task<IActionResult> UpdateUser([FromBody] JsonElement SerializedUserModel) [SignalR(SignalRTags.UpdateUser)]
public async Task<User?> UpdateUser([FromBody] User user)
{ {
_logger.Info("UpdateUser called"); _logger.Info("UpdateUser called");
if (string.IsNullOrEmpty(SerializedUserModel.GetRawText())) return await userDal.UpdateUserAsync(user);
{ //if (string.IsNullOrEmpty(serializedUserModel.GetRawText()))
return BadRequest("SerializedUserModel is required"); //{
} // return BadRequest("SerializedUserModel is required");
else //}
{ //else
var user = JObject.Parse(SerializedUserModel.GetRawText()).ToObject<UserModelDtoDetail>(); //{
// var user = JObject.Parse(serializedUserModel.GetRawText()).ToObject<UserModelDtoDetail>();
if (user != null) // if (user != null)
{ // {
var userId = user.Id; // var userId = user.Id;
var email = user.UserDto.EmailAddress; // var email = user.UserDto.EmailAddress;
var phoneNumber = user.UserDto.PhoneNumber; // var phoneNumber = user.UserDto.PhoneNumber;
if (email is null || phoneNumber is null) // if (email is null || phoneNumber is null)
{ // {
return BadRequest("Invalid request"); // return BadRequest("Invalid request");
} // }
else // else
{ // {
_logger.Info($"User to be updated: {userId}"); // _logger.Info($"User to be updated: {userId}");
_logger.Info($"User to be updated: {email}"); // _logger.Info($"User to be updated: {email}");
_logger.Info($"User to be updated: {phoneNumber}"); // _logger.Info($"User to be updated: {phoneNumber}");
await userDal.UpdateUserAsync(new User(userId, email, phoneNumber)); // await userDal.UpdateUserAsync(new User(userId, email, phoneNumber));
} // }
} // }
return Ok("yes"); // return Ok("yes");
} //}
} }
@ -383,6 +386,16 @@ namespace TIAMWebApp.Server.Controllers
return await userDal.GetUserModelDtoEmailsAsync(); return await userDal.GetUserModelDtoEmailsAsync();
} }
[NonAction]
[SignalR(SignalRTags.UpdateUserModelDtoDetail)]
public async Task<UserModelDtoDetail?> UpdateUserModelDtoDetail(UserModelDtoDetail userModelDtoDetail)
{
_logger.Info("UpdateUserModelDtoDetail called");
var result = await userDal.UpdateUserModelDtoDetailAsync(userModelDtoDetail);
return result;
}
[AllowAnonymous] [AllowAnonymous]
[HttpGet] [HttpGet]
[Route(APIUrls.GetUserByEmailRouteName + "/{email}")] [Route(APIUrls.GetUserByEmailRouteName + "/{email}")]