示例#1
0
        public async System.Threading.Tasks.Task <ExameModel> ConsultarSMSExameAsync(PessoaTrabalhaEstadoModel trabalhaEstado,
                                                                                     PessoaTrabalhaMunicipioModel trabalhaMunicipio, ExameModel exame)
        {
            ConfiguracaoNotificarModel configuracaoNotificar = BuscarConfiguracaoSMS(trabalhaEstado, trabalhaMunicipio, exame);

            try
            {
                var    cliente        = new HttpClient();
                string url            = "https://api.smsdev.com.br/get?key=" + configuracaoNotificar.Token + "&action=status&";
                var    uri            = url + "id=" + exame.IdNotificacao;
                var    resultadoEnvio = await cliente.GetStringAsync(uri);

                ConsultaSMSModel jsonResponse = JsonConvert.DeserializeObject <ConsultaSMSModel>(resultadoEnvio);
                if (jsonResponse.Descricao.Equals("RECEBIDA"))
                {
                    exame.StatusNotificacao = ExameModel.NOTIFICADO_SIM;
                    _context.Update(exame);
                    _context.SaveChanges();
                }
                else if (jsonResponse.Descricao.Equals("ERRO"))
                {
                    exame.StatusNotificacao = ExameModel.NOTIFICADO_PROBLEMAS;
                    _context.Update(exame);
                    _context.SaveChanges();
                }
            }
            catch (HttpRequestException)
            {
                return(exame);
            }
            return(exame);
        }
示例#2
0
 private Pessoatrabalhamunicipio ModelToEntity(PessoaTrabalhaMunicipioModel model)
 {
     return(new Pessoatrabalhamunicipio
     {
         IdMunicipio = model.IdMunicipio,
         IdPessoa = model.IdPessoa,
         EhResponsavel = Convert.ToByte(model.EhResponsavel),
         EhSecretario = Convert.ToByte(model.EhSecretario),
         SituacaoCadastro = model.SituacaoCadastro
     });
 }
示例#3
0
        public bool Insert(PessoaTrabalhaMunicipioModel pessoaTrabalhaMunicipioModel)
        {
            if (pessoaTrabalhaMunicipioModel != null)
            {
                try
                {
                    _context.Pessoatrabalhamunicipio.Add(ModelToEntity(pessoaTrabalhaMunicipioModel));
                    return(_context.SaveChanges() == 1 ? true : false);
                }
                catch (Exception e)
                {
                    throw new Exception(e.Message);
                }
            }

            return(false);
        }
示例#4
0
        private ConfiguracaoNotificarModel BuscarConfiguracaoSMS(PessoaTrabalhaEstadoModel trabalhaEstado, PessoaTrabalhaMunicipioModel trabalhaMunicipio, ExameModel exame)
        {
            ConfiguracaoNotificarModel configuracaoNotificar = null;

            if (trabalhaEstado != null)
            {
                configuracaoNotificar = BuscarConfiguracaoNotificar(trabalhaEstado.IdEstado, trabalhaEstado.IdEmpresaExame);
            }
            else if (trabalhaMunicipio != null)
            {
                configuracaoNotificar = BuscarConfiguracaoNotificar(trabalhaMunicipio.IdMunicipio);
            }
            if (configuracaoNotificar == null)
            {
                throw new ServiceException("Não possui créditos para notificações por SMS. Por favor entre em contato pelo email [email protected] para saber como usar esse serviço no MonitoraSUS.");
            }
            else if (configuracaoNotificar.QuantidadeSmsdisponivel == 0 && exame.StatusNotificacao.Equals(ExameModel.NOTIFICADO_NAO))
            {
                throw new ServiceException("Não possui créditos para enviar SMS. " +
                                           "Por favor entre em contato pelo email [email protected] se precisar novos créditos.");
            }

            return(configuracaoNotificar);
        }
示例#5
0
        public async System.Threading.Tasks.Task <ExameModel> EnviarSMSResultadoExameAsync(PessoaTrabalhaEstadoModel trabalhaEstado,
                                                                                           PessoaTrabalhaMunicipioModel trabalhaMunicipio, ExameModel exame, PessoaModel pessoa)
        {
            ConfiguracaoNotificarModel configuracaoNotificar = BuscarConfiguracaoSMS(trabalhaEstado, trabalhaMunicipio, exame);

            try
            {
                string mensagem = "[MonitoraSUS]Olá, " + pessoa.Nome + ". ";
                if (exame.Resultado.Equals(ExameModel.RESULTADO_POSITIVO))
                {
                    mensagem += configuracaoNotificar.MensagemPositivo;
                }
                else if (exame.Resultado.Equals(ExameModel.RESULTADO_NEGATIVO))
                {
                    mensagem += configuracaoNotificar.MensagemNegativo;
                }
                else if (exame.Resultado.Equals(ExameModel.RESULTADO_RECUPERADO))
                {
                    mensagem += configuracaoNotificar.MensagemCurado;
                }
                else if (exame.Resultado.Equals(ExameModel.RESULTADO_INDETERMINADO))
                {
                    mensagem += configuracaoNotificar.MensagemIndeterminado;
                }
                else if (exame.Resultado.Equals(ExameModel.RESULTADO_AGUARDANDO))
                {
                    return(exame);
                }
                else if (exame.Resultado.Equals(ExameModel.RESULTADO_IGMIGG))
                {
                    return(exame);
                }

                var    cliente        = new HttpClient();
                string url            = "https://api.smsdev.com.br/send?key=" + configuracaoNotificar.Token + "&type=9&";
                var    uri            = url + "number=" + pessoa.FoneCelular + "&msg=" + mensagem;
                var    resultadoEnvio = await cliente.GetStringAsync(uri);

                ResponseSMSModel jsonResponse = JsonConvert.DeserializeObject <ResponseSMSModel>(resultadoEnvio);
                exame.IdNotificacao     = jsonResponse.Id.ToString();
                exame.StatusNotificacao = ExameModel.NOTIFICADO_ENVIADO;

                _context.Update(exame);
                _context.SaveChanges();


                Configuracaonotificar configura = _context.Configuracaonotificar.Where(s => s.IdConfiguracaoNotificar == configuracaoNotificar.IdConfiguracaoNotificar).FirstOrDefault();
                if (configura != null)
                {
                    configura.QuantidadeSmsdisponivel -= 1;
                    _context.Update(configura);
                }
                return(exame);
            }
            catch (HttpRequestException)
            {
                return(exame);
            }
        }
示例#6
0
 public bool Update(PessoaTrabalhaMunicipioModel pessoaTrabalhaMunicipioModel)
 {
     _context.Update(ModelToEntity(pessoaTrabalhaMunicipioModel));
     return(_context.SaveChanges() == 1 ? true : false);
 }