using AutoMapper; using BlackRock.Reporting.API.Models; using MediatR; namespace BlackRock.Reporting.API.Mediator { public class CreateUsersCommand : IRequest> { public UserForm User { get; } public CreateUsersCommand(UserForm user) { this.User = user; } } public class CreateUsersCommandHandlers : IRequestHandler> { private readonly ILogger logger; private readonly IMapper mapper; public CreateUsersCommandHandlers(ILogger logger, IMapper mapper) { this.mapper = mapper; this.logger = logger; } public async Task> Handle(CreateUsersCommand command, CancellationToken cancellationToken) { if (command.User == null) throw new ArgumentException($"Parameter {nameof(command.User)} must not be null"); try { logger.LogInformation("Creating new user ..."); var user = mapper.Map(command.User); user.Id = Guid.NewGuid(); // repository.Add(User); // await unitOfWork.SaveChangesAsync(); return new Result { Data = user.Id }; } catch (Exception ex) { return new Result { IsSuccess = false, Error = "Faild to add data to DB." }; } } } }