Beispiel #1
0
        protected virtual SPListTemplate ResolveListTemplate(SPWeb web, ListDefinition listModel)
        {
            // internal names would be with '.STP', so just a little bit easier to define and find
            var templateName = listModel.TemplateName.ToUpper().Replace(".STP", string.Empty);

            var listTemplate = web.ListTemplates
                               .OfType <SPListTemplate>()
                               .FirstOrDefault(t => t.InternalName.ToUpper().Replace(".STP", string.Empty) == templateName);

            if (listTemplate == null)
            {
                TraceService.Verbose((int)LogEventId.ModelProvisionCoreCall,
                                     "Searching list template in Site.GetCustomListTemplates(web)");

                var customListTemplates = web.Site.GetCustomListTemplates(web);
                listTemplate = customListTemplates
                               .OfType <SPListTemplate>()
                               .FirstOrDefault(t => t.InternalName.ToUpper().Replace(".STP", string.Empty) == templateName);
            }

            if (listTemplate == null)
            {
                throw new SPMeta2Exception(string.Format("Can't find custom list template with internal Name:[{0}]",
                                                         listModel.TemplateName));
            }
            return(listTemplate);
        }
        //[SampleMetadataTag(Name = BuiltInTagNames.SampleHidden)]
        public void CanDeployDocumentItemContentTypeLinkDefinition()
        {
            var customerReportContentType = new ContentTypeDefinition
            {
                Name = "Customer Report",
                Id   = new Guid("1836765c-6264-479b-a95b-a553a3d14ba3"),
                ParentContentTypeId = BuiltInContentTypeId.Document,
                Group = "SPMeta2.Samples"
            };

            var customerInfoList = new ListDefinition
            {
                Title               = "Customer Reports",
                Description         = "A list to store customer reports.",
                TemplateType        = BuiltInListTemplateTypeId.DocumentLibrary,
                Url                 = "CustomerReports",
                ContentTypesEnabled = true
            };

            var model = SPMeta2Model.NewWebModel(web =>
            {
                web.AddList(customerInfoList, list =>
                {
                    list.AddContentTypeLink(customerReportContentType);
                });
            });

            DeployModel(model);
        }
        public void CanDeployResetRoleInheritanceDefinition_OnList()
        {
            var listDef = new ListDefinition
            {
                Title        = "Public records",
                TemplateType = BuiltInListTemplateTypeId.GenericList,
                CustomUrl    = "lists/public-records",
            };

            var model = SPMeta2Model.NewWebModel(web =>
            {
                web.AddList(listDef, list =>
                {
                    list.AddResetRoleInheritance(new ResetRoleInheritanceDefinition(), resetList =>
                    {
                        // resetList is your list but after resetting role inheritance
                        // build your model as usual

                        // resetList.AddListView(...)
                    });
                });
            });

            DeployModel(model);
        }
        //[SampleMetadataTag(Name = BuiltInTagNames.SampleHidden)]
        public void CanDeployListItemContentTypeLinkDefinition()
        {
            var customerInfoContentType = new ContentTypeDefinition
            {
                Name = "Customer Information",
                Id   = new Guid("e33acc19-6d61-43b0-a313-4177065cd7c3"),
                ParentContentTypeId = BuiltInContentTypeId.Item,
                Group = "SPMeta2.Samples"
            };

            var customerInfoList = new ListDefinition
            {
                Title               = "Customer Information",
                Description         = "A list to store customer information.",
                TemplateType        = BuiltInListTemplateTypeId.GenericList,
                Url                 = "CustomerInfo",
                ContentTypesEnabled = true
            };

            var model = SPMeta2Model.NewWebModel(web =>
            {
                web.AddList(customerInfoList, list =>
                {
                    list.AddContentTypeLink(customerInfoContentType);
                });
            });

            DeployModel(model);
        }
