public async Task <bool> HTML_AutenticarUsuario(Pacote_Auth Pacote_AuthWEB) { try { HttpClient URL = new HttpClient(); List <KeyValuePair <string, string> > pairs = Pacote_AuthWEB.ListarAtributos(); var content = new FormUrlEncodedContent(pairs); URL.Timeout = TimeSpan.FromSeconds(3); Task <HttpResponseMessage> Conteudo = URL.PostAsync(_Servidor, content); await Task.WhenAll(Conteudo); if (Conteudo.Result.IsSuccessStatusCode) { string Dados = await Conteudo.Result.Content.ReadAsStringAsync(); Pacote_Base PB = JsonConvert.DeserializeObject <Pacote_Base>(Dados); if (PB.Pacote != TipoPacote.Error) { Pacote_Autenticacao = JsonConvert.DeserializeObject <Pacote_Auth>(PB.Conteudo);; Pacote_Autenticacao.Autenticado = true; Pacote_Autenticacao.Error = false; return(true); } else { Error = JsonConvert.DeserializeObject <Pacote_Error>(PB.Conteudo); return(false); } } else { Pacote_AuthWEB.Autenticado = false; Pacote_AuthWEB.Error = true; Error = new Pacote_Error(); Error.Error = true; Error.Mensagem = "A conexão com o URi não foi estabelecida com sucesso!"; return(false); } } catch (Exception e) { TratadorErros(e, GetType().Name); //Classe Tratador de erros tem métodos para tratar erro a esse nível return(false); } }
/** * Data: 02/04/2019 * Transforma uma string em pacote para acesso. * Return: string */ private dynamic DeserializarPacote(string Pacote) { try { Base = JsonConvert.DeserializeObject <Pacote_Base>(Pacote); switch (Base.Pacote) { case TipoPacote.Auth: Pacote_Auth Auth = JsonConvert.DeserializeObject <Pacote_Auth>(Base.Conteudo); return(Auth); case TipoPacote.Comando: Pacote_Comando Exec = JsonConvert.DeserializeObject <Pacote_Comando>(Base.Conteudo); return(Exec); case TipoPacote.File: Pacote_File File = JsonConvert.DeserializeObject <Pacote_File>(Base.Conteudo); return(File); case TipoPacote.FileSystem: Pacote_SystemFile FileSystem = JsonConvert.DeserializeObject <Pacote_SystemFile>(Base.Conteudo); return(FileSystem); case TipoPacote.Echo: Pacote_PingEcho Ping = JsonConvert.DeserializeObject <Pacote_PingEcho>(Base.Conteudo); return(Ping); case TipoPacote.Replay: Pacote_PingReplay Replay = JsonConvert.DeserializeObject <Pacote_PingReplay>(Base.Conteudo); return(Replay); case TipoPacote.Inicializacao: Pacote_Inicializacao Inicializacao = JsonConvert.DeserializeObject <Pacote_Inicializacao>(Base.Conteudo); return(Inicializacao); default: throw new Exception("Tentativa de envio de pacote não reconhecida pelo sistema."); } } catch (Exception e) { TratadorErros(e, this.GetType().Name);; return(false); } }
/** * Data: 22/03/2019 * Transforma o pacote em string. * Return: string */ public string SerializarPacote(ITipoPacote Conteudo) { try { string Pct = JsonConvert.SerializeObject(Conteudo); Pacote_Base PctBase = new Pacote_Base(); PctBase.Pacote = Conteudo.GetTipoPacote(); PctBase.Conteudo = Pct; string SerializarPacote = JsonConvert.SerializeObject(PctBase); return(SerializarPacote); } catch (Exception e) { TratadorErros(e, this.GetType().Name);; return(null); } }
/** * <summary> * Converte uma string em uma classe de pacote. * </summary> */ private dynamic DeserializarPacote(string Pacote) { Pacote_Base Base = JsonConvert.DeserializeObject <Pacote_Base>(Pacote); switch (Base.Pacote) { case TipoPacote.Auth: Pacote_Auth Auth = JsonConvert.DeserializeObject <Pacote_Auth>(Base.Conteudo); return(Auth); case TipoPacote.Comando: Pacote_Comando Exec = JsonConvert.DeserializeObject <Pacote_Comando>(Base.Conteudo); return(Exec); case TipoPacote.File: Pacote_File File = JsonConvert.DeserializeObject <Pacote_File>(Base.Conteudo); return(File); case TipoPacote.FileSystem: Pacote_SystemFile FileSystem = JsonConvert.DeserializeObject <Pacote_SystemFile>(Base.Conteudo); return(FileSystem); case TipoPacote.Echo: Pacote_PingEcho Ping = JsonConvert.DeserializeObject <Pacote_PingEcho>(Base.Conteudo); return(Ping); case TipoPacote.Replay: Pacote_PingReplay Replay = JsonConvert.DeserializeObject <Pacote_PingReplay>(Base.Conteudo); return(Replay); case TipoPacote.Inicializacao: Pacote_Inicializacao Inicializacao = JsonConvert.DeserializeObject <Pacote_Inicializacao>(Base.Conteudo); return(Inicializacao); } return(null); }