ManageUser update; etc...
This commit is contained in:
parent
4beae9c801
commit
b05145b571
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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}")]
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue