static async Task <AOLToken> CreatUserTokenAsync(AOLUser user) { HttpResponseMessage rsp = await APIClient.Instance().Client.PostAsJsonAsync($"{userroot}/Token", user); rsp.EnsureSuccessStatusCode(); //remove credentials string tokenString = await rsp.Content.ReadAsStringAsync(); AOLToken token = new AOLToken { Token = JsonConvert.DeserializeObject <string>(tokenString), Expiration = rsp.Content.Headers.Expires ?? null }; return(token); }
static async Task <ReportFile> RunClientAsync(string accession, string fileType, int timezone, AOLToken sessionToken) { try { if (sessionToken == null || !sessionToken.IsValidToken) { //invalid session token then create one sessionToken = await CreatUserTokenAsync(new AOLUser()); ReportFile readFile = await GetLabReportFileAsync(fileType, sessionToken.Token, accession, timezone); readFile.SessionToken = sessionToken; return(readFile); } return(await GetLabReportFileAsync(fileType, sessionToken.Token, accession, timezone)); } catch (HttpRequestException hre) { throw new Exception($"Message: {hre.Message}/r/nStackTrace: {hre.StackTrace}/r/nSource:{hre.Source}", hre.InnerException); } catch (Exception ex) { throw new Exception($"Message: {ex.Message}/r/nStackTrace: {ex.StackTrace}/r/nSource:{ex.Source}", ex.InnerException); } }
public static ReportFile GetReportContent(string accession, string fileType, int timezone, AOLToken sessionToken) { Task <ReportFile> content = Task.Run <ReportFile>( async() => await RunClientAsync(accession, fileType, timezone, sessionToken)); content.Wait(); return(content.Result); }