34 lines
1.4 KiB
C#
34 lines
1.4 KiB
C#
using GozareshgirProgramManager.Application._Common.Interfaces;
|
|
using GozareshgirProgramManager.Application._Common.Models;
|
|
using GozareshgirProgramManager.Domain._Common;
|
|
using GozareshgirProgramManager.Domain.RoleUserAgg;
|
|
using GozareshgirProgramManager.Domain.UserAgg.Repositories;
|
|
|
|
namespace GozareshgirProgramManager.Application.Modules.Users.Commands.EditUser;
|
|
|
|
public class EditUserCommandHandler :IBaseCommandHandler<EditUserCommand>
|
|
{
|
|
private readonly IUserRepository _userRepository;
|
|
private readonly IUnitOfWork _unitOfWork;
|
|
|
|
public EditUserCommandHandler(IUserRepository userRepository, IUnitOfWork unitOfWork)
|
|
{
|
|
_userRepository = userRepository;
|
|
_unitOfWork = unitOfWork;
|
|
}
|
|
|
|
public async Task<OperationResult> Handle(EditUserCommand request, CancellationToken cancellationToken)
|
|
{
|
|
var user = await _userRepository.GetByGozareshgirAccountId(request.AccountId);
|
|
if (user != null)
|
|
{
|
|
var userRoles = request.Roles.Where(x => x > 0).Select(x => new RoleUser(x)).ToList();
|
|
user.Edit(request.FullName, request.UserName, request.Mobile, userRoles, request.IsActive);
|
|
await _unitOfWork.SaveChangesAsync();
|
|
}
|
|
|
|
return OperationResult.Success();
|
|
}
|
|
}
|
|
|
|
public record EditUserCommand(string FullName, string UserName, string Mobile,long AccountId, List<long> Roles, bool IsActive) : IBaseCommand; |