Ejemplo n.º 1
0
        public async Task <IActionResult> EnviarSMS(int id, PesquisaExameViewModel pesquisaExame, IFormCollection collection)
        {
            ExameViewModel exameView         = _exameContext.GetById(id);
            var            usuario           = _usuarioContext.RetornLoggedUser((ClaimsIdentity)User.Identity);
            var            trabalhaMunicipio = _pessoaTrabalhaMunicipioContext.GetByIdPessoa(usuario.UsuarioModel.IdPessoa);
            var            trabalhaEstado    = _pessoaTrabalhaEstadoContext.GetByIdPessoa(usuario.UsuarioModel.IdPessoa);

            try
            {
                string     statusAnteriorSMS = exameView.Exame.StatusNotificacao;
                ExameModel exame             = exameView.Exame;
                if (new Util.TelefoneCelularAttribute().IsValid(exameView.Paciente.FoneCelular))
                {
                    if (exame.StatusNotificacao.Equals(ExameModel.NOTIFICADO_ENVIADO))
                    {
                        exame = await _smsService.ConsultarSMSExameAsync(trabalhaEstado, trabalhaMunicipio, exame);
                    }
                    else if (exame.StatusNotificacao.Equals(ExameModel.NOTIFICADO_NAO) || exame.StatusNotificacao.Equals(ExameModel.NOTIFICADO_PROBLEMAS))
                    {
                        exame = await _smsService.EnviarSMSResultadoExameAsync(trabalhaEstado, trabalhaMunicipio, exame, exameView.Paciente);
                    }
                }
                if (statusAnteriorSMS.Equals(ExameModel.NOTIFICADO_ENVIADO) && exame.StatusNotificacao.Equals(ExameModel.NOTIFICADO_SIM))
                {
                    TempData["mensagemSucesso"] = "SMS foi entregue com SUCESSO!";
                }
                else if (statusAnteriorSMS.Equals(ExameModel.NOTIFICADO_NAO) && exame.StatusNotificacao.Equals(ExameModel.NOTIFICADO_ENVIADO))
                {
                    TempData["mensagemSucesso"] = "SMS enviado com SUCESSO!";
                }
                else if (statusAnteriorSMS.Equals(ExameModel.NOTIFICADO_NAO) && exame.StatusNotificacao.Equals(ExameModel.NOTIFICADO_NAO))
                {
                    TempData["mensagemErro"] = "Ocorreram problemas no envio do SMS. Favor conferir telefone e repetir operação em alguns minutos.";
                }
                else if (statusAnteriorSMS.Equals(ExameModel.NOTIFICADO_ENVIADO) && exame.StatusNotificacao.Equals(ExameModel.NOTIFICADO_ENVIADO))
                {
                    TempData["mensagemErro"] = "Ainda aguardando resposta da operadora. Favor repetir a consulta em alguns minutos.";
                }
                else if (statusAnteriorSMS.Equals(ExameModel.NOTIFICADO_ENVIADO) && exame.StatusNotificacao.Equals(ExameModel.NOTIFICADO_PROBLEMAS))
                {
                    TempData["mensagemErro"] = "Operadora não conseguiu entregar o SMS. Favor conferir telefone e repetir envio em alguns minutos.";
                }
            } catch (ServiceException se)
            {
                TempData["mensagemErro"] = se.Message;
            }

            return(RedirectToAction("Notificate", "Exame", pesquisaExame));
        }
