Advertisement
fiddi

SPCM: SPMeta2

Apr 15th, 2015
359
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.83 KB | None | 0 0
  1. using Microsoft.SharePoint;
  2. using SPMeta2.Definitions;
  3. using SPMeta2.Definitions.ContentTypes;
  4. using SPMeta2.Enumerations;
  5. using SPMeta2.SSOM.Services;
  6. using SPMeta2.Syntax.Default;
  7. using System;
  8. using System.Collections.Generic;
  9.  
  10. namespace ConsoleApplication4
  11. {
  12.     class Program
  13.     {
  14.         static void Main(string[] args)
  15.         {
  16.             string sharepoint_url = "http://sp-2013-dsc";
  17.  
  18.             var contentTypeEvent = new ContentTypeDefinition
  19.             {
  20.                 Id = new Guid("{271834C7-4778-4FFE-98FE-EBAF7035B84E}"),
  21.                 IdNumberValue = "0x01009E797F4456764F8DBB4D9DC1BD6748FA",
  22.                 Name = "Community Event",
  23.                 ParentContentTypeId = BuiltInContentTypeId.Item,
  24.                 Group = "isolutions"
  25.             };
  26.  
  27.             var fieldSpeaker = new FieldDefinition
  28.             {
  29.                 Id = new Guid("{7C18EB10-B100-4BE2-8FA1-532BA0298AFC}"),
  30.                 FieldType = "User",
  31.                 InternalName = "Speaker",
  32.                 Title = "Speaker"
  33.             };
  34.  
  35.             var fieldAttendee = new FieldDefinition
  36.             {
  37.                 Id = new Guid("{0E80DDEE-77F6-4280-994C-2C297D330314}"),
  38.                 FieldType = BuiltInFieldTypes.Integer,
  39.                 InternalName = "Attendee",
  40.                 Title = "Attendee"
  41.             };
  42.  
  43.             var list = new ListDefinition
  44.             {
  45.                 Title = "Events",
  46.                 Url = "Events",
  47.                 TemplateType = BuiltInListTemplateTypeId.GenericList,
  48.                 EnableVersioning = true,
  49.                 EnableFolderCreation = false,
  50.                 ContentTypesEnabled = true,
  51.                 OnQuickLaunch = true,
  52.                 Description = ""
  53.             };
  54.  
  55.  
  56.             var siteModel = SPMeta2Model.NewSiteModel(site =>
  57.                 {
  58.                     site
  59.                         .WithFields(field =>
  60.                         {
  61.                             field.AddField(fieldSpeaker);
  62.                             field.AddField(fieldAttendee);
  63.                         })
  64.                         .WithContentTypes(contentTypes =>
  65.                         {
  66.                             contentTypes.AddContentType(contentTypeEvent, customerDoc =>
  67.                             {
  68.                                 customerDoc.AddContentTypeFieldLink(fieldSpeaker);
  69.                                 customerDoc.AddContentTypeFieldLink(fieldAttendee);
  70.                             });
  71.                         });
  72.                 });
  73.  
  74.             var webModel = SPMeta2Model.NewWebModel(web =>
  75.             {
  76.                 web.AddList(list, metadataList =>
  77.                 {
  78.                     metadataList
  79.                         .AddContentTypeLink(contentTypeEvent)
  80.                         .AddHideContentTypeLinks(new HideContentTypeLinksDefinition()
  81.                         {
  82.                             ContentTypes = new List<ContentTypeLinkValue>
  83.                             {
  84.                                 new ContentTypeLinkValue
  85.                                 {
  86.                                   ContentTypeName = "Item"
  87.                                 }
  88.                             }
  89.                         });
  90.                 });
  91.             });
  92.  
  93.  
  94.             var ssomProvisionService = new SSOMProvisionService();
  95.             using (SPSite site = new SPSite(sharepoint_url))
  96.             {
  97.                 ssomProvisionService.DeployModel(SPMeta2.SSOM.ModelHosts.SiteModelHost.FromSite(site), siteModel);
  98.  
  99.                 using (SPWeb web = site.RootWeb)
  100.                 {
  101.                     ssomProvisionService.DeployModel(SPMeta2.SSOM.ModelHosts.WebModelHost.FromWeb(web), webModel);
  102.                 }
  103.             }
  104.  
  105.             Console.WriteLine("All done!");
  106.             Console.ReadLine();
  107.         }
  108.  
  109.  
  110.     }
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement