public UserDetails GetUserDetails() { var umbracoFlareConfigModel = _configurationService.LoadConfigurationFile(); var userDetails = new UserDetails(); if (!umbracoFlareConfigModel.ApiKey.HasValue() || !umbracoFlareConfigModel.AccountEmail.HasValue()) { return(userDetails); } using (var client = new HttpClient()) { client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(ApplicationConstants.ContentTypeApplicationJson)); const string url = CloudflareApiBaseUrl + CloudflareApiUserEndpoint; var request = new HttpRequestMessage { RequestUri = new Uri(url), Method = HttpMethod.Get }; AddRequestHeaders(request); try { var responseContent = client.SendAsync(request).Result.Content; userDetails = responseContent.ReadAsAsync <UserDetails>().Result; if (userDetails.Success) { return(userDetails); } } catch (Exception e) { _umbracoLoggingService.LogError <ICloudflareApiClient>($"Could not get the user details for user email {umbracoFlareConfigModel.AccountEmail}", e); return(userDetails); } _umbracoLoggingService.LogWarn <ICloudflareApiClient>($"The request for <<GetUserDetails>> was not successful for user email {umbracoFlareConfigModel.AccountEmail}"); return(userDetails); } }
public UmbracoFlareConfigModel LoadConfigurationFile() { try { var configurationFilePath = HttpContext.Current.Server.MapPath(ApplicationConstants.ConfigurationFile.ConfigurationFilePath); var serializer = new XmlSerializer(typeof(UmbracoFlareConfigModel)); using (var reader = new StreamReader(configurationFilePath)) { return((UmbracoFlareConfigModel)serializer.Deserialize(reader)); } } catch (Exception e) { _umbracoLoggingService.LogError <IConfigurationService>($"Could not load the file in this path {ApplicationConstants.ConfigurationFile.ConfigurationFilePath}", e); } return(new UmbracoFlareConfigModel()); }
public Zone GetZoneFilteredByDomain(string domainUrl) { var allowedZones = GetAllowedCloudflareZones(); var filteredZonesByDomainUrl = allowedZones.Where(x => domainUrl.Contains(x.Name)).ToList(); if (filteredZonesByDomainUrl.HasAny()) { return(filteredZonesByDomainUrl.FirstOrDefault()); } var noZoneException = new Exception($"Could not retrieve the zone from cloudflare with the domain of {domainUrl}"); _umbracoLoggingService.LogError <IUmbracoFlareDomainService>(noZoneException.Message, noZoneException); return(null); }