public IActionResult Criar([FromBody] ViewLote oferta) { try { return(ResultadoComRetorno <Lote>(_servico.Inserir(oferta))); } catch (Exception ex) { return(InternalServerError(ex)); } }
public Retorno Inserir(ViewLote viewLote) { try { var lote = viewLote.ObterLoteInclusao(this.Identificacao.Id); var alterarEndereco = false; var endereco = null as Endereco; var notificacao = null as Notificacao; var retorno = null as Retorno; if (lote.Endereco.Id > 0) { endereco = this.GetOne <Endereco>(lote.Endereco.Id); if (endereco == null) { lote.Endereco.Id = 0; lote.EnderecoId = 0; lote.Endereco.UsuarioId = lote.UsuarioIdVendedor; } else { alterarEndereco = true; endereco.Nome = lote.Endereco.Nome; endereco.Logradouro = lote.Endereco.Logradouro; endereco.Numero = lote.Endereco.Numero; endereco.Complemento = lote.Endereco.Complemento; endereco.CidadeId = lote.Endereco.CidadeId; endereco.EstadoId = lote.Endereco.EstadoId; endereco.Coordenadas = lote.Endereco.Coordenadas; endereco.CoordenadasEndereco = lote.Endereco.CoordenadasEndereco; lote.EnderecoId = endereco.Id; lote.Endereco = null; } } if (alterarEndereco) { this.Update <Endereco>(endereco); } this.Insert <Lote>(lote); if (lote.Tipo == (int)ETipoLote.Frigorificos) { retorno = _notificacaoServico.CriarNotificacaoNovaOfertaLoteParaFrigorificos(lote); } else { retorno = _notificacaoServico.CriarNotificacaoNovaOfertaLoteParaProdutores(lote); } if (retorno.Sucesso) { notificacao = retorno.ObterDados <Notificacao>(); if (notificacao != null) { this.Insert <Notificacao>(notificacao); } } this.Save(); if (notificacao != null && notificacao.EnviaPush) { _pushServico.Enviar(notificacao, false); } return(Sucesso((ViewLote)lote, "Oferta do lote realizada com sucesso.")); } catch (Exception ex) { return(Erro(ex)); } }