Ejemplo n.º 2
0
        public List <EmpresaExameModel> GetAllEmpresas()
        {
            var usuario  = _usuarioContext.RetornLoggedUser((ClaimsIdentity)User.Identity);
            var pessoa   = _pessoaContext.GetById(usuario.UsuarioModel.IdPessoa);
            var empresas = new List <EmpresaExameModel>();

            if (usuario.RoleUsuario.Equals("SECRETARIO") || usuario.RoleUsuario.Equals("ADM"))
            {
                var trabalhaEstado = _trabalhaEstadoContext.GetByIdPessoa(pessoa.Idpessoa);
                if (trabalhaEstado != null)
                {
                    if (trabalhaEstado.IdEmpresaExame != EmpresaExameModel.EMPRESA_ESTADO_MUNICIPIO)
                    {
                        empresas = new List <EmpresaExameModel>()
                        {
                            _empresaContext.GetById(trabalhaEstado.IdEmpresaExame)
                        }
                    }
                    ;
                    else
                    {
                        var estado = _estadoContext.GetById(trabalhaEstado.IdEstado);
                        empresas = _empresaContext.GetByUF(estado.Uf);
                    }
                }
                else
                {
                    var trabalhaMunicipio = _trabalhaMunicipioContext.GetByIdPessoa(pessoa.Idpessoa);
                    if (trabalhaMunicipio != null)
                    {
                        var municipio = _municipioContext.GetById(trabalhaMunicipio.IdMunicipio);
                        var estado    = _estadoContext.GetById(int.Parse(municipio.Uf));
                        empresas = _empresaContext.GetByUF(estado.Uf);
                    }
                }
            }
            return(empresas);
        }
        public ActionResult IndexApproveAgent(int ehResponsavel)
        {
            // usuario logado
            UsuarioViewModel usuarioAutenticado = _usuarioService.RetornLoggedUser((ClaimsIdentity)User.Identity);
            bool             ehAdmin            = usuarioAutenticado.RoleUsuario.Equals("ADM");
            bool             ehGestor           = usuarioAutenticado.RoleUsuario.Equals("GESTOR");
            bool             ehSecretario       = usuarioAutenticado.RoleUsuario.Equals("SECRETARIO");
            bool             ehListarGestores   = (ehResponsavel == 1);

            var solicitantes = new List <SolicitanteAprovacaoViewModel>();
            var autenticadoTrabalhaEstado    = _pessoaTrabalhaEstadoService.GetByIdPessoa(usuarioAutenticado.UsuarioModel.IdPessoa);
            var autenticadoTrabalhaMunicipio = _pessoaTrabalhaMunicipioService.GetByIdPessoa(usuarioAutenticado.UsuarioModel.IdPessoa);

            if (autenticadoTrabalhaEstado != null || ehAdmin)
            {
                var ehEmpresa = autenticadoTrabalhaEstado.IdEmpresaExame != EmpresaExameModel.EMPRESA_ESTADO_MUNICIPIO;

                if (ehAdmin)
                {
                    solicitantes = _pessoaTrabalhaEstadoService.GetAllGestores();
                }
                else if (ehEmpresa)
                {
                    if (ehSecretario && ehListarGestores)
                    {
                        solicitantes = _pessoaTrabalhaEstadoService.GetAllGestoresEmpresa(autenticadoTrabalhaEstado.IdEmpresaExame);
                    }
                    else if (!ehListarGestores)
                    {
                        solicitantes = _pessoaTrabalhaEstadoService.GetAllNotificadoresEmpresa(autenticadoTrabalhaEstado.IdEmpresaExame);
                    }
                }
                else
                {
                    if (ehSecretario && ehListarGestores)
                    {
                        solicitantes = _pessoaTrabalhaEstadoService.GetAllGestoresEstado(autenticadoTrabalhaEstado.IdEstado);
                    }
                    else if (!ehListarGestores)
                    {
                        solicitantes = _pessoaTrabalhaEstadoService.GetAllNotificadoresEstado(autenticadoTrabalhaEstado.IdEstado);
                    }
                }
            }
            if (autenticadoTrabalhaMunicipio != null || ehAdmin)
            {
                if (ehAdmin)
                {
                    solicitantes = solicitantes.Concat(_pessoaTrabalhaMunicipioService.GetAllGestores()).ToList();
                }
                else
                {
                    if (ehSecretario && ehListarGestores)
                    {
                        solicitantes = _pessoaTrabalhaMunicipioService.GetAllGestoresMunicipio(autenticadoTrabalhaMunicipio.IdMunicipio);
                    }
                    else if (!ehListarGestores)
                    {
                        solicitantes = _pessoaTrabalhaMunicipioService.GetAllNotificadoresMunicipio(autenticadoTrabalhaMunicipio.IdMunicipio);
                    }
                }
                foreach (SolicitanteAprovacaoViewModel solicitante in solicitantes)
                {
                    if (solicitante.Estado.All(char.IsDigit))
                    {
                        solicitante.Estado = _estadoService.GetById(Convert.ToInt32(solicitante.Estado)).Uf;
                    }
                }
            }
            if (TempData["responseOp"] != null)
            {
                ViewBag.responseOp = TempData["responseOp"];
            }

            Tuple <List <SolicitanteAprovacaoViewModel>, List <EmpresaExameModel> > tupleModel = null;

            ViewBag.entidade = (ehResponsavel == 0) ? "Agente" : "Gestor";
            List <EmpresaExameModel> empresas = null;

            if (ehAdmin)
            {
                empresas = _empresaExameService.ListAll();
            }
            else if (autenticadoTrabalhaEstado != null && autenticadoTrabalhaEstado.IdEmpresaExame != EmpresaExameModel.EMPRESA_ESTADO_MUNICIPIO)
            {
                empresas = new List <EmpresaExameModel>()
                {
                    _empresaExameService.GetById(autenticadoTrabalhaEstado.IdEmpresaExame)
                }
            }
            ;
            else if (autenticadoTrabalhaEstado != null && autenticadoTrabalhaEstado.IdEmpresaExame == EmpresaExameModel.EMPRESA_ESTADO_MUNICIPIO)
            {
                empresas = _empresaExameService.ListByUF(_estadoService.GetById(autenticadoTrabalhaEstado.IdEstado).Uf);
            }
            else if (autenticadoTrabalhaMunicipio != null)
            {
                empresas = _empresaExameService.ListByUF(_estadoService.GetById(Convert.ToInt32(_municipioService.GetById(autenticadoTrabalhaMunicipio.IdMunicipio).Uf)).Uf);
            }
            solicitantes = solicitantes.OrderBy(s => s.Nome).ToList();
            if (empresas != null)
            {
                tupleModel = new Tuple <List <SolicitanteAprovacaoViewModel>, List <EmpresaExameModel> >(solicitantes, empresas);
            }
            else
            {
                tupleModel = new Tuple <List <SolicitanteAprovacaoViewModel>, List <EmpresaExameModel> >(solicitantes, null);
            }
            return(View(tupleModel));
        }
