public async Task <InserirCompraResponse> InserirCompraParceiro(InserirCompraRequest request) { var response = new InserirCompraResponse(); var validationResult = request.Validate(); if (!validationResult.IsValid) { response.Valido = false; foreach (var failure in validationResult.Errors) { response.AdicionarMensagemErro(TipoMensagem.Validacao, failure.ErrorMessage); } return(response); } try { var compraParceiro = request.CompraParceiro.Map(); if (!compraParceiro.Validar()) { response.Valido = false; response.AdicionarMensagemErro(TipoMensagem.ErroNegocio, "Compra parceiro inválida."); return(response); } string correlationId = System.Guid.NewGuid().ToString(); var result = await compraParceiro.Inserir(correlationId); if (!result.Valido) { response.Valido = false; response.AdicionarMensagemErro(TipoMensagem.ErroNegocio, "Compra parceiro não foi inserida."); } else { response.CompraParceiro = compraParceiro.Map(); response.Valido = true; } } catch (ApplicationException appEx) { response.Valido = false; response.AdicionarMensagemErro(TipoMensagem.ErroNegocio, appEx.Message); } catch (Exception ex) { response.Valido = false; response.AdicionarMensagemErro(TipoMensagem.ErroAplicacao, ex.StackTrace); } return(response); }
public async Task <ActionResult> Post([FromBody] InserirCompraRequest request) { var response = await _service.InserirCompraParceiro(request); return(this.GetHttpResponse(response)); }