Ejemplo n.º 1
0
        public ImageOptimizationBackgroundProcessor()
        {
            ImageOptimizationConfig imageOptimizationConfig = Config.Get <ImageOptimizationConfig>();

            this.batchSize             = imageOptimizationConfig.BatchSize;
            this.enableDetailedLogging = imageOptimizationConfig.EnableDetailLogging;
        }
Ejemplo n.º 2
0
        internal static ScheduledTask NewInstance()
        {
            var  disableImageOptimizationAppSetting = System.Configuration.ConfigurationManager.AppSettings[ImageOptimizationConstants.DisableImageOptimizationAppSettingKey];
            bool disableImageOptimization;

            if (bool.TryParse(disableImageOptimizationAppSetting, out disableImageOptimization) && disableImageOptimization)
            {
                return(null);
            }

            if (ObjectFactory.GetArgsByName(typeof(ImageOptimizationConfig).Name, typeof(ImageOptimizationConfig)) == null)
            {
                return(null);
            }

            ImageOptimizationConfig imageOptimizationConfig = Config.Get <ImageOptimizationConfig>();

            if (!imageOptimizationConfig.EnableImageOptimization)
            {
                return(null);
            }

            if (!ImageOptimizationProcessorsHelper.ValidateImageOptimizationProcessorsConfigurations())
            {
                return(null);
            }

            // Schedule a task only if required IsOptimized field is present
            Type            contentType     = typeof(Image);
            MetadataManager metadataManager = MetadataManager.GetManager();
            MetaType        metaType        = metadataManager.GetMetaType(contentType);

            if (metaType != null)
            {
                MetaField metaField = metaType.Fields.SingleOrDefault(f => string.Compare(f.FieldName, ImageOptimizationConstants.IsOptimizedFieldName, true, CultureInfo.InvariantCulture) == 0);

                if (metaField == null)
                {
                    return(null);
                }
            }

            string crontabConfig = imageOptimizationConfig.ImageOptimizationCronSpec;

            if (string.IsNullOrEmpty(crontabConfig))
            {
                crontabConfig = ImageOptimizationTask.DefaultCronExpression;
            }

            ImageOptimizationTask task = new ImageOptimizationTask()
            {
                Id               = Guid.NewGuid(),
                ExecuteTime      = DateTime.UtcNow,
                ScheduleSpecType = CrontabScheduleCalculator.ScheduleSpecType,
                ScheduleSpec     = crontabConfig
            };

            return(task);
        }
        public void Post(Guid parentId, Guid imageId)
        {
            ImageOptimizationConfig imageOptimizationConfig = Config.Get <ImageOptimizationConfig>();

            var optimizerSettings = imageOptimizationConfig.Optimizers[imageOptimizationConfig.DefaultOptimizer];

            ImageOptimizerBase imageOptimizer = (ImageOptimizerBase)Activator.CreateInstance(optimizerSettings.OptimizerType.Assembly.FullName, optimizerSettings.OptimizerType.FullName).Unwrap();

            imageOptimizer.OptimizeImage(parentId, imageId);
        }
Ejemplo n.º 4
0
        private static void Content_Action(IDataEvent @event)
        {
            try
            {
                Type   contentType  = @event.ItemType;
                Guid   itemId       = @event.ItemId;
                string providerName = @event.ProviderName;
                string language     = @event.GetLanguage();

                if (!ValidateEventType(@event))
                {
                    return;
                }

                if (ObjectFactory.GetArgsByName(typeof(ImageOptimizationConfig).Name, typeof(ImageOptimizationConfig)) == null)
                {
                    return;
                }

                ImageOptimizationConfig imageOptimizationConfig = Config.Get <ImageOptimizationConfig>();

                LibrariesManager manager = ManagerBase.GetMappedManager(contentType, providerName) as LibrariesManager;

                if (manager == null)
                {
                    return;
                }

                var   item  = manager.GetItemOrDefault(contentType, itemId);
                Image image = item as Image;

                if (image.Status == ContentLifecycleStatus.Master)
                {
                    var imageTemp = manager.Lifecycle.CheckOut(image) as Image;
                    imageTemp.SetValue(ImageOptimizationConstants.IsOptimizedFieldName, Startup.hassImageOptimizationProcessorEnabled);
                    manager.Lifecycle.CheckIn(imageTemp);
                }
                else if (image.Status == ContentLifecycleStatus.Temp)
                {
                    image.SetValue(ImageOptimizationConstants.IsOptimizedFieldName, Startup.hassImageOptimizationProcessorEnabled);
                    Image master = manager.Lifecycle.GetMaster(image) as Image;
                    master.SetValue(ImageOptimizationConstants.IsOptimizedFieldName, Startup.hassImageOptimizationProcessorEnabled);
                }

                manager.SaveChanges();
            }
            catch (Exception ex)
            {
                Log.Write(string.Format("Error occurred while setting image optimization field value: {0}", ex.Message), ConfigurationPolicy.ErrorLog);
            }
        }
        public override void ExecuteTask()
        {
            ImageOptimizationConfig imageOptimizationConfig = Config.Get <ImageOptimizationConfig>();

            var optimizerSettings = imageOptimizationConfig.Optimizers[imageOptimizationConfig.DefaultOptimizer];

            ImageOptimizerBase imageOptimizer = (ImageOptimizerBase)Activator.CreateInstance(optimizerSettings.OptimizerType.Assembly.FullName, optimizerSettings.OptimizerType.FullName).Unwrap();

            _itemsCount = imageOptimizer.GetItemsCount(this.AlbumId);

            imageOptimizer.OnImageOptimized += new ImageOptimizerBase.ImageOptimizedHandler(Image_Optimized);

            imageOptimizer.OptimizeAlbum(this.AlbumId);
        }
 public ImageOptimizerBase()
 {
     _config = Config.Get <ImageOptimizationConfig>();
 }