Ejemplo n.º 4
0
        public PesquisaPacienteViewModel GetAllPacientesViewModel(PesquisaPacienteViewModel pesquisa)
        {
            var usuario = _usuarioContext.RetornLoggedUser((ClaimsIdentity)User.Identity);
            var pessoaTrabalhaMunicipio = _pessoaTrabalhaMunicipioContext.GetByIdPessoa(usuario.UsuarioModel.IdPessoa);
            var pessoaTrabalhaEstado    = _pessoaTrabalhaEstadoContext.GetByIdPessoa(usuario.UsuarioModel.IdPessoa);

            if (usuario.RoleUsuario.Equals("GESTOR") || usuario.RoleUsuario.Equals("SECRETARIO"))
            {
                if (pessoaTrabalhaMunicipio != null)
                {
                    var municicpio = _municicpioContext.GetById(pessoaTrabalhaMunicipio.IdMunicipio);
                    var estado     = _estadoContext.GetByCodUf(Convert.ToInt32(municicpio.Uf));
                    pesquisa.Exames = _exameContext.GetByCidadeResidenciaPaciente(municicpio.Nome, estado.Uf.ToUpper(), pesquisa.VirusBacteria, pesquisa.DataInicial, pesquisa.DataFinal).ToList();
                }
                if (pessoaTrabalhaEstado != null)
                {
                    if (pessoaTrabalhaEstado.IdEmpresaExame != EmpresaExameModel.EMPRESA_ESTADO_MUNICIPIO)
                    {
                        var empresa = _empresaExameContext.GetById(pessoaTrabalhaEstado.IdEmpresaExame);
                        if (empresa.FazMonitoramento)
                        {
                            pesquisa.Exames = _exameContext.GetByHospital(pessoaTrabalhaEstado.IdEmpresaExame, pesquisa.VirusBacteria, pesquisa.DataInicial, pesquisa.DataFinal).ToList();
                        }
                        else
                        {
                            TempData["mensagemAviso"] = "Essa Funcionalidade Não está Disponível Para Organizações Privadas!";
                            return(new PesquisaPacienteViewModel());
                        }
                    }
                    else
                    {
                        var estado = _estadoContext.GetById(pessoaTrabalhaEstado.IdEstado);
                        pesquisa.Exames = _exameContext.GetByEstadoResidenciaPaciente(estado.Uf.ToUpper(), pesquisa.VirusBacteria, pesquisa.DataInicial, pesquisa.DataFinal).ToList();
                    }
                }
            }

            /*
             * 2º Filtro - filtrando ViewModel por nome/cpf, resultado e exame
             */
            pesquisa.Pesquisa  = pesquisa.Pesquisa ?? "";
            pesquisa.Resultado = pesquisa.Resultado ?? "";

            if (!pesquisa.Pesquisa.Equals(""))
            {
                if (Methods.SoContemLetras(pesquisa.Pesquisa))
                {
                    pesquisa.Exames = pesquisa.Exames.Where(paciente => paciente.Paciente.Nome.ToUpper().Contains(pesquisa.Pesquisa.ToUpper())).ToList();
                }
                else
                {
                    pesquisa.Exames = pesquisa.Exames.Where(paciente => paciente.Paciente.Cpf.ToUpper().Contains(pesquisa.Pesquisa.ToUpper())).ToList();
                }
            }

            if (!pesquisa.Resultado.Equals("") && !pesquisa.Resultado.Equals("Todas as Opçoes"))
            {
                pesquisa.Exames = pesquisa.Exames.Where(paciente => paciente.UltimoResultado.ToUpper().Equals(pesquisa.Resultado.ToUpper())).ToList();
            }

            pesquisa.Exames = pesquisa.Exames.OrderByDescending(ex => ex.DataExame).ToList();
            return(PreencheTotalizadores(pesquisa));
        }