Beispiel #5
0
        //[SampleMetadataTag(Name = BuiltInTagNames.SampleHidden)]
        public void CanDeployListByTemplateId()
        {
            var genericList = new ListDefinition
            {
                Title        = "Generic list",
                Description  = "A generic list.",
                TemplateType = BuiltInListTemplateTypeId.GenericList,
                Url          = "GenericList"
            };

            var documentLibrary = new ListDefinition
            {
                Title        = "Document library",
                Description  = "A document library.",
                TemplateType = BuiltInListTemplateTypeId.DocumentLibrary,
                Url          = "DocumentLibrary"
            };

            var model = SPMeta2Model.NewWebModel(web =>
            {
                web.AddList(genericList);
                web.AddList(documentLibrary);
            });

            DeployModel(model);
        }
Beispiel #6
0
        //[SampleMetadataTag(Name = BuiltInTagNames.SampleHidden)]
        public void CanDeploySimpleListFieldLinkDefinition()
        {
            var fieldDef = new TextFieldDefinition
            {
                Title        = "Customer number",
                InternalName = "m2CustomNumber",
                Id           = new Guid("87247c7d-1ecc-4503-bfd5-21f107b442fb")
            };

            var listDef = new ListDefinition
            {
                Title        = "Customers",
                TemplateType = BuiltInListTemplateTypeId.GenericList,
                CustomUrl    = "lists/customers",
            };

            var siteModel = SPMeta2Model.NewSiteModel(site =>
            {
                site.AddTextField(fieldDef);
            });

            var webModel = SPMeta2Model.NewWebModel(web =>
            {
                web.AddList(listDef, list =>
                {
                    // will add a link to the site level field
                    list.AddListFieldLink(fieldDef);
                });
            });

            DeployModel(siteModel);
            DeployModel(webModel);
        }
        //[SampleMetadataTag(Name = BuiltInTagNames.SampleHidden)]
        public void CanDeploySimpleListViewsWithCustomUrl()
        {
            var returnedDocuments = new ListViewDefinition
            {
                Title  = "Returned Documents",
                Url    = "Returned.aspx",
                Fields = new Collection <string>
                {
                    BuiltInInternalFieldNames.ID,
                    BuiltInInternalFieldNames.FileLeafRef
                }
            };

            var documentLibrary = new ListDefinition
            {
                Title        = "CustomerDocuments",
                Description  = "A customr document library.",
                TemplateType = BuiltInListTemplateTypeId.DocumentLibrary,
                Url          = "CustomerDocuments"
            };

            var model = SPMeta2Model.NewWebModel(web =>
            {
                web.AddList(documentLibrary, list =>
                {
                    list.AddListView(returnedDocuments);
                });
            });

            DeployModel(model);
        }
Beispiel #8
0
        public static string GetServerRelativeUrl(this ListDefinition listDef, Web web)
        {
#pragma warning disable 618
            return(UrlUtility.CombineUrl(web.ServerRelativeUrl, listDef.GetListUrl()));

#pragma warning restore 618
        }
