public async Task <IActionResult> SaveAsync([FromRoute] string token, [FromBody] Oportunidade oportunidade) { try { var op = await _opDomain.SaveAsync(oportunidade, token); op.Endereco = await _edDomain.SaveAsync(op.Endereco, token); if (oportunidade.ID == 0) { await _emailHandler.EnviarEmailAsync(token, op); } return(Ok(op)); } catch (InvalidTokenException e) { return(StatusCode(401, $"{ e.Message } { e.InnerException.Message }")); } catch (OportunidadeException e) { return(StatusCode(400, $"{ e.Message } { e.InnerException.Message }")); } catch (EnderecoException e) { return(StatusCode(400, $"{ e.Message } { e.InnerException.Message }")); } catch (Exception e) { return(StatusCode(500, "Ocorreu um erro ao tentar salvar a oportunidade recebida. Entre em contato com o suporte.")); } }
public async Task <IActionResult> SaveAsync([FromRoute] string token, [FromBody] Empresa empresa) { try { if (empresa.Responsavel != null) { var responsavel = _rDomain.Save(empresa.Responsavel); empresa.ResponsavelId = responsavel.ID; empresa.Responsavel = responsavel; } var ep = await _domain.SaveAsync(empresa, token); ep.Endereco = await _edDomain.SaveAsync(ep.Endereco, token); await _cDomain.SaveAsync(ep.Contatos, token); if (empresa.TipoEmpresaId == 4) { empresa.Telefone.EmpresaId = empresa.ID; empresa.Endereco.EmpresaId = empresa.ID; } ep.Telefone = await _tDomain.SaveAsync(ep.Telefone, token); ep.Responsavel = empresa.Responsavel; //var oldEXe = default(EmpresaXEspecialidade); //if(ep.ID > 0 && ep.EspecialidadeId > 0) //{ // var result = _eXeDomain.GetByEmpresaId(ep.ID); // oldEXe = _eXeDomain.Save(new EmpresaXEspecialidade(result == null ? 0 : result.ID, ep.ID, ep.EspecialidadeId)); //} var oeXe = new EmpresaXEspecialidade(); if (empresa.idsEspecialidades != null) { oeXe.EmpresaId = ep.ID; var bExe = _eXeDomain.GetByIdEmpresa(oeXe.EmpresaId); if (bExe.Count() > 0) { for (int i = 0; i < bExe.Count(); i++) { oeXe.ID = bExe.ElementAtOrDefault(i).ID; _eXeDomain.Delete(oeXe); } } foreach (var item in empresa.idsEspecialidades) { oeXe.ID = 0; oeXe.EspecialidadeId = item; var mXc = _eXeDomain.Save(oeXe); } } if (empresa.IdCliente == 12 && "saudesite".Equals(empresa.Origem)) { var perfis = await SegurancaService.GetUsuariosAsync(13); var admins = await UsuarioService.GetByIdsAsync(12, perfis.Select(x => x.IdUsuario)); var email = new EmailHandler(); if (empresa.TipoEmpresaId == 1) { await email.EnviarEmailAsync(empresa.Tipo, empresa.ID, admins); } else if (empresa.TipoEmpresaId == 3) { await email.EnviarEmailAsync(empresa.Tipo, empresa.CodigoExterno, admins); } } return(Ok(ep)); } catch (InvalidTokenException e) { return(StatusCode(401, $"{ e.Message } { e.InnerException.Message }")); } catch (ServiceException e) { return(StatusCode(401, $"{ e.Message } { e.InnerException.Message }")); } catch (EmpresaException e) { return(StatusCode(400, $"{ e.Message } { e.InnerException.Message }")); } catch (Exception e) { return(StatusCode(500, "Ocorreu um erro ao tentar salvar a empresa recebida. Entre em contato com o suporte.")); } }