public ImageOptimizationBackgroundProcessor() { ImageOptimizationConfig imageOptimizationConfig = Config.Get <ImageOptimizationConfig>(); this.batchSize = imageOptimizationConfig.BatchSize; this.enableDetailedLogging = imageOptimizationConfig.EnableDetailLogging; }
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); }
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>(); }