Beispiel #9
0
                public FolderDefinition(ListDefinition parent, string name)
                {
                    Name   = name;
                    Parent = parent;

                    roleAssociations = new List <RoleAssociation <FolderDefinition> >();
                }
        //[SampleMetadataTag(Name = BuiltInTagNames.SampleHidden)]
        public void CanDeploySimpleSecurityGroupLinkDefinitionToList()
        {
            var auditors = new SecurityGroupDefinition
            {
                Name        = "External Auditors",
                Description = "External auditors group."
            };

            var auditorsList = new ListDefinition
            {
                Title        = "Auditors documents",
                TemplateType = BuiltInListTemplateTypeId.DocumentLibrary,
                CustomUrl    = "audit-docs"
            };

            // add group to the site first
            var siteModel = SPMeta2Model.NewSiteModel(site =>
            {
                site.AddSecurityGroup(auditors);
            });

            // assign group to the list, via .AddSecurityGroupLink() method
            var webModel = SPMeta2Model.NewWebModel(web =>
            {
                web.AddList(auditorsList, list =>
                {
                    list.AddSecurityGroupLink(auditors);
                });
            });

            DeployModel(siteModel);
            DeployModel(webModel);
        }
        //[SampleMetadataTag(Name = BuiltInTagNames.SampleHidden)]
        public void CanDeployPropertyBagUnderList()
        {
            var listTag = new PropertyDefinition
            {
                Key   = "m2_list_tag",
                Value = "m2_list_tag_value",
            };

            var listType = new PropertyDefinition
            {
                Key   = "m2_web_type",
                Value = "m2_web_type_value",
            };

            var listWithProperties = new ListDefinition
            {
                Title        = "List with properties",
                Description  = "List with some properties.",
                TemplateType = BuiltInListTemplateTypeId.GenericList,
                Url          = "ListWithProperties"
            };

            var model = SPMeta2Model.NewWebModel(web =>
            {
                web.AddList(listWithProperties, list =>
                {
                    list
                    .AddProperty(listTag)
                    .AddProperty(listType);
                });
            });

            DeployModel(model);
        }
        public void Deploy_Lists()
        {
            // Step 1, define lists
            var customerDocuments = new ListDefinition
            {
                Title        = "Customer documents",
                Url          = "CustomerDocs",
                Description  = "Stores customer related documents.",
                TemplateType = BuiltInListTemplateTypeId.DocumentLibrary
            };

            var customerTasks = new ListDefinition
            {
                Title        = "Customer tasks",
                Url          = "CustomerTasks",
                Description  = "Stores customer related tasks.",
                TemplateType = BuiltInListTemplateTypeId.TasksWithTimelineAndHierarchy
            };

            // Step 2, define web model and artifact relationships - add feature to the web
            var model = SPMeta2Model
                        .NewWebModel(web =>
            {
                web
                .AddList(customerDocuments)
                .AddList(customerTasks);
            });

            // Step 3, deploy model
            DeployWebModel(model);
        }
Beispiel #13
0
        //[SampleMetadataTag(Name = BuiltInTagNames.SampleHidden)]
        public void CanDeploySimpleFolders()
        {
            var activeDocsFolder = new FolderDefinition
            {
                Name = "Active documents"
            };

            var archiveFolder = new FolderDefinition
            {
                Name = "Archive"
            };

            var listWithFolders = new ListDefinition
            {
                Title        = "List with folders",
                Description  = "Custom list with folders.",
                TemplateType = BuiltInListTemplateTypeId.GenericList,
                Url          = "ListWithFolders"
            };

            var model = SPMeta2Model.NewWebModel(web =>
            {
                web.AddList(listWithFolders, list =>
                {
                    list
                    .AddFolder(activeDocsFolder)
                    .AddFolder(archiveFolder);
                });
            });

            DeployModel(model);
        }
Beispiel #14
0
        private void TestModuleFileDeploymentToList(ListDefinition list)
        {
            var blogSite = ModelGeneratorService.GetRandomDefinition <WebDefinition>(def =>
            {
                def.WebTemplate = BuiltInWebTemplates.Collaboration.Blog;
            });

            var model = SPMeta2Model
                        .NewWebModel(web =>
            {
                web.AddWeb(blogSite, blogWeb =>
                {
                    blogWeb.AddList(list, rndList =>
                    {
                        rndList.AddModuleFile(new ModuleFileDefinition
                        {
                            FileName  = "AllItems.aspx",
                            Content   = Encoding.Default.GetBytes(PageTemplates.CustomAllItemsPage),
                            Overwrite = true
                        });

                        rndList.AddWelcomePage(new WelcomePageDefinition
                        {
                            Url = "AllItems.aspx"
                        });
                    });
                });
            });

            TestModels(new ModelNode[] { model });
        }
        private static IActionDefinition[] GetActions(FormItem form)
        {
            var list = new List <IActionDefinition>();
            var actionDefinitions = new[]
            {
                ListDefinition.Parse(form.SaveActions),
                ListDefinition.Parse(form.CheckActions)
            };

            foreach (var actionDefinition in actionDefinitions)
            {
                if (actionDefinition.Groups.Any() && actionDefinition.Groups.First().ListItems.Any())
                {
                    foreach (var groupDefinition in actionDefinition.Groups)
                    {
                        list.AddRange(
                            groupDefinition.ListItems.Select(li => new ActionDefinition(li.ItemID, li.Parameters)
                        {
                            UniqueKey = li.Unicid
                        }));
                    }
                }
            }

            return(list.ToArray());
        }
