private LabResponse GetLabResponseFromApi(UserQuery query) { //Fetch user string result = RunQuery(query); if (string.IsNullOrWhiteSpace(result)) { throw new LabUserNotFoundException(query, "No lab user with specified parameters exists"); } LabResponse response = JsonConvert.DeserializeObject <LabResponse>(result); LabUser user = JsonConvert.DeserializeObject <LabUser>(result); if (!string.IsNullOrEmpty(user.HomeTenantId) && !string.IsNullOrEmpty(user.HomeUPN)) { user.InitializeHomeUser(); } return(response); }
private LabResponse GetLabResponseFromAPI(UserQueryParameters query) { HttpClient webClient = new HttpClient(); IDictionary <string, string> queryDict = new Dictionary <string, string>(); //Disabled for now until there are tests that use it. queryDict.Add("mamca", "false"); queryDict.Add("mdmca", "false"); //Building user query if (query.FederationProvider != null) { queryDict.Add("federationProvider", query.FederationProvider.ToString()); } queryDict.Add("mam", query.IsMamUser != null && (bool)(query.IsMamUser) ? "true" : "false"); queryDict.Add("mfa", query.IsMfaUser != null && (bool)(query.IsMfaUser) ? "true" : "false"); if (query.Licenses != null && query.Licenses.Count > 0) { queryDict.Add("license", query.Licenses.ToArray().ToString()); } queryDict.Add("isFederated", query.IsFederatedUser != null && (bool)(query.IsFederatedUser) ? "true" : "false"); if (query.UserType != null) { queryDict.Add("usertype", query.UserType.ToString()); } queryDict.Add("external", query.IsExternalUser != null && (bool)(query.IsExternalUser) ? "true" : "false"); if (query.B2CIdentityProvider == B2CIdentityProvider.Local) { queryDict.Add("b2cProvider", "local"); } if (query.B2CIdentityProvider == B2CIdentityProvider.Facebook) { queryDict.Add("b2cProvider", "facebook"); } if (query.B2CIdentityProvider == B2CIdentityProvider.Google) { queryDict.Add("b2cProvider", "google"); } UriBuilder uriBuilder = new UriBuilder("http://api.msidlab.com/api/user"); uriBuilder.Query = string.Join("&", queryDict.Select(x => x.Key + "=" + x.Value.ToString())); //Fetch user string result = webClient.GetStringAsync(uriBuilder.ToString()).GetAwaiter().GetResult(); if (string.IsNullOrWhiteSpace(result)) { throw new LabUserNotFoundException(query, "No lab user with specified parameters exists"); } LabResponse response = JsonConvert.DeserializeObject <LabResponse>(result); LabUser user = response.User; user = JsonConvert.DeserializeObject <LabUser>(result); if (!string.IsNullOrEmpty(user.HomeTenantId) && !string.IsNullOrEmpty(user.HomeUPN)) { user.InitializeHomeUser(); } return(response); }