public IEnumerable <IShortCodeProvider> GetEnabledProviders(DescribeContext context)
 {
     if (context == null)
     {
         context = _emptyContext;
     }
     if (context.Host.Field != null)   //It's a field
     {
         ShortCodesSettingsViewModel settings  = new ShortCodesSettingsViewModel();
         ContentPartFieldDefinition  defintion = context.Host.Field.PartFieldDefinition;
         if (defintion != null)
         {
             settings.Populate(defintion.Settings.GetModel <ShortCodesSettings>(), null);
         }
         return(_providers.Where(x => settings.EnabledShortCodes.Contains(x.Describe(context).Name)));
     }
     if (!string.IsNullOrWhiteSpace(context.Host.ContentType) && context.Host.Part != null)   //It's a part
     {
         ShortCodesSettingsViewModel settings  = new ShortCodesSettingsViewModel();
         ContentTypePartDefinition   defintion = context.Host.Part.TypePartDefinition;
         if (defintion != null)
         {
             settings.Populate(defintion.Settings.GetModel <ShortCodesSettings>(), null);
         }
         return(_providers.Where(x => settings.EnabledShortCodes.Contains(x.Describe(context).Name)));
     }
     return(_providers);
 }
Beispiel #2
0
        public override IEnumerable <TemplateViewModel> TypePartEditor(ContentTypePartDefinition definition)
        {
            if (definition.PartDefinition.Name != "BodyPart")
            {
                yield break;
            }

            var model = new ShortCodesSettingsViewModel();

            model.Populate(definition.Settings.GetModel <ShortCodesSettings>(), _shortCodeProviders);
            yield return(DefinitionTemplate(model, "ShortCodes/ShortCodesSettings", "ShortCodesSettings"));
        }
Beispiel #3
0
        public override IEnumerable <TemplateViewModel> TypePartEditorUpdate(ContentTypePartDefinitionBuilder builder, IUpdateModel updateModel)
        {
            if (builder.Name != "BodyPart")
            {
                yield break;
            }

            var model = new ShortCodesSettingsViewModel();

            updateModel.TryUpdateModel(model, "ShortCodesSettings", null, null);
            builder.WithSetting("ShortCodesSettings.EnabledShortCodes", string.Join(",", model.EnabledShortCodes));
            yield return(DefinitionTemplate(model));
        }