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 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));
|
||||
|
||||
#region Product
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using AyCode.Database.DataLayers.Users;
|
||||
using AyCode.Database.DbSets.Users;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using TIAM.Database.DbContexts.Users;
|
||||
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 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)
|
||||
{
|
||||
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}");
|
||||
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()
|
||||
{
|
||||
//TODO: Models... - J.
|
||||
|
|
|
|||
|
|
@ -105,6 +105,8 @@ public class SignalRTags : AcSignalRTags
|
|||
public const int GetAllUsers = 120;
|
||||
public const int GetAllUserModelDtoDetails = 121;
|
||||
public const int GetAllUserModelDtoEmails = 125;
|
||||
public const int UpdateUser = 130;
|
||||
public const int UpdateUserModelDtoDetail = 131;
|
||||
|
||||
public const int GetAllLogItemsByFilterText = 1000;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@
|
|||
@using AyCode.Services.Loggers
|
||||
@using AyCode.Core
|
||||
@using AyCode.Core.Consts
|
||||
@using AyCode.Core.Extensions
|
||||
@using AyCode.Core.Helpers
|
||||
@using TIAMWebApp.Shared.Application.Services
|
||||
@layout AdminLayout
|
||||
|
|
@ -123,19 +124,19 @@
|
|||
|
||||
</DetailRowTemplate>
|
||||
|
||||
<EditFormTemplate Context="EditFormContext">
|
||||
<EditFormTemplate Context="editFormContext">
|
||||
@{
|
||||
var transfer2 = (UserModelDtoDetail)EditFormContext.EditModel;
|
||||
var transfer2 = (UserModelDtoDetail)editFormContext.EditModel;
|
||||
}
|
||||
<DxFormLayout CssClass="w-100 form-control">
|
||||
<DxFormLayoutItem Caption=@Localizer.GetString(ResourceKeys.EmailAddress) ColSpanMd="4">
|
||||
@EditFormContext.GetEditor("UserDto.EmailAddress")
|
||||
@editFormContext.GetEditor("UserDto.EmailAddress")
|
||||
</DxFormLayoutItem>
|
||||
<DxFormLayoutItem Caption=@Localizer.GetString(ResourceKeys.ConfirmEmail) ColSpanMd="4">
|
||||
@EditFormContext.GetEditor("UserDto.EmailConfirmed")
|
||||
@editFormContext.GetEditor("UserDto.EmailConfirmed")
|
||||
</DxFormLayoutItem>
|
||||
<DxFormLayoutItem Caption=@Localizer.GetString(ResourceKeys.PhoneNumber) ColSpanMd="4">
|
||||
@EditFormContext.GetEditor("UserDto.PhoneNumber")
|
||||
@editFormContext.GetEditor("UserDto.PhoneNumber")
|
||||
</DxFormLayoutItem>
|
||||
|
||||
</DxFormLayout>
|
||||
|
|
@ -160,7 +161,7 @@
|
|||
private LoggerClient<ManageUsers> _logger;
|
||||
//public UserModelDtoDetail UserModelDtoDetail = new();
|
||||
|
||||
public List<UserModelDtoDetail> UserData { get; set; }
|
||||
public List<UserModelDtoDetail> UserData { get; set; } = null!;
|
||||
|
||||
bool PopupVisible { get; set; } = false;
|
||||
|
||||
|
|
@ -269,50 +270,38 @@
|
|||
|
||||
async Task Grid_EditModelSaving(GridEditModelSavingEventArgs e)
|
||||
{
|
||||
var userModelDtoDetail = ((UserModelDtoDetail)e.EditModel);
|
||||
var userModelDtoDetailEditModel = ((UserModelDtoDetail)e.EditModel);
|
||||
|
||||
if (e.IsNew)
|
||||
{
|
||||
var registration = new RegistrationModel();
|
||||
//TODO: Refractor to userDataService
|
||||
|
||||
|
||||
|
||||
|
||||
// var random = new Random();
|
||||
// const string chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
|
||||
// var password = new string(Enumerable.Repeat(chars, 10)
|
||||
// .Select(s => s[random.Next(s.Length)]).ToArray());
|
||||
|
||||
|
||||
registration.Email = userModelDtoDetail.UserDto.EmailAddress;
|
||||
registration.PhoneNumber = userModelDtoDetail.UserDto.PhoneNumber;
|
||||
|
||||
registration.Email = userModelDtoDetailEditModel.UserDto.EmailAddress;
|
||||
registration.PhoneNumber = userModelDtoDetailEditModel.UserDto.PhoneNumber;
|
||||
//registration.Password = password;
|
||||
registration.Password = AcCharsGenerator.NewPassword(AcConst.MinPasswordLength, 16);
|
||||
registration.ReferralId = null;
|
||||
|
||||
await UserDataService.CreateGuestUser(registration);
|
||||
_logger.Info("New user created added");
|
||||
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Info("UserData updated at id " + userModelDtoDetail.Id);
|
||||
|
||||
//await transferDataService.UpdateTransferAsync((TransferWizardModel)e.EditModel);
|
||||
//modify transferData where transferData.Id == e.EditModel.Id
|
||||
}
|
||||
//get transfer from TransferData by Id
|
||||
_logger.Info("UserData updated at id " + userModelDtoDetailEditModel.Id);
|
||||
|
||||
// foreach (var transferToModify in (List<Transfer>)TransferData)
|
||||
// {
|
||||
// myModel = (Transfer)e.EditModel;
|
||||
var updateUserModelDtoDetail = await AdminSignalRClient.PostDataAsync(SignalRTags.UpdateUserModelDtoDetail, userModelDtoDetailEditModel);
|
||||
if (updateUserModelDtoDetail == null) return;
|
||||
|
||||
// if (transferToModify.Id == myModel.Id)
|
||||
// {
|
||||
// //transferToModify.Driver = myModel.Driver;
|
||||
// }
|
||||
// }
|
||||
|
||||
//TODO: ne a teljes grid-et refresh-eljük, elég lenne csak az adott sort! - J.
|
||||
await UpdateDataAsync();
|
||||
UserData.UpdateCollection(updateUserModelDtoDetail, false);
|
||||
}
|
||||
|
||||
async Task Grid_DataItemDeleting(GridDataItemDeletingEventArgs e)
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ using TIAM.Entities.Addresses;
|
|||
using TIAM.Services.Server.Logins;
|
||||
using ILogger = TIAM.Core.Loggers.ILogger;
|
||||
using AyCode.Core.Helpers;
|
||||
using AyCode.Entities;
|
||||
using AyCode.Services.SignalRs;
|
||||
using TIAM.Services;
|
||||
|
||||
|
|
@ -233,40 +234,42 @@ namespace TIAMWebApp.Server.Controllers
|
|||
[AllowAnonymous]
|
||||
[HttpPost]
|
||||
[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");
|
||||
|
||||
if (string.IsNullOrEmpty(SerializedUserModel.GetRawText()))
|
||||
{
|
||||
return BadRequest("SerializedUserModel is required");
|
||||
}
|
||||
else
|
||||
{
|
||||
var user = JObject.Parse(SerializedUserModel.GetRawText()).ToObject<UserModelDtoDetail>();
|
||||
return await userDal.UpdateUserAsync(user);
|
||||
//if (string.IsNullOrEmpty(serializedUserModel.GetRawText()))
|
||||
//{
|
||||
// return BadRequest("SerializedUserModel is required");
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// var user = JObject.Parse(serializedUserModel.GetRawText()).ToObject<UserModelDtoDetail>();
|
||||
|
||||
if (user != null)
|
||||
{
|
||||
var userId = user.Id;
|
||||
var email = user.UserDto.EmailAddress;
|
||||
var phoneNumber = user.UserDto.PhoneNumber;
|
||||
// if (user != null)
|
||||
// {
|
||||
// var userId = user.Id;
|
||||
// var email = user.UserDto.EmailAddress;
|
||||
// var phoneNumber = user.UserDto.PhoneNumber;
|
||||
|
||||
if (email is null || phoneNumber is null)
|
||||
{
|
||||
return BadRequest("Invalid request");
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Info($"User to be updated: {userId}");
|
||||
_logger.Info($"User to be updated: {email}");
|
||||
_logger.Info($"User to be updated: {phoneNumber}");
|
||||
// if (email is null || phoneNumber is null)
|
||||
// {
|
||||
// return BadRequest("Invalid request");
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// _logger.Info($"User to be updated: {userId}");
|
||||
// _logger.Info($"User to be updated: {email}");
|
||||
// _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();
|
||||
}
|
||||
|
||||
[NonAction]
|
||||
[SignalR(SignalRTags.UpdateUserModelDtoDetail)]
|
||||
public async Task<UserModelDtoDetail?> UpdateUserModelDtoDetail(UserModelDtoDetail userModelDtoDetail)
|
||||
{
|
||||
_logger.Info("UpdateUserModelDtoDetail called");
|
||||
|
||||
var result = await userDal.UpdateUserModelDtoDetailAsync(userModelDtoDetail);
|
||||
return result;
|
||||
}
|
||||
|
||||
[AllowAnonymous]
|
||||
[HttpGet]
|
||||
[Route(APIUrls.GetUserByEmailRouteName + "/{email}")]
|
||||
|
|
|
|||
Loading…
Reference in New Issue