public HttpResponseMessage SalvarCheque(ChequeViewModel model) { try { var clinica = _cadastroService.ObterClinicaById(base.GetUsuarioLogado().IdClinica); if (clinica == null) { throw new Exception("Não foi possivel recuperar dados da clínica!"); } if (model.IdCheque > 0) { var cheque = _financeiroService.ObterChequePorId(model.IdCheque); if (cheque == null) { throw new Exception("Não foi possivel recuperar dados do cheque!"); } if (model.IdFinanceiro > 0) { var financeiro = _financeiroService.ObterFinanceiroPorId(Convert.ToInt32(model.IdFinanceiro)); if (financeiro == null) { throw new Exception("Não foi possivel recuperar dados de financeiro!"); } cheque.SetFinanceiro(financeiro); } if (model.IdPessoa > 0) { var pessoa = _cadastroService.ObterPessoaPorId(Convert.ToInt32(model.IdPessoa)); if (pessoa == null) { throw new Exception("Não foi possivel recuperar dados de pessoa!"); } cheque.SetPessoa(pessoa); } cheque.SetAgencia(model.Agencia); cheque.SetBanco(model.Banco); cheque.SetClinica(clinica); cheque.SetValor(model.Valor); if (model.BomPara != DateTime.MinValue) { cheque.SetBomPara(Convert.ToDateTime(model.BomPara)); } cheque.SetConta(model.Conta); cheque.SetEmitente(model.Emitente); cheque.SetHistorico(model.Historico); cheque.SetSituacao(model.Situacao); _financeiroService.SalvarCheque(cheque); return(Request.CreateResponse(HttpStatusCode.OK, model)); } else { var cheque = new Cheque(model.Emitente, model.Banco, model.Agencia, model.Conta, model.Situacao, model.Valor, clinica); if (model.IdFinanceiro > 0) { var financeiro = _financeiroService.ObterFinanceiroPorId(Convert.ToInt32(model.IdFinanceiro)); if (financeiro == null) { throw new Exception("Não foi possivel recuperar dados de financeiro!"); } cheque.SetFinanceiro(financeiro); } if (model.IdPessoa > 0) { var pessoa = _cadastroService.ObterPessoaPorId(Convert.ToInt32(model.IdPessoa)); if (pessoa == null) { throw new Exception("Não foi possivel recuperar dados de pessoa!"); } cheque.SetPessoa(pessoa); } if (model.BomPara != DateTime.MinValue) { cheque.SetBomPara(Convert.ToDateTime(model.BomPara)); } cheque.SetHistorico(model.Historico); _financeiroService.SalvarCheque(cheque); return(Request.CreateResponse(HttpStatusCode.OK, model)); } } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message)); } }