Check the field/content type/list already exist in SharePoint site using c# [CSOM client]
As i working on creating content type, site columns and lists there is some field name is always conflict with my desired column name so here is a helper function to get over with that nasty exceptions. The model for all the field remain same except the collection like List,Content type, Site Column collection, I made it simple by return back the field count,
1. If count is zero, field doesn't exist
2. if cont is not zero, field exist
I hope this may helpful for some,
public dynamic isExist_Helper(ClientContext context, String fieldToCheck,String type)
{
var isExist = 0;
ListCollection listCollection = context.Web.Lists;
ContentTypeCollection cntCollection = context.Web.ContentTypes;
FieldCollection fldCollection = context.Web.Fields;
switch (type) {
case "list":
context.Load(listCollection, lsts => lsts.Include(list => list.Title).Where(list => list.Title == fieldToCheck));
context.ExecuteQuery();
isExist = listCollection.Count;
break;
case "contenttype":
context.Load(cntCollection, cntyp => cntyp.Include(ct => ct.Name).Where(ct => ct.Name == fieldToCheck));
context.ExecuteQuery();
isExist = cntCollection.Count;
break;
case "contenttypeName":
context.Load(cntCollection, cntyp => cntyp.Include(ct => ct.Name, ct => ct.Id).Where(ct => ct.Name == fieldToCheck));
context.ExecuteQuery();
foreach (ContentType ct in cntCollection)
{
return ct.Id.ToString();
}
break;
case "field":
context.Load(fldCollection, fld => fld.Include(ft => ft.Title).Where(ft => ft.Title == fieldToCheck));
try
{
context.ExecuteQuery();
isExist = fldCollection.Count;
}
catch (Exception e) {
if (e.Message == "Unknown Error")
{
isExist = fldCollection.Count;
}
}
break;
case "listcntype":
List lst = context.Web.Lists.GetByTitle(fieldToCheck);
ContentTypeCollection lstcntype = lst.ContentTypes;
context.Load(lstcntype, lstc => lstc.Include(lc => lc.Name).Where(lc => lc.Name == fieldToCheck));
context.ExecuteQuery();
isExist = lstcntype.Count;
break;
}
return isExist;
}
Written by Arivazhagan
Related protips
Have a fresh tip? Share with Coderwall community!
Post
Post a tip
Best
#Tags
Authors
Sponsored by #native_company# — Learn More
#native_title#
#native_desc#