public async Task <IEnumerable <DeleteError> > InvalidateAllValidatedDomains(string labCode) { var list = await LabRepo.GetDomAssignments(labCode); var errList = new List <DeleteError>(); AdalResponse delRes = null; foreach (var item in list) { if (item.AssignedTenantId != null) { delRes = await DeleteDomain(item.DomainName); if (!delRes.Successful) { errList.Add(new DeleteError { DomainName = item.DomainName, ErrorMessage = delRes.Message, Response = delRes, TenantId = item.AssignedTenantId }); } } } return(errList); }
private dynamic GetResult(AdalResponse response) { if (!response.Successful) { return(new { }); } return((dynamic)JsonConvert.DeserializeObject(response.ResponseContent)); }
private async Task <AdalResponse> CallApi(string url, HttpMethod verb = null, string body = null) { CheckInit(); HttpResponseMessage response = null; var res = new AdalResponse { Successful = true }; try { verb = verb ?? HttpMethod.Get; var msg = new HttpRequestMessage(verb, url); //msg.Headers.Add("Authorization", "bearer " + _token); CancellationToken _cancel = new CancellationToken(); await _serviceCreds.ProcessHttpRequestAsync(msg, _cancel); if (body != null) { msg.Content = new StringContent(body, Encoding.UTF8, "application/json"); } using (var client = new HttpClient()) { client.Timeout = TimeSpan.FromSeconds(300); client.DefaultRequestHeaders.Add("client-request-id", Guid.NewGuid().ToString()); response = await client.SendAsync(msg); res.ResponseContent = await response.Content.ReadAsStringAsync(); res.StatusCode = response.StatusCode; res.Message = response.ReasonPhrase; if (!response.IsSuccessStatusCode) { res.Successful = false; dynamic serverError = JsonConvert.DeserializeObject(res.ResponseContent); var reason = (response == null ? "N/A" : response.ReasonPhrase); var serverErrorMessage = (serverError.Error == null) ? "N/A" : serverError.Error.Message; res.Message = string.Format("(Server response: {0}. Server detail: {1})", reason, serverErrorMessage); return(res); } } return(res); } catch (Exception ex) { res.Successful = false; res.Message = ex.Message; return(res); } }
/// <summary> /// Remove a validated domain from this tenant /// </summary> /// <param name="domain"></param> /// <returns></returns> public async Task <AdalResponse> DeleteDomain(string domain) { var url = string.Format("https://graph.microsoft.com/v1.0/domains/{0}", domain); var res = await AdalLib.GetResourceAsync(url, _accessToken, HttpMethod.Delete); if (!res.Successful) { var err = new AdalResponse <DomainError>(res); //test to see if the error is around dependency objects if (err.Object.Error.Details.Count() > 0) { if (err.Object.Error.Details.Any(d => d.Code == "ObjectInUse")) { res.Message = "ObjectInUse"; } } } return(res); }