public override ModelNode ReverseSingleHost(object reverseHost, ReverseOptions options)
        {
            var item = (reverseHost as ContentTypeReverseHost).HostContentType;

            var def = new HideContentTypeFieldLinksDefinition();

            foreach (var fieldLink in item.FieldLinks.ToArray()
                     .Where(l => l.Hidden))
            {
                def.Fields.Add(new FieldLinkValue
                {
                    Id = fieldLink.Id
                });
            }

            return(new HideContentTypeFieldLinksModelNode
            {
                Options = { RequireSelfProcessing = true },
                Value = def
            });
        }
Пример #2
0
 public static ModelNode AddHideContentTypeFieldLinks(this ModelNode model, HideContentTypeFieldLinksDefinition definition, Action <ModelNode> action)
 {
     return(model.AddDefinitionNode(definition, action));
 }
Пример #3
0
 public static ModelNode AddHideContentTypeFieldLinks(this ModelNode model, HideContentTypeFieldLinksDefinition definition)
 {
     return(AddHideContentTypeFieldLinks(model, definition, null));
 }
        private void DeployHideContentTypeLinks(object modelHost, SPContentType contentType, HideContentTypeFieldLinksDefinition hideFieldLinksModel)
        {
            var fieldLinks = contentType.FieldLinks.OfType <SPFieldLink>().ToList();

            InvokeOnModelEvent(this, new ModelEventArgs
            {
                CurrentModelNode = null,
                Model            = null,
                EventType        = ModelEventType.OnProvisioning,
                Object           = contentType,
                ObjectType       = typeof(SPContentType),
                ObjectDefinition = hideFieldLinksModel,
                ModelHost        = modelHost
            });

            // re-order
            foreach (var srcFieldLink in hideFieldLinksModel.Fields)
            {
                SPFieldLink currentFieldLink = null;

                if (!string.IsNullOrEmpty(srcFieldLink.InternalName))
                {
                    currentFieldLink = fieldLinks.FirstOrDefault(c => c.Name == srcFieldLink.InternalName);
                }

                if (currentFieldLink == null && srcFieldLink.Id.HasValue)
                {
                    currentFieldLink = fieldLinks.FirstOrDefault(c => c.Id == srcFieldLink.Id.Value);
                }

                if (currentFieldLink != null)
                {
                    currentFieldLink.ReadOnly = false;
                    currentFieldLink.Required = false;
                    currentFieldLink.Hidden   = true;
                }
            }

            InvokeOnModelEvent(this, new ModelEventArgs
            {
                CurrentModelNode = null,
                Model            = null,
                EventType        = ModelEventType.OnProvisioned,
                Object           = contentType,
                ObjectType       = typeof(SPContentType),
                ObjectDefinition = hideFieldLinksModel,
                ModelHost        = modelHost
            });
        }
 public static TModelNode AddHideContentTypeFieldLinks <TModelNode>(this TModelNode model, HideContentTypeFieldLinksDefinition definition,
                                                                    Action <HideContentTypeFieldLinksModelNode> action)
     where TModelNode : ModelNode, IContentTypeModelNode, new()
 {
     return(model.AddTypedDefinitionNode(definition, action));
 }
 public static TModelNode AddHideContentTypeFieldLinks <TModelNode>(this TModelNode model, HideContentTypeFieldLinksDefinition definition)
     where TModelNode : ModelNode, IContentTypeModelNode, new()
 {
     return(AddHideContentTypeFieldLinks(model, definition, null));
 }