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)); }
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)); }
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)); }
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" })); }