private bool IscdnPropertyValid() { if (cdnPropertiesModel == null) { cdnPropertiesModel = cdnHelper.GetCdnModelForSite(false); } return(cdnPropertiesModel != null); }
public AwsS3CdnServerHandler() { cdnHelper = ServiceLocator.ServiceProvider.GetService <ICdnHelper>(); cdnPropertiesModel = cdnHelper.GetCdnModelForSite(false); }
public CdnPropertiesModel GetCdnModelForSite(bool updateSiteProperty = true, Item item = null) { CdnPropertiesModel cloudFrontCachevalue = CustomCacheManager.GetCache <CdnPropertiesModel>(Constants.Cache.CloudFrontKey); if (cloudFrontCachevalue != null && !string.IsNullOrEmpty(cloudFrontCachevalue.DefaultCdnDomain)) { if (updateSiteProperty && string.IsNullOrEmpty(Context.Site.Properties[Constants.SiteProperties.CdnDomainUrl])) { UpdateSiteCdnDomainUrl(cloudFrontCachevalue.DefaultCdnDomain); } return(cloudFrontCachevalue); } var cdnFolder = item == null ? Database.GetDatabase(Constants.Path.MasterDb).GetItem(Constants.Template.CdnModuleItem) : item.Database.GetItem(Constants.Template.CdnModuleItem); if (cdnFolder != null && cdnFolder.HasChildren) { Item awsItem = null; awsItem = cdnFolder.GetChildren().FirstOrDefault(f => f.TemplateName == Constants.Template.CloudFrontTemplate && f.Fields != null && f.Fields[Constants.TemplateFields.IsEnabled].IsChecked() && f.Fields[Constants.TemplateFields.EnviromentName].HasValue && f.Fields[Constants.TemplateFields.DefaultCdnDomain].HasValue && f.Fields[Constants.TemplateFields.EnviromentName].Value.Split(',') .Any(a => a.Trim().Equals(WebConfigurationManager.AppSettings["env:define"] ?? string.Empty, StringComparison.OrdinalIgnoreCase))); if (awsItem == null) { awsItem = cdnFolder.GetChildren().FirstOrDefault(f => f.TemplateName == Constants.Template.CloudFrontTemplate && f.Fields != null && f.Fields[Constants.TemplateFields.IsEnabled].IsChecked() && f.Fields[Constants.TemplateFields.DefaultCdnDomain].HasValue && !f.Fields[Constants.TemplateFields.EnviromentName].HasValue); } if (awsItem != null) { var region = awsItem.GetFieldValue(Constants.TemplateFields.Region); var endPoint = Amazon.RegionEndpoint.EnumerableAllRegions .FirstOrDefault(f => f.DisplayName.Equals(region, StringComparison.OrdinalIgnoreCase) || f.SystemName.Equals(region, StringComparison.OrdinalIgnoreCase)); CdnPropertiesModel model = new CdnPropertiesModel() { CdnType = CdnType.CloudFront, DefaultCdnDomain = awsItem.GetFieldValue(Constants.TemplateFields.DefaultCdnDomain), IsActive = true, S3BucketName = awsItem.GetFieldValue(Constants.TemplateFields.S3BucketName), PublicKey = awsItem.GetFieldValue(Constants.TemplateFields.PublicKey), SecretKey = awsItem.GetFieldValue(Constants.TemplateFields.SecretKey), Endpoint = endPoint }; CustomCacheManager.SetCache(Constants.Cache.CloudFrontKey, model); if (updateSiteProperty) { UpdateSiteCdnDomainUrl(cloudFrontCachevalue.DefaultCdnDomain); } return(model); } } return(null); }