Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

CreateUsersCommand.cs 1.5KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using AutoMapper;
  2. using BlackRock.Reporting.API.Models;
  3. using MediatR;
  4. namespace BlackRock.Reporting.API.Mediator
  5. {
  6. public class CreateUsersCommand : IRequest<Result<Guid>>
  7. {
  8. public UserForm User { get; }
  9. public CreateUsersCommand(UserForm user)
  10. {
  11. this.User = user;
  12. }
  13. }
  14. public class CreateUsersCommandHandlers : IRequestHandler<CreateUsersCommand, Result<Guid>>
  15. {
  16. private readonly ILogger<CreateUsersCommandHandlers> logger;
  17. private readonly IMapper mapper;
  18. public CreateUsersCommandHandlers(ILogger<CreateUsersCommandHandlers> logger, IMapper mapper)
  19. {
  20. this.mapper = mapper;
  21. this.logger = logger;
  22. }
  23. public async Task<Result<Guid>> Handle(CreateUsersCommand command, CancellationToken cancellationToken)
  24. {
  25. if (command.User == null)
  26. throw new ArgumentException($"Parameter {nameof(command.User)} must not be null");
  27. try
  28. {
  29. logger.LogInformation("Creating new user ...");
  30. var user = mapper.Map<UserForm, User>(command.User);
  31. user.Id = Guid.NewGuid();
  32. // repository.Add(User);
  33. // await unitOfWork.SaveChangesAsync();
  34. return new Result<Guid> { Data = user.Id };
  35. }
  36. catch (Exception ex)
  37. {
  38. return new Result<Guid> { IsSuccess = false, Error = "Faild to add data to DB." };
  39. }
  40. }
  41. }
  42. }