public async Task <CreatePedidoResponse> Create(CreatePedidoRequest request) { if (request is null) { throw new ArgumentNullException(nameof(request)); } var clienteId = request.ClienteID; if (clienteId == null) { clienteId = CreateCliente(request); } var pedido = request.ProjectedAs <Pedido>(); pedido.SetClienteId(clienteId.Value); var response = await _service.Create(pedido); if (response.IsSuccess) { _uow.Commit(); } return(response.ProjectedAs <CreatePedidoResponse>()); }
public async Task <IActionResult> CreatePedido([FromBody] CreatePedidoRequest createPedido) { var command = new CreatePedidoCommand(createPedido); var result = await Mediator.Send(command); return(await ResponseBase(result)); }
private int?CreateCliente(CreatePedidoRequest request) { int?clienteId; if (string.IsNullOrEmpty(request.Telefone)) { throw new ArgumentNullException(nameof(request.Telefone), "Telefone é obrigatorio"); } if (string.IsNullOrEmpty(request.Nome)) { throw new ArgumentNullException(nameof(request.Nome), "Nome é obrigatorio"); } if (string.IsNullOrEmpty(request.Endereco)) { throw new ArgumentNullException(nameof(request.Endereco), "Endereco é obrigatorio"); } if (string.IsNullOrEmpty(request.Numero)) { throw new ArgumentNullException(nameof(request.Numero), "Numero é obrigatorio"); } var resp = _clienteService.Create(new Cliente(request.Nome, request.Telefone, request.Email, request.Endereco, request.Numero, request.Complemento, request.Bairro, request.Cidade, request.CEP)); if (resp.IsSuccess) { _uow.Commit(); var cliente = _clienteRepository.GetByTelefone(request.Telefone); if (cliente != null) { clienteId = cliente.Id; } else { throw new ArgumentNullException(nameof(request), "Ocorreu algum erro ao gerar novo cliente"); } } else { throw new ArgumentNullException(nameof(request), "Ocorreu algum erro ao gerar novo cliente"); } return(clienteId); }
public async Task <IActionResult> RealizarPedido([FromBody] CreatePedidoRequest request) { var commandResult = await _mediator.Send(new CreatePedidoCommand(request)); if (!commandResult) { return(BadRequest("Erro ao realizar pedido.")); } return(Created(string.Empty, commandResult)); }
public async Task <IActionResult> Create([FromBody] CreatePedidoRequest request) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState.GetErrorResponse())); } var response = await _service.Create(request); if (!response.Success) { return(BadRequest(response.Erros)); } return(Ok(new { CodPedido = response.CodPedido })); } catch (Exception ex) { return(BadRequest(ex?.InnerException?.Message ?? ex.Message)); } }
public CreatePedidoCommand(CreatePedidoRequest pedidoRequest) { PedidoRequest = pedidoRequest; }