예제 #1
0
 public static TModelNode AddRemoveContentTypeFieldLinks <TModelNode>(this TModelNode model, RemoveContentTypeFieldLinksDefinition definition,
                                                                      Action <RemoveContentTypeFieldLinksModelNode> action)
     where TModelNode : ModelNode, IContentTypeModelNode, new()
 {
     return(model.AddTypedDefinitionNode(definition, action));
 }
예제 #2
0
 public static TModelNode AddRemoveContentTypeFieldLinks <TModelNode>(this TModelNode model, RemoveContentTypeFieldLinksDefinition definition)
     where TModelNode : ModelNode, IContentTypeModelNode, new()
 {
     return(AddRemoveContentTypeFieldLinks(model, definition, null));
 }
예제 #3
0
        private void DeployHideContentTypeLinks(object modelHost, ContentType contentType, RemoveContentTypeFieldLinksDefinition hideFieldLinksModel)
        {
            var context = contentType.Context;

            context.Load(contentType, c => c.FieldLinks);
            context.ExecuteQueryWithTrace();

            var fieldLinks = contentType.FieldLinks.ToList();

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

            // re-order
            foreach (var srcFieldLink in hideFieldLinksModel.Fields)
            {
                FieldLink 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.DeleteObject();
                }
            }

            InvokeOnModelEvent(this, new ModelEventArgs
            {
                CurrentModelNode = null,
                Model            = null,
                EventType        = ModelEventType.OnProvisioned,
                Object           = contentType,
                ObjectType       = typeof(ContentType),
                ObjectDefinition = hideFieldLinksModel,
                ModelHost        = modelHost
            });
        }
예제 #4
0
        private void DeployHideContentTypeLinks(object modelHost, ContentTypeModelHost contentTypeModelHost, RemoveContentTypeFieldLinksDefinition hideFieldLinksModel)
        {
            var contentType = contentTypeModelHost.HostContentType;
            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)
                {
                    contentType.FieldLinks.Delete(currentFieldLink.Id);
                }
            }

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

            contentTypeModelHost.ShouldUpdateHost = true;
        }
 public static ModelNode AddRemoveContentTypeFieldLinks(this ModelNode model, RemoveContentTypeFieldLinksDefinition definition, Action <ModelNode> action)
 {
     return(model.AddDefinitionNode(definition, action));
 }
 public static ModelNode AddRemoveContentTypeFieldLinks(this ModelNode model, RemoveContentTypeFieldLinksDefinition definition)
 {
     return(AddRemoveContentTypeFieldLinks(model, definition, null));
 }