Ejemplo n.º 5
0
        public async Task <IActionResult> SignIn(LoginViewModel login)
        {
            if (ModelState.IsValid)
            {
                var cpf   = Methods.ValidarCpf(login.Cpf) ? Methods.RemoveSpecialsCaracts(login.Cpf) : throw new Exception("CPF Invalido!!");
                var senha = Criptography.GenerateHashString(login.Senha);

                var user = _usuarioService.GetByLogin(cpf, senha);

                if (user != null)
                {
                    // informaçoes pessoais do usuario | adicionar as claims o dado que mais precisar
                    var person   = _pessoaService.GetById(user.IdPessoa);
                    var role     = Methods.ReturnRole(user.TipoUsuario);
                    var trabalha = "";
                    var empresa  = "";

                    if (role != "ADM" || role != "USUARIO")
                    {
                        var trabalhaEstado = _pessoaTrabalhaEstado.GetByIdPessoa(person.Idpessoa);
                        if (trabalhaEstado != null)
                        {
                            trabalha = _estadoService.GetById(trabalhaEstado.IdEstado).Nome;
                            empresa  = _empresaExameService.GetById(trabalhaEstado.IdEmpresaExame).Nome;
                        }
                        else
                        {
                            var trabalhaMunicipio = _pessoaTrabalhaMunicipio.GetByIdPessoa(person.Idpessoa);
                            trabalha = _municipioService.GetById(trabalhaMunicipio.IdMunicipio).Nome;
                        }
                    }

                    var claims = new List <Claim>
                    {
                        new Claim(ClaimTypes.SerialNumber, user.IdUsuario.ToString()),
                        new Claim(ClaimTypes.Name, person.Nome),
                        new Claim(ClaimTypes.StateOrProvince, person.Estado),
                        new Claim(ClaimTypes.Locality, person.Cidade),
                        new Claim(ClaimTypes.UserData, user.Cpf),
                        new Claim(ClaimTypes.Email, user.Email),
                        new Claim(ClaimTypes.NameIdentifier, user.IdPessoa.ToString()),
                        new Claim(ClaimTypes.Role, role),
                        new Claim(ClaimTypes.Dns, trabalha),
                        new Claim(ClaimTypes.Sid, empresa)
                    };

                    // Adicionando uma identidade as claims.
                    var identidade = new ClaimsIdentity(claims, "login");

                    // Propriedades da autenticação.
                    var propriedadesClaim = new AuthenticationProperties
                    {
                        ExpiresUtc = DateTimeOffset.UtcNow.AddDays(1) // Expira em 1 dia
                    };

                    // Logando efetivamente.
                    await HttpContext.SignInAsync(new ClaimsPrincipal(identidade), propriedadesClaim);

                    return(RedirectToAction("Index", "Home"));
                }
            }

            return(RedirectToAction("Index", "Login", new { msg = "error" }));
        }