Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
            }
        }
Beispiel #3
0
        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);
        }