예제 #1
0
        public async Task <bool> Logar(Login login)
        {
            try
            {
                var client  = new RestClient("http://apresentacao.attps.com.br/AMD/HMP/Servico/Autenticacao/oauth2/token");
                var request = new RestRequest(Method.POST);
                request.AddHeader("postman-token", "4ae78b2f-a51d-8c65-5ed3-fa83d9178d49");
                request.AddHeader("cache-control", "no-cache");
                request.AddHeader("content-type", "application/x-www-form-urlencoded");
                request.AddParameter("application/x-www-form-urlencoded", "Client_id=0DB58563-5073-47AF-BBDF-3BFF2971D808&client_secret=X924yEpQGPUZejLjVt67NmCRgwck8sqGrfANwze3dYS4TucFx9pb6BDXHs8sunXv&username="******"&password="******"&grant_type=password", ParameterType.RequestBody);
                var response = await client.ExecuteTaskAsync <RestResponse <CurrentUser> >(request);

                if (response.StatusDescription == "OK")
                {
                    CurrentUser currentUser = SimpleJson.DeserializeObject <CurrentUser>(response.Content);

                    GlobalVariablesManager.SetApplicationCurrentProperty("TOKEN", string.Format("{0} {1}", currentUser.Token_Type, currentUser.Access_Token));

                    return(true);
                }

                return(false);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
예제 #2
0
        public static void LoadSettings()
        {
            if (!GlobalVariablesManager.Exists(key))
            {
                return;
            }

            string str = (string)GlobalVariablesManager.GetValue(key);

            byte[] buffer = System.Text.Encoding.Default.GetBytes(str);

            TradeTweetSettings ts = null;

            using (Stream stream = new MemoryStream())
            {
                stream.Write(buffer, 0, buffer.Length);
                stream.Position = 0;
                DataContractSerializer deserializer = new DataContractSerializer(typeof(TradeTweetSettings));
                ts = deserializer.ReadObject(stream) as TradeTweetSettings;
            }

            if (ts != null)
            {
                ast       = ts.ast;
                atn       = ts.atn;
                autoTweet = ts.autoTweet;
                Set       = ts.Set;
                key       = ts.key;
            }
        }
예제 #3
0
        public async Task Sair()
        {
            try
            {
                //
                Instance.CancelaPesquisaChamado();

                //
                using (var db = new Database())
                {
                    await db.LimpaTabela("BHJetMotorista");
                };

                // Variaveis
                Instance.IDProfissional       = null;
                Instance.IDCorridaAtendimento = null;
                Instance.StatusAplicatico     = StatusAplicativoEnum.Pausado;

                //
                await AlteraDisponibilidade();

                //
                GlobalVariablesManager.SetApplicationCurrentProperty(GlobalVariablesManager.VariaveisGlobais.DadosCorridaPesquisada, null);
            }
            finally
            {
                instance = null;
            }
        }
예제 #4
0
        public static void SaveSettings()
        {
            TradeTweetSettings tts = new TradeTweetSettings()
            {
                ast       = ast,
                atn       = atn,
                autoTweet = autoTweet,
                Set       = Set,
                key       = key
            };

            var str = string.Empty;

            using (MemoryStream memoryStream = new MemoryStream())
                using (StreamReader reader = new StreamReader(memoryStream))
                {
                    DataContractSerializer serializer = new DataContractSerializer(typeof(TradeTweetSettings));
                    serializer.WriteObject(memoryStream, tts);
                    memoryStream.Position = 0;
                    string res = reader.ReadToEnd();

                    GlobalVariablesManager.SetValue(key, res, VariableLifetime.SaveFile);
                    GlobalVariablesManager.Flush();
                }
        }
예제 #5
0
 public void CancelaPesquisaChamado()
 {
     if (Instance.CancelaPesquisa != null)
     {
         Instance.CancelaPesquisa.Cancel();
     }
     UsuarioAutenticado.Instance.AlteraDisponibilidade(false, false);
     GlobalVariablesManager.SetApplicationCurrentProperty(GlobalVariablesManager.VariaveisGlobais.DadosCorridaPesquisada, null);
 }
예제 #6
0
        public KeyValuePair <bool, TipoContrato> BuscaCorrida()
        {
            try
            {
                // Busca perfil do usuario
                var perfil = new PerfilMotoristaModel();
                Task.Run(async() =>
                {
                    perfil = await BuscaPerfilMotorista();
                }).Wait();

                // Se existe diaria
                if (perfil != null && perfil.idRegistroDiaria != null)
                {
                    usuarioAutenticado.SetPerfil(perfil);
                    return(new KeyValuePair <bool, TipoContrato>(true, TipoContrato.ContratoLocacao));
                }
                else // Se nao - busca Corrida
                {
                    // Busca Corrida
                    var corrida = new CorridaAbertaModel();
                    Task.Run(async() =>
                    {
                        corrida = await BuscaCorridaAberta();
                    }).Wait();

                    // Corrida
                    if (corrida != null)
                    {
                        // ID Corrida
                        usuarioAutenticado.IDCorridaAtendimento = corrida.ID;

                        // Binding
                        chamadoItem = new ChamadoEncontradoItemViewModel()
                        {
                            NomeCliente    = corrida.NomeCliente,
                            Comissao       = corrida.Comissao.ToString("C"),
                            DestinoInicial = corrida.EnderecoCompleto
                        };
                        GlobalVariablesManager.SetApplicationCurrentProperty(GlobalVariablesManager.VariaveisGlobais.DadosCorridaPesquisada, chamadoItem);

                        // Return
                        return(new KeyValuePair <bool, TipoContrato>(true, TipoContrato.ChamadosAvulsos));
                    }
                    else
                    {
                        usuarioAutenticado.IDCorridaAtendimento = null;
                        return(new KeyValuePair <bool, TipoContrato>(false, TipoContrato.ChamadosAvulsos));
                    }
                }
            }
            finally
            {
            }
        }
예제 #7
0
    // Construtor da classe
    public GlobalVariablesManager()
    {
        // Se a instância não for nula, é porque já temos instância
        if (instance != null)
        {
            return;
        }

        // Se não for nula, a instância a usar é esta
        instance = this;
    }
예제 #8
0
        public void Carrega()
        {
            // Load
            Loading = true;

            // Busca Dados Corrida pesquisada
            var dadosCorridaPesquisa = GlobalVariablesManager.GetApplicationCurrentProperty(GlobalVariablesManager.VariaveisGlobais.DadosCorridaPesquisada) as ChamadoEncontradoItemViewModel;

            if (dadosCorridaPesquisa != null)
            {
                chamadoItem = dadosCorridaPesquisa;
            }
        }
예제 #9
0
        public bool Logar(Login login)
        {
            try
            {
                var autenticado = WebServiceBase <CurrentUser> .RequestAsync("Autenticacao/oauth2/token", Base.RequestType.Post, JsonHelper <Login> .ObjectToJson(login), 2, "application/x-www-form-urlencoded").Result;

                GlobalVariablesManager.SetApplicationCurrentProperty("token", "bearer " + autenticado.Access_Token);
                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
예제 #10
0
        public TokenModel Autenticar(string usuario, string senha)
        {
            // HttpClient
            using (var httpClient = new HttpClient()
            {
                BaseAddress = new Uri(ServicoRotas.Base)
            })
            {
                // Parametros
                var parametros = new KeyValuePair <string, string>[]
                {
                    new KeyValuePair <string, string>("username", usuario),
                    new KeyValuePair <string, string>("password", CriptografiaUtil.Criptografa(senha, "ch4v3S3m2nt3BHJ0e1tA9u4t4hu1s33r")),
                    new KeyValuePair <string, string>("grant_type", "password"),
                    new KeyValuePair <string, string>("Modulo", "Mobile"),
                    new KeyValuePair <string, string>("area", "2"),
                };

                // Requisiçao
                var requisicao = new HttpRequestMessage(HttpMethod.Post, ServicoRotas.Base + ServicoRotas.Autenticacao.PostAutenticar)
                {
                    Content = new FormUrlEncodedContent(parametros)
                };

                // Resposta
                var resposta = httpClient.SendAsync(requisicao).Result;

                // Content
                var conteudo = resposta.Content;

                // Validação
                switch (resposta.StatusCode)
                {
                case System.Net.HttpStatusCode.OK:
                    // Deserialize usuario autentidado
                    var autenticado = JsonConvert.DeserializeObject <TokenModel>(conteudo.ReadAsStringAsync().Result);
                    // Sessao
                    GlobalVariablesManager.SetApplicationCurrentProperty(GlobalVariablesManager.VariaveisGlobais.Token, autenticado.access_token);
                    // Return model
                    return(autenticado);

                case System.Net.HttpStatusCode.Unauthorized:
                    throw new ErrorException("Usuário desativado ou sem permissão de acesso.");

                default:
                    throw new ErrorException(DeserializaResponse(resposta, Mensagem.Erro.ErroPadrao));
                }
            }
        }
예제 #11
0
 public void FinalizaAtendimento()
 {
     Instance.IDCorridaAtendimento = null;
     Instance.StatusAplicatico     = StatusAplicativoEnum.Pesquisando;
     GlobalVariablesManager.SetApplicationCurrentProperty(GlobalVariablesManager.VariaveisGlobais.DadosCorridaPesquisada, null);
 }
예제 #12
0
        public static async Task <T> RequestAsync(string URL, RequestType requestType = RequestType.Get, string requestBody = null, int triesNumber = 0, string contentType = "application/json")
        {
            T tReturn = null;

            for (int i = 0; i <= triesNumber; i++)
            {
                try
                {
                    using (HttpClient client = new HttpClient())
                    {
                        HttpResponseMessage response = new HttpResponseMessage();

                        client.BaseAddress = new Uri(BaseUrl);

                        if (!string.IsNullOrEmpty(Token))
                        {
                            client.DefaultRequestHeaders.Add("Authorization", (string)GlobalVariablesManager.GetApplicationCurrentProperty("token"));
                        }

                        HttpContent httpContent = new StringContent(requestBody, Encoding.UTF8, contentType);

                        switch (requestType)
                        {
                        case RequestType.Get:
                            response = await client.GetAsync(URL);

                            break;

                        case RequestType.Post:
                            response = await client.PostAsync(URL, httpContent);

                            break;

                        case RequestType.Put:
                            response = await client.PutAsync(URL, httpContent);

                            break;

                        case RequestType.Delete:
                            response = await client.DeleteAsync(URL);

                            break;

                        default:
                            break;
                        }

                        if (response.IsSuccessStatusCode)
                        {
                            string responseString = await response.Content.ReadAsStringAsync();

                            var objetoRetorno = JsonHelper <T> .JsonToObject(responseString);


                            tReturn = objetoRetorno;
                        }
                        else
                        {
                            if (response.StatusCode == System.Net.HttpStatusCode.RequestTimeout)
                            {
                                if (i == triesNumber)
                                {
                                    throw new Exception("Tempo limite atingido");
                                }
                            }
                            else if (response.StatusCode == System.Net.HttpStatusCode.BadRequest)
                            {
                                throw new Exception("Serviço não encontrado");
                            }
                            else if (response.StatusCode == System.Net.HttpStatusCode.InternalServerError)
                            {
                                if (i == triesNumber)
                                {
                                    throw new Exception("Serviço indisponível no momento");
                                }
                            }
                            else
                            {
                                throw new Exception("Falha no acesso!");
                            }
                        }
                    }
                }
                catch (JsonException x)
                {
                    throw x;
                }
                catch (Exception x)
                {
                    throw x;
                }
            }

            return(tReturn);
        }