Ejemplo n.º 1
0
        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."));
            }
        }
Ejemplo n.º 2
0
        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."));
            }
        }