private void ItemSaveOnMediaTemplate(Item item)
 {
     if (item.TemplateID.Equals(new Guid("{0397DCCC-2BEA-4E1A-918C-051A9ED4D340}")))
     {
         CustomCacheManager.ClearAllCache(Constants.Cache.CloudFrontKey);
     }
 }
Ejemplo n.º 2
0
        public static void Main(string[] args)
        {
            var customCacheManager = new CustomCacheManager();

            customCacheManager.Add("Aditya Magotra", "Name", 20);

            var getKey = customCacheManager.Get <string>("Name");

            Console.WriteLine(getKey);
            Console.ReadLine();
        }
        public void CanCreateCustomCacheManager()
        {
            CustomCacheManagerData data = new CustomCacheManagerData("name", typeof(CustomCacheManager));

            data.Attributes[MockCustomStorageBackingStore.AttributeKey] = "value1";
            settings.CacheManagers.Add(data);

            IServiceLocator container = EnterpriseLibraryContainer.CreateDefaultContainer(configurationSource);

            CustomCacheManager createdObject = (CustomCacheManager)container.GetInstance <ICacheManager>("name");

            Assert.IsNotNull(createdObject);
            Assert.AreEqual("value1", createdObject.customValue);
        }
        public void CheckLifetime()
        {
            CustomCacheManagerData data = new CustomCacheManagerData("name", typeof(CustomCacheManager));

            settings.CacheManagers.Add(data);

            CustomCacheManager createdObject = null;

            IServiceLocator container = EnterpriseLibraryContainer.CreateDefaultContainer(configurationSource);

            createdObject = (CustomCacheManager)container.GetInstance <ICacheManager>("name");
            Assert.IsFalse(createdObject.wasDisposed);

            container.Dispose();
            Assert.IsTrue(createdObject.wasDisposed);
        }
Ejemplo n.º 5
0
        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);
        }
 public void ClearCdnCache(object sender, EventArgs args)
 {
     CustomCacheManager.ClearAllCache(Constants.Cache.CloudFrontKey);
 }