public async Task <Response> GetPhoto <TPhoto>(string userId) where TPhoto : new() { //https://graph.microsoft.com/v1.0/me/photos/48x48/$value Response ResultResponse = new Response(); this.AccessToken = AccessTokenConfig.GetAccessToken(AppClient); ResultResponse = await ExecuteLocalRequest(); //var stream = ResultResponse.HttpResponse.Content.ReadAsStreamAsync(); // var pic = Convert.ToBase64String(ResultResponse.HttpResponse.Content); return(ResultResponse); //Função local que executa a requisição das infromações do usuário. //Essa função só é visivel nesse metodo. async Task <Response> ExecuteLocalRequest() { using (var client = new RESTService <HttpRestClientNative>(getUserEndPoint("/photos/48x48/$value", userId))) { //Headers necessário para obtenção da foto.Content-Type e Authrization Token //client.AddHeader("Content-Type", "image/jpg"); client.AddHeader("Authorization", "Bearer " + this.AccessToken.access_token); return(await client.Get <TPhoto>()); } } }
public static AccessToken GetAccessToken(AppClient appClient) { AccessToken result = new AccessToken(); result.access_token = ObtemToken(); if (!string.IsNullOrEmpty(result.access_token)) { return(result); } try { using (var client = new RESTService <HttpRestClientRestSharp>(string.Format("https://login.microsoftonline.com/{0}/oauth2/v2.0/token", appClient.TenanId))) { client.AddHeader("Content-Type", "application /x-www-form-urlencoded"); var response = client.Post <AccessToken>(appClient.QueryString).Result; result = response.Data; SalvarToken(result.access_token); } } catch (Exception ex) { result.access_token = "Excepion : " + ex.Message; } return(result); }
public async Task <Response> GetUser <TUser>() where TUser : new() { TUser result = new TUser(); Response ResultResponse = new Response(); try { //Efetua a requisição invocando a função local ExecuteLocalRequest() ResultResponse = await ExecuteLocalRequest(); //Trata o retorno da requisição. if (ResultResponse.Status == HttpStatusCode.OK) { var data = ResultResponse.Data; result = data; } else { if (ResultResponse.Status == HttpStatusCode.Unauthorized) { //Token invalido, requisita um novo AccessToken = AccessTokenConfig.GetAccessToken(AppClient); //Executa novamente a consulta com o novo Token ResultResponse = await ExecuteLocalRequest(); } else { return(ResultResponse); } } //Função local que executa a requisição das infromações do usuário. //Essa função só é visivel nesse metodo. async Task <Response> ExecuteLocalRequest() { this.EndPoint = string.Empty; using (var client = new RESTService <HttpRestClientRestSharp>(getUserEndPoint())) { client.AddHeader("Authorization", "Bearer " + this.AccessToken.access_token); return(await client.Get <TUser>()); } } } catch { } return(ResultResponse); }
public async Task <Response> GetMessages <TMessage>() where TMessage : new() { List <TMessage> result = new List <TMessage>(); Response ResultResponse = new Response(); try { //Efetua a requisição invocando a função local ExecuteLocalRequest() ResultResponse = await ExecuteLocalRequest(); //Trata o retorno da requisição. if (ResultResponse.Status == HttpStatusCode.OK) { var data = ResultResponse.Data; var objeto = JSON.StringToObject <TMessage>(ResultResponse.HttpResponse.Content); //result.Add(); ResultResponse.Data = result; } else { if (ResultResponse.Status == HttpStatusCode.Unauthorized) { //Token invalido, requisita um novo AccessToken = AccessTokenConfig.GetAccessToken(AppClient); //Executa novamente a consulta com o novo Token ResultResponse = await ExecuteLocalRequest(); //var data = ResultResponse.Data; var objeto = JSON.StringToObject <dynamic>(ResultResponse.HttpResponse.Content); ResultResponse.Data = objeto; //result.Add(JSON.StringToObject<TMessage>(ResultResponse.HttpResponse.Content)); //ResultResponse.Data = result; } else { return(ResultResponse); } } //Função local que executa a requisição das infromações do usuário. //Essa função só é visivel nesse metodo. async Task <Response> ExecuteLocalRequest() { this.EndPoint = this.EndPoint ?? $"/messages"; using (var client = new RESTService <HttpRestClientRestSharp>(getUserEndPoint())) { //Headers necessário para obtenção da foto.Content-Type e Authrization Token //client.AddHeader("Content-Type", "image/jpg"); client.AddHeader("Authorization", "Bearer " + this.AccessToken.access_token); return(await client.Get <TMessage>()); } } } catch { } return(ResultResponse); }