You can use below code to create following:-
1. Site Columns
2. Content Types
3. Add Fields to Content Type
1. Site Columns
2. Content Types
3. Add Fields to Content Type
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.SharePoint;
namespace LAB
{
public static class
SPDevUtility
{
public static
SPContentType CreateSiteContentType(SPWeb web, string contentTypeName,
SPContentTypeId
parentItemCTypeId, string group)
{
if
(web.AvailableContentTypes[contentTypeName] == null)
{
SPContentType
itemCType = web.AvailableContentTypes[parentItemCTypeId];
SPContentType
contentType =
new
SPContentType(itemCType, web.ContentTypes, contentTypeName) { Group = @group
};
web.ContentTypes.Add(contentType);
contentType.Update();
return
contentType;
}
return
web.ContentTypes[contentTypeName];
}
public static SPField
CreateSiteColumn(SPWeb web, string displayName,
SPFieldType
fieldType, string groupDescriptor)
{
if
(!web.Fields.ContainsField(displayName))
{
string
fieldName = web.Fields.Add(displayName, fieldType, false);
SPField field =
web.Fields.GetFieldByInternalName(fieldName);
field.Group =
groupDescriptor;
field.Update();
return field;
}
return
web.Fields[displayName];
}
public static void
AddFieldToContentType(SPWeb web, SPContentTypeId contentTypeId, SPField
field)
{
SPContentType
contentType = web.ContentTypes[contentTypeId];
if (contentType ==
null) return;
if
(contentType.Fields.ContainsField(field.Title)) return;
SPFieldLink
fieldLink = new SPFieldLink(field);
contentType.FieldLinks.Add(fieldLink);
contentType.Update();
}
}
}
|