public static async Task <LabResponse> GetLabUserDataAsync(UserQuery query)
        {
            if (s_userCache.ContainsKey(query))
            {
                Trace.WriteLine("Lab user cache hit. Selected user: "******"Found no users for the given query.");
            }

            s_userCache.Add(query, response);
            Debug.WriteLine("User cache miss. Returning user from lab: " + response.User.Upn);

            return(response);
        }
        public static async Task <LabResponse> GetLabUserDataAsync(UserQuery query)
        {
            if (s_userCache.ContainsKey(query))
            {
                Debug.WriteLine("User cache hit");
                return(s_userCache[query]);
            }

            var user = await s_labService.GetLabResponseAsync(query).ConfigureAwait(false);

            if (user == null)
            {
                throw new LabUserNotFoundException(query, "Found no users for the given query.");
            }

            Debug.WriteLine("User cache miss");
            s_userCache.Add(query, user);

            return(user);
        }
        // only set up for this format of query: {URI-scheme}://{URI-host}/{resource-path}/UPN
        public static async Task <LabResponse> GetLabUserDataForSpecificUserAsync(string upn)
        {
            string result = await s_labService.GetLabResponseAsync(LabApiConstants.LabEndPoint + "/" + upn).ConfigureAwait(false);

            return(s_labService.CreateLabResponseFromResultStringAsync(result).Result);
        }