Beispiel #16
0
        public static void ListElement(object id, string element)
        {
            if (lists.ContainsKey(id.ToString()))
            {
                ListDefinition def = lists [id.ToString()];
                if (lastListId != id.ToString())
                {
                    EndList();
                    Console.Write(def.Begin);
                    LogFileWrite(def.Begin);
                }
                Console.Write(def.Before);
                Console.Write(element.ToString());
                Console.Write(def.After);
                LogFileWrite(def.Before);
                LogFileWrite(element.ToString());
                LogFileWrite(def.After);

                lastListId = id.ToString();
            }
            else
            {
                Message("Error! Invalid list ID in ListElement (", id, ", ", element, ")");
            }
        }
Beispiel #17
0
        //[SampleMetadataTag(Name = BuiltInTagNames.SampleHidden)]
        public void CanHideContentTypesInList()
        {
            var newAnnualReportContentType = new ContentTypeDefinition
            {
                Name = "M2 Annual Report 2015",
                Id   = new Guid("7B3378FF-11DF-430B-830F-C63FABA4712F"),
                ParentContentTypeId = BuiltInContentTypeId.Item,
                Group = "SPMeta2.Samples"
            };

            var oldAnnualReportContentType = new ContentTypeDefinition
            {
                Name = "M2 Annual Report 2014",
                Id   = new Guid("DEB586C5-ED08-4D06-98F6-9FC5002986D2"),
                ParentContentTypeId = BuiltInContentTypeId.Item,
                Group = "SPMeta2.Samples"
            };

            var annualReportsList = new ListDefinition
            {
                Title               = "M2 Annual Reports",
                Description         = "A generic list.",
                TemplateType        = BuiltInListTemplateTypeId.GenericList,
                ContentTypesEnabled = true,
                Url = "M2AnnualReports"
            };

            var siteModel = SPMeta2Model.NewSiteModel(site =>
            {
                site
                .AddContentType(newAnnualReportContentType)
                .AddContentType(oldAnnualReportContentType);
            });

            var webModel = SPMeta2Model.NewWebModel(web =>
            {
                web.AddList(annualReportsList, list =>
                {
                    list
                    .AddContentTypeLink(newAnnualReportContentType)
                    .AddContentTypeLink(oldAnnualReportContentType)
                    .AddHideContentTypeLinks(new HideContentTypeLinksDefinition
                    {
                        ContentTypes = new List <ContentTypeLinkValue>
                        {
                            new ContentTypeLinkValue {
                                ContentTypeName = "Item"
                            },
                            new ContentTypeLinkValue {
                                ContentTypeName = oldAnnualReportContentType.Name
                            }
                        }
                    });
                });
            });

            DeployModel(siteModel);
            DeployModel(webModel);
        }
 protected virtual void ProcessLocalization(List obj, ListDefinition definition)
 {
     ProcessGenericLocalization(obj, new Dictionary <string, List <ValueForUICulture> >
     {
         { "TitleResource", definition.TitleResource },
         { "DescriptionResource", definition.DescriptionResource },
     });
 }
