您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

GetUsersQuery.cs 1.4KB

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