Example #1
0
        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);
        }