Esempio n. 1
0
        /// <summary>
        /// Gets the custom options provider.
        /// </summary>
        /// <returns>Custom options provider</returns>
        private ICustomOptionProvider GetCustomOptionsProvider(ICustomOption customOption)
        {
            if (customOption == null)
            {
                return(null);
            }

            return(CustomOptionsProvider.GetProvider(customOption.Identifier));
        }
Esempio n. 2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="MediaManagerModuleDescriptor" /> class.
        /// </summary>
        public MediaManagerModuleDescriptor(ICmsConfiguration cmsConfiguration) : base(cmsConfiguration)
        {
            mediaJsModuleIncludeDescriptor        = new MediaManagerJsModuleIncludeDescriptor(this);
            mediaUploadModuleIncludeDescriptor    = new MediaUploadJsModuleIncludeDescriptor(this);
            imageEditorModuleIncludeDescriptor    = new ImageEditorJsModuleIncludeDescriptor(this);
            fileEditorModuleIncludeDescriptor     = new FileEditorJsModuleIncludeDescriptor(this);
            mediaHistoryJsModuleIncludeDescriptor = new MediaHistoryJsModuleIncludeDescriptor(this);

            // Register images gallery custom option: album
            CustomOptionsProvider.RegisterProvider(MediaManagerFolderOptionProvider.Identifier, new MediaManagerFolderOptionProvider());
        }
Esempio n. 3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="MediaManagerModuleDescriptor" /> class.
        /// </summary>
        public MediaManagerModuleDescriptor(ICmsConfiguration cmsConfiguration) : base(cmsConfiguration)
        {
            mediaJsModuleIncludeDescriptor        = new MediaManagerJsModuleIncludeDescriptor(this);
            mediaUploadModuleIncludeDescriptor    = new MediaUploadJsModuleIncludeDescriptor(this);
            imageEditorModuleIncludeDescriptor    = new ImageEditorJsModuleIncludeDescriptor(this);
            fileEditorModuleIncludeDescriptor     = new FileEditorJsModuleIncludeDescriptor(this);
            mediaHistoryJsModuleIncludeDescriptor = new MediaHistoryJsModuleIncludeDescriptor(this);
            CategoryAccessors.Register <MediaFileCategoryAccessor>();
            CategoryAccessors.Register <MediaImageCategoryAccessor>();

            // Register images gallery custom option: album
            CustomOptionsProvider.RegisterProvider(MediaManagerFolderOptionProvider.Identifier, new MediaManagerFolderOptionProvider());
            CustomOptionsProvider.RegisterProvider(MediaManagerImageUrlOptionProvider.Identifier, new MediaManagerImageUrlOptionProvider());

            Events.MediaManagerEvents.Instance.MediaFileDeleted += Instance_MediaFileDeleted;
        }
Esempio n. 4
0
        /// <summary>
        /// Sets the custom option value titles.
        /// </summary>
        /// <param name="optionModels">The option models.</param>
        /// <param name="valueModels">The value models.</param>
        public void SetCustomOptionValueTitles(IEnumerable <OptionViewModel> optionModels, IEnumerable <OptionValueEditViewModel> valueModels = null)
        {
            var values = optionModels
                         .Where(m => m.Type == OptionType.Custom)
                         .Select(m => new { m.CustomOption.Identifier, Value = m.OptionDefaultValue });

            if (valueModels != null)
            {
                values = values.Concat(valueModels
                                       .Where(m => m.Type == OptionType.Custom)
                                       .Select(m => new { m.CustomOption.Identifier, Value = m.OptionValue }));
            }

            var groupped = values.Distinct().GroupBy(g => g.Identifier);

            foreach (var group in groupped)
            {
                var provider = CustomOptionsProvider.GetProvider(group.Key);

                if (provider != null)
                {
                    var ids    = group.Select(g => g.Value).Distinct().ToArray();
                    var titles = provider.GetTitlesForValues(ids, repository);

                    if (titles != null)
                    {
                        foreach (var pair in titles)
                        {
                            optionModels
                            .Where(g => g.Type == OptionType.Custom && (g.OptionDefaultValue == pair.Key || (pair.Key == string.Empty && string.IsNullOrEmpty(g.OptionDefaultValue))))
                            .ToList()
                            .ForEach(g => g.CustomOptionDefaultValueTitle = pair.Value);

                            if (valueModels != null)
                            {
                                valueModels
                                .Where(g => g.Type == OptionType.Custom && (g.OptionValue == pair.Key || (pair.Key == string.Empty && string.IsNullOrEmpty(g.OptionValue))))
                                .ToList()
                                .ForEach(g => g.CustomOptionValueTitle = pair.Value);
                            }
                        }
                    }
                }
            }
        }