Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

UpdateEmailUsersCommand.cs 2.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using AutoMapper;
  2. using BlackRock.Reporting.API.Core;
  3. using BlackRock.Reporting.API.Models;
  4. using MediatR;
  5. namespace BlackRock.Reporting.API.Mediator
  6. {
  7. public class UpdateEmailUsersCommand : IRequest<Result<UserDto>>
  8. {
  9. public UserForm User { get; }
  10. public Guid Id { get; }
  11. public UpdateEmailUsersCommand(Guid id, UserForm user)
  12. {
  13. this.Id = id;
  14. this.User = user;
  15. }
  16. }
  17. public class UpdateEmailUsersCommandHandlers : IRequestHandler<UpdateEmailUsersCommand, Result<UserDto>>
  18. {
  19. private readonly ILogger<UpdateEmailUsersCommandHandlers> logger;
  20. private readonly IMapper mapper;
  21. private readonly IUsersRepository repository;
  22. private readonly IUnitOfWork unitOfWork;
  23. public UpdateEmailUsersCommandHandlers(ILogger<UpdateEmailUsersCommandHandlers> logger, IMapper mapper, IUsersRepository repository, IUnitOfWork unitOfWork)
  24. {
  25. this.unitOfWork = unitOfWork;
  26. this.repository = repository;
  27. this.mapper = mapper;
  28. this.logger = logger;
  29. }
  30. public async Task<Result<UserDto>> Handle(UpdateEmailUsersCommand command, CancellationToken cancellationToken)
  31. {
  32. if (command.Id == Guid.Empty)
  33. throw new ArgumentException($"Parameter {nameof(command.Id)} must not be null or empty");
  34. logger.LogInformation("Updating user email ...");
  35. try
  36. {
  37. var user = await repository.GetByIdAsync(command.Id);
  38. user.Email = command.User.Email;
  39. await unitOfWork.SaveChangesAsync();
  40. var updatedUser = mapper.Map<User, UserDto>(user);
  41. logger.LogInformation($"Email of the user with id {user.Id} has been updated successfully");
  42. return new Result<UserDto> { Data = updatedUser };
  43. }
  44. catch (Exception ex)
  45. {
  46. return new Result<UserDto> { IsSuccess = false, Error = "Faild to update data in DB." };
  47. }
  48. }
  49. }
  50. }