Beispiel #19
0
        private SPList GetOrCreateList(
            object modelHost,
            SPWeb web, ListDefinition listModel)
        {
            var result = GetListByUrl(web, listModel);

            if (result == null)
            {
                var listId = default(Guid);

                // "SPBug", there are two ways to create lists
                // (1) by TemplateName (2) by TemplateType
                if (listModel.TemplateType > 0)
                {
                    listId = web.Lists.Add(listModel.Url, listModel.Description,
                                           (SPListTemplateType)listModel.TemplateType);
                }
                else if (!string.IsNullOrEmpty(listModel.TemplateName))
                {
                    // TODO, add some validation
                    var listTemplate = web.ListTemplates[listModel.TemplateName];

                    web.Lists.Add(listModel.Url, listModel.Description, listTemplate);
                }
                else
                {
                    throw new ArgumentException("TemplateType or TemplateName must be defined");
                }

                result = web.Lists[listId];

                InvokeOnModelEvent(this, new ModelEventArgs
                {
                    CurrentModelNode = null,
                    Model            = null,
                    EventType        = ModelEventType.OnProvisioning,
                    Object           = result,
                    ObjectType       = typeof(SPList),
                    ObjectDefinition = listModel,
                    ModelHost        = modelHost
                });
            }
            else
            {
                InvokeOnModelEvent(this, new ModelEventArgs
                {
                    CurrentModelNode = null,
                    Model            = null,
                    EventType        = ModelEventType.OnProvisioning,
                    Object           = result,
                    ObjectType       = typeof(SPList),
                    ObjectDefinition = listModel,
                    ModelHost        = modelHost
                });
            }

            return(result);
        }
        //[SampleMetadataTag(Name = BuiltInTagNames.SampleHidden)]
        public void CanBindListViewWebPartByListViewTitle()
        {
            var incidentsLibrary = new ListDefinition
            {
                Title        = "Incidents library",
                Description  = "A document library.",
                TemplateType = BuiltInListTemplateTypeId.DocumentLibrary,
                Url          = "m2Incidents"
            };

            var incidentsView = new ListViewDefinition
            {
                Title  = "Last Incidents",
                Fields = new Collection <string>
                {
                    BuiltInInternalFieldNames.Edit,
                    BuiltInInternalFieldNames.ID,
                    BuiltInInternalFieldNames.FileLeafRef
                },
                RowLimit = 10
            };

            var listView = new ListViewWebPartDefinition
            {
                Title     = "Last Incidents binding by List View Title",
                Id        = "m2LastIncidentsView",
                ZoneIndex = 10,
                ZoneId    = "Main",
                ListUrl   = incidentsLibrary.GetListUrl(),
                ViewName  = incidentsView.Title
            };

            var webPartPage = new WebPartPageDefinition
            {
                Title              = "M2 List View provision",
                FileName           = "listview-webpart-provision.aspx",
                PageLayoutTemplate = BuiltInWebPartPageTemplates.spstd1
            };

            var model = SPMeta2Model.NewWebModel(web =>
            {
                web
                .AddList(incidentsLibrary, list =>
                {
                    list.AddListView(incidentsView);
                })
                .AddHostList(BuiltInListDefinitions.SitePages, list =>
                {
                    list.AddWebPartPage(webPartPage, page =>
                    {
                        page.AddListViewWebPart(listView);
                    });
                });
            });

            DeployModel(model);
        }
Beispiel #21
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);
        }
        public void Deploy_ContentTypesToList()
        {
            // Step 1, define security groups
            var contractsList = new ListDefinition
            {
                Title               = "Customer contracts",
                Url                 = "CustomerContracts",
                Description         = "Stores customer related contracts.",
                TemplateType        = BuiltInListTemplateTypeId.DocumentLibrary,
                ContentTypesEnabled = true
            };

            var standardContract = new ContentTypeDefinition
            {
                Id   = new Guid("49fbbb62-f8cd-4372-94a0-756e55a8945e"),
                Name = "Standard Contract",
                ParentContentTypeId = BuiltInContentTypeId.Document,
                Group = SampleConsts.DefaultMetadataGroup
            };

            var legacyContract = new ContentTypeDefinition
            {
                Id   = new Guid("ba049ddb-962a-4b8e-80a0-2bd10a6c4a88"),
                Name = "Legacy Contract",
                ParentContentTypeId = BuiltInContentTypeId.Document,
                Group = SampleConsts.DefaultMetadataGroup
            };

            // Step 2, define web model and artifact relationships - add security groups t the web
            // Deploy site model first - content types to site
            var siteModel = SPMeta2Model
                            .NewSiteModel(site =>
            {
                site
                .AddContentType(standardContract)
                .AddContentType(legacyContract);
            });

            DeploySiteModel(siteModel);

            // deploy web model - list and add content type links to list
            var webModel = SPMeta2Model
                           .NewWebModel(web =>
            {
                web
                .AddList(contractsList, list =>
                {
                    list
                    .AddContentTypeLink(standardContract)
                    .AddContentTypeLink(legacyContract);
                });
            });

            DeployWebModel(webModel);
        }
