Beispiel #1
0
        public SPWeb GetTargetWeb(SPSite site, LookupFieldDefinition definition)
        {
            if (definition.LookupWebId.HasGuidValue())
            {
                return(site.OpenWeb(definition.LookupWebId.Value));
            }
            else if (!string.IsNullOrEmpty(definition.LookupWebUrl))
            {
                var targetWebUrl = TokenReplacementService.ReplaceTokens(new TokenReplacementContext
                {
                    Value   = definition.LookupWebUrl,
                    Context = site
                }).Value;

                // server relative URl, always
                targetWebUrl = UrlUtility.RemoveStartingSlash(targetWebUrl);
                targetWebUrl = "/" + targetWebUrl;

                var targetWeb = site.OpenWeb(targetWebUrl);

                return(targetWeb);
            }

            // root web by default
            return(site.RootWeb);
        }
Beispiel #2
0
        private static void DeployAttachmentsLibrary(ClientContext clientContext, List targetList)
        {
            var csomProvisionService = new CSOMProvisionService();

            var webModel = SPMeta2Model.NewWebModel();

            webModel.AddList(Assets.listDefinition);

            csomProvisionService.DeployWebModel(clientContext, webModel);

            var attachmentsFieldDefinition = new LookupFieldDefinition
            {
                Title                      = "ParentItemID",
                InternalName               = "ParentItemID",
                Group                      = "Angular",
                Id                         = new Guid("FEF440A7-3228-4034-BB2A-FFD538D46A62"),
                LookupListTitle            = targetList.Title,
                LookupWebId                = clientContext.Web.Id,
                LookupField                = "ID",
                RelationshipDeleteBehavior = "Cascade",
                Indexed                    = true
            };

            var lookupFieldModel = SPMeta2Model.NewWebModel(web =>
            {
                web.AddField(attachmentsFieldDefinition);
            });

            webModel.AddList(Attachments.listDefinition, list => list.AddField(attachmentsFieldDefinition));
            csomProvisionService.DeployWebModel(clientContext, webModel);
        }
Beispiel #3
0
        protected override FieldDefinition GetFieldDefinitionTemplate()
        {
            var def = new LookupFieldDefinition();

            def.AllowMultipleValues = Rnd.Bool();

            return(def);
        }
        public void LookupFieldDefinition_AllowMultipleValues_ShouldUpdate_FieldType()
        {
            var def = new LookupFieldDefinition();

            def.AllowMultipleValues = true;
            Assert.IsTrue(def.FieldType == BuiltInFieldTypes.LookupMulti);

            def.AllowMultipleValues = false;
            Assert.IsTrue(def.FieldType == BuiltInFieldTypes.Lookup);
        }
Beispiel #5
0
 private void Create()
 {
     belongToProjectField       = GetBelognToProjectField();
     documentResponsibleField   = GetDocumentResponsibleField();
     documentTypeField          = GetDocumentTypeField();
     expirationDateField        = GetExpirationDateField();
     projectDocumentsList       = GetProjectDocumentsList();
     projectDocumentContemtType = GetProjectDocumentContemtType();
     projectDocumentsListView   = GetProjectDocumentsListView();
 }
        //[SampleMetadataTag(Name = BuiltInTagNames.SampleHidden)]
        public void CanDeployLookupFieldBindedToList()
        {
            var leadTypeLookup = new LookupFieldDefinition
            {
                Title        = "Lead Type",
                InternalName = "m2LeadType",
                Group        = "SPMeta2.Samples",
                Id           = new Guid("FEFC30A7-3B38-4034-BB2A-FFD538D46A63")
            };

            var lookupFieldModel = SPMeta2Model.NewSiteModel(site =>
            {
                site
                .AddField(leadTypeLookup);
            });

            var leadRecords = new ListDefinition
            {
                Title        = "Lead Records",
                Description  = "A generic list.",
                TemplateType = BuiltInListTemplateTypeId.GenericList,
                Url          = "m2LeadRecordsList"
            };

            var leadRecordTypes = new ListDefinition
            {
                Title        = "Lead Record Types",
                Description  = "A generic list.",
                TemplateType = BuiltInListTemplateTypeId.GenericList,
                Url          = "m2LeadRecordTypesList"
            };

            var webModel = SPMeta2Model.NewWebModel(web =>
            {
                web
                .AddList(leadRecords, list =>
                {
                    list.AddListFieldLink(leadTypeLookup);
                })
                .AddList(leadRecordTypes);
            });

            // 1. deploy lookup field without bindings
            DeployModel(lookupFieldModel);

            // 2. deploy lists
            DeployModel(webModel);

            // 3. update binding for the lookup field
            // LookupList/LookupListId could also be used
            leadTypeLookup.LookupListTitle = leadRecordTypes.Title;

            // 4. deploy lookup field again, so that it will be binded
            DeployModel(lookupFieldModel);
        }
        //[SampleMetadataTag(Name = BuiltInTagNames.SampleHidden)]
        public void CanDeployEmptyLookupField()
        {
            var emptyLookupField = new LookupFieldDefinition
            {
                Title        = "Empty Lookup Field",
                InternalName = "m2EmptyLookupField",
                Group        = "SPMeta2.Samples",
                Id           = new Guid("B6387953-3967-4023-9D38-431F2C6A5E54")
            };

            var model = SPMeta2Model.NewSiteModel(site =>
            {
                site
                .AddField(emptyLookupField);
            });

            DeployModel(model);
        }
Beispiel #8
0
        public Web GetTargetWeb(Site site, LookupFieldDefinition definition)
        {
            var context = site.Context;

            if (definition.LookupWebId.HasGuidValue())
            {
                var targetWeb = site.OpenWebById(definition.LookupWebId.Value);

                context.Load(targetWeb);
                context.ExecuteQueryWithTrace();

                return(targetWeb);
            }
            else if (!string.IsNullOrEmpty(definition.LookupWebUrl))
            {
                var targetWebUrl = TokenReplacementService.ReplaceTokens(new TokenReplacementContext
                {
                    Value   = definition.LookupWebUrl,
                    Context = context
                }).Value;

                // server relative url, ensure / in the beginning
                targetWebUrl = UrlUtility.RemoveStartingSlash(targetWebUrl);
                targetWebUrl = "/" + targetWebUrl;

                var targetWeb = site.OpenWeb(targetWebUrl);


                context.Load(targetWeb);
                context.ExecuteQueryWithTrace();

                return(targetWeb);
            }

            // root web by default
            return(site.RootWeb);
        }
 public static TModelNode AddLookupField <TModelNode>(this TModelNode model, LookupFieldDefinition definition,
                                                      Action <LookupFieldModelNode> action)
     where TModelNode : ModelNode, IFieldHostModelNode, new()
 {
     return(model.AddTypedDefinitionNode(definition, action));
 }
 public static TModelNode AddLookupField <TModelNode>(this TModelNode model, LookupFieldDefinition definition)
     where TModelNode : ModelNode, IFieldHostModelNode, new()
 {
     return(AddLookupField(model, definition, null));
 }
 public Web GetTargetWeb(Site site, LookupFieldDefinition definition)
 {
     return(GetTargetWeb(site, definition.LookupWebUrl, definition.LookupWebId));
 }
 public static ModelNode AddLookupField(this ModelNode model, LookupFieldDefinition definition, Action <ModelNode> action)
 {
     return(model.AddDefinitionNode(definition, action));
 }
 public static ModelNode AddLookupField(this ModelNode model, LookupFieldDefinition definition)
 {
     return(AddLookupField(model, definition, null));
 }