Esempio n. 1
0
        public EmpresaXEspecialidade Save(EmpresaXEspecialidade entity)
        {
            try
            {
                switch (entity.ID)
                {
                case 0:
                    entity.ID = _repository.Add(entity);
                    break;

                default:
                    entity = Update(entity);
                    break;
                }

                return(entity);
            }
            catch (EspecialidadeException e)
            {
                throw e;
            }
            catch (Exception e)
            {
                throw new EspecialidadeException("Não foi possível atualizar o registro informado.", e);
            }
        }
Esempio n. 2
0
 public void Delete(EmpresaXEspecialidade entity)
 {
     try
     {
         _repository.Remove(entity);
         //return result;
     }
     catch (Exception e)
     {
         throw new EspecialidadeException("Não foi possível recuperar a empresa disponível.", e);
     }
 }
Esempio n. 3
0
 public EmpresaXEspecialidade Update(EmpresaXEspecialidade entity)
 {
     try
     {
         _repository.Update(entity);
         return(entity);
     }
     catch (Exception e)
     {
         throw new EspecialidadeException("Não foi possível atualizar o registro informado.", e);
     }
 }
Esempio n. 4
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."));
            }
        }