Beispiel #24
0
        private static void List(object id, object before, object after, object begin, object end)
        {
            ListDefinition def = new ListDefinition {
                Id     = id.ToString(),
                Before = before.ToString(),
                After  = after.ToString(),
                Begin  = begin.ToString(),
                End    = end.ToString()
            };

            lists [def.Id] = def;
        }
Beispiel #25
0
        //[SampleMetadataTag(Name = BuiltInTagNames.SampleHidden)]
        public void CanDeploySimpleSP2013WorkflowSubscriptionToList()
        {
            var writeToHistoryListWorkflow = new SP2013WorkflowDefinition
            {
                DisplayName = "M2 - Write to history list",
                Override    = true,
                Xaml        = WorkflowTemplates.WriteToHistoryListWorkflow
            };

            var taskList = new ListDefinition
            {
                Title        = "Workflow Enabled List Tasks",
                TemplateType = BuiltInListTemplateTypeId.Tasks,
                Url          = "m2WorkflowEnabledListTasks"
            };

            var historyList = new ListDefinition
            {
                Title        = "Workflow Enabled List History",
                TemplateType = BuiltInListTemplateTypeId.WorkflowHistory,
                Url          = "m2WorkflowEnabledListHistory"
            };

            var workflowEnabledList = new ListDefinition
            {
                Title        = "Workflow Enabled List",
                Description  = "Workflow enabled list.",
                TemplateType = BuiltInListTemplateTypeId.GenericList,
                Url          = "WorkflowEnabledList"
            };

            var model = SPMeta2Model.NewWebModel(web =>
            {
                web
                .AddSP2013Workflow(writeToHistoryListWorkflow)
                .AddList(historyList)
                .AddList(taskList)
                .AddList(workflowEnabledList, list =>
                {
                    list
                    .AddSP2013WorkflowSubscription(new SP2013WorkflowSubscriptionDefinition
                    {
                        Name = "Write To History List Workflow",
                        WorkflowDisplayName = writeToHistoryListWorkflow.DisplayName,
                        HistoryListUrl      = historyList.GetListUrl(),
                        TaskListUrl         = taskList.GetListUrl()
                    });
                });
            });

            DeployModel(model);
        }
 public void Create()
 {
     projectStatusField      = GetProjectStatusField();
     startDateField          = GetStartDateField();
     teamField               = GetTeamField();
     departmentField         = GetDepartmentField();
     endDateField            = GetEndDateField();
     projectManagerField     = GetProjectManagerField();
     projectValueField       = GetProjectValueField();
     projectContemtType      = GetProjectContemtType();
     projectsList            = GetProjectsList();
     managedProjectsListView = GetManagedProjectsListView();
 }
Beispiel #27
0
        public void TranslateListDefinition(List <string> output, ListDefinition list)
        {
            output.Add("[");
            for (int i = 0; i < list.Items.Length; ++i)
            {
                if (i > 0)
                {
                    output.Add(", ");
                }

                this.TranslateExpression(output, list.Items[i]);
            }
            output.Add("]");
        }
        //[SampleMetadataTag(Name = BuiltInTagNames.SampleHidden)]
        public void CanDeployPropertyBagUnderFolder()
        {
            var folderTag = new PropertyDefinition
            {
                Key   = "m2_folder_tag",
                Value = "m2_folder_tag_value",
            };

            var folderType = new PropertyDefinition
            {
                Key   = "m2_folder_type",
                Value = "m2_folder_type_value",
            };

            var listWithProperties = new ListDefinition
            {
                Title        = "List with properties",
                Description  = "List with some properties.",
                TemplateType = BuiltInListTemplateTypeId.GenericList,
                Url          = "ListWithProperties"
            };

            var fodlerWithProperties = new FolderDefinition
            {
                Name = "folder with properties"
            };

            var model = SPMeta2Model.NewWebModel(web =>
            {
                web.AddList(listWithProperties, list =>
                {
                    list.AddFolder(fodlerWithProperties, folder =>
                    {
                        // Syntax miss - folder should support adding props #669
                        // https://github.com/SubPointSolutions/spmeta2/issues/669

                        //folder
                        //    .AddProperty(folderTag)
                        //    .AddProperty(folderType);

                        folder
                        .AddDefinitionNode(folderTag)
                        .AddDefinitionNode(folderType);
                    });
                });
            });

            DeployModel(model);
        }
        public ListDefinition getListDefinition()
        {
            var listDefinition = new ListDefinition();

            listDefinition.Title                = ListName;
            listDefinition.CustomUrl            = ListUrl;
            listDefinition.Description          = "";
            listDefinition.TemplateType         = BuiltInListTemplateTypeId.GenericList;
            listDefinition.EnableVersioning     = true;
            listDefinition.ContentTypesEnabled  = true;
            listDefinition.OnQuickLaunch        = true;
            listDefinition.EnableFolderCreation = false;

            return(listDefinition);
        }
Beispiel #30
0
        private static SPList GetListByUrl(SPWeb web, ListDefinition listModel)
        {
            SPList result;

            try
            {
                var targetListUrl = SPUrlUtility.CombineUrl(web.Url, listModel.GetListUrl());
                result = web.GetList(targetListUrl);
            }
            catch
            {
                result = null;
            }

            return(result);
        }
Beispiel #31
0
 private static void List(object id, object before, object after, object begin, object end)
 {
     ListDefinition def = new ListDefinition {
         Id = id.ToString (),
         Before = before.ToString (),
         After = after.ToString (),
         Begin = begin.ToString (),
         End = end.ToString ()
     };
     lists [def.Id] = def;
 }
Beispiel #32
0
        public void EditList(string originalName, ListDefinition list)
        {
            var editor = new DialogViewController (null, true);
            var name = new EntryElement (Locale.GetText ("Name"), null, list.Name);
            name.Changed += delegate {
                editor.NavigationItem.RightBarButtonItem.Enabled = !String.IsNullOrEmpty (name.Value);
            };
            var description = new EntryElement (Locale.GetText ("Description"), Locale.GetText ("optional"), list.Description);
            var privacy = new RootElement (Locale.GetText ("Privacy"), new RadioGroup ("key", (int) list.Privacy)){
                new Section () {
                    new RadioElement (Locale.GetText ("Public")),
                    new RadioElement (Locale.GetText ("Private"))
                }
            };
            editor.NavigationItem.SetLeftBarButtonItem (new UIBarButtonItem (UIBarButtonSystemItem.Cancel, delegate {
                DeactivateController (true);
            }), false);

            editor.NavigationItem.SetRightBarButtonItem (new UIBarButtonItem (UIBarButtonSystemItem.Save, delegate {
                string url = String.Format ("http://api.twitter.com/1/{0}/lists{1}.json?name={2}&mode={3}{4}",
                                            TwitterAccount.CurrentAccount.Username,
                                            originalName == null ? "" : "/" + originalName,
                                            OAuth.PercentEncode (name.Value),
                                            privacy.RadioSelected == 0 ? "public" : "private",
                                            description.Value == null ? "" : "&description=" + OAuth.PercentEncode (description.Value));
                TwitterAccount.CurrentAccount.Post (url, "");

            }), false);

            editor.NavigationItem.RightBarButtonItem.Enabled = !String.IsNullOrEmpty (name.Value);
            editor.Root = new RootElement (Locale.GetText ("New List")) {
                new Section () { name, description, privacy }
            };
            ActivateController (editor);
        }