Monday, July 30, 2012

SharePoint: Client Side Object Model Part - III

List Class defines all list related methods.

Program.cs File

using Microsoft.SharePoint.Client;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace ConsoleCSOM
{
    class Program
    {
        static void Main(string[] args)
        {
            ClientContext context = new ClientContext("http://goazrapp18:33369");
            Web web = context.Web;

            //Web Operations
            WebMethods(context, web);

            //List Operations
            //ListMethods(context, web);

            Console.WriteLine("Please press any key to exit");
            Console.ReadLine();
        }

        private static void ListMethods(ClientContext context, Web web)
        {
            //Get all Lists
            ListOperation.GetLists(context, web);

            //Create List
            ListOperation.CreateList(context, web);


            //Add List Field
            context = new ClientContext("http://goazrapp18:33369");
            web = context.Web;
            ListOperation.AddField(context, web);


            //Add List Item
            context = new ClientContext("http://goazrapp18:33369");
            web = context.Web;
            ListOperation.AddListItem(context, web);

            //Get List Items
            ListOperation.GetListItems(context, web);

            //Update List Item
            ListOperation.ListItemUpdate(context, web);

            //Delete List Item
            ListOperation.DeleteItem(context, web);
        }

        private static void WebMethods(ClientContext context, Web web)
        {
            //Get Title and Description
            WebOperation.GetTitle(context, web);


            //Update Title and Description
            WebOperation.UpdateTitle(context, web);

            //Delete Existing Web
            WebOperation.DeleteWeb(context, web);

            //Create New Web
            WebOperation.CreateWeb(context);
        }
    }
}

ListOperation.cs File

using Microsoft.SharePoint.Client;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;



namespace ConsoleCSOM
{
    public static class ListOperation
    {
        public static void DeleteItem(ClientContext context, Web web)
        {

            List testList = web.Lists.GetByTitle("Test List");
            ListItem item = testList.GetItemById(1);
            item.DeleteObject();
            context.ExecuteQuery();
            Console.WriteLine("Item Deleted");
        }

        public static void ListItemUpdate(ClientContext context, Web web)
        {
            List testList = web.Lists.GetByTitle("Test List");
            ListItem item = testList.GetItemById(1);
            item["Body"] = "My Body Update on " + DateTime.Now;
            item.Update();
            context.ExecuteQuery();
            Console.WriteLine("Item Updated");
        }

        public static void GetListItems(ClientContext context, Web web)
        {
            List testList = web.Lists.GetByTitle("Test List");
            CamlQuery query = CamlQuery.CreateAllItemsQuery();
            ListItemCollection items = testList.GetItems(query);
            context.Load(items);
            context.ExecuteQuery();

            foreach (ListItem item in items)
                Console.WriteLine("Item Title is " + item["Title"]);
        }

        public static void AddListItem(ClientContext context, Web web)
        {
            List testList = web.Lists.GetByTitle("Test List");
            ListItemCreationInformation listItemCreationInformation = new ListItemCreationInformation();
            ListItem item = testList.AddItem(listItemCreationInformation);
            item["Title"] = "Item Create on " + DateTime.Now;
            item["CustomField"] = 25;
            item.Update();
            context.ExecuteQuery();
            Console.WriteLine("Item Created");
        }

        public static void AddField(ClientContext context, Web web)
        {
            List list = context.Web.Lists.GetByTitle("Test List");
            Field field = list.Fields.AddFieldAsXml("", true, AddFieldOptions.DefaultValue);
            FieldNumber fldNumber = context.CastTo(field);
            fldNumber.MaximumValue = 100;
            fldNumber.MinimumValue = 20;
            fldNumber.Update();
            context.ExecuteQuery();
            Console.WriteLine("List Field Created");

        }

        public static void CreateList(ClientContext context, Web web)
        {
            ListCreationInformation lCreationInfo = new ListCreationInformation();
            lCreationInfo.Title = "Test List";
            lCreationInfo.TemplateType = (int)ListTemplateType.Announcements;
            List wList = web.Lists.Add(lCreationInfo);
            wList.Description = "Test List Description";
            wList.Update();
            context.ExecuteQuery();
            Console.WriteLine("List " + wList.Title + " Created");
        }

        public static void GetLists(ClientContext context, Web web)
        {
            context.Load(web.Lists, lists => lists.Include(list => list.Title, list => list.Id));
            context.ExecuteQuery();
            string temp = string.Empty;
            foreach (List list in web.Lists)
                temp += list.Title + ", ";
            Console.WriteLine("List Name are " + temp);

            //Delete List
            List dList = web.Lists.GetByTitle("Test List");
            dList.DeleteObject();
            context.ExecuteQuery();
            Console.WriteLine("Test List deleted");
        }
    }
}

WebOperation.cs File 

using Microsoft.SharePoint.Client;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace ConsoleCSOM
{
    public class WebOperation
    {

        public static void CreateWeb(ClientContext context)
        {
            WebCreationInformation creation = new WebCreationInformation();
            creation.Url = "web1";
            creation.Title = "Web 1";
            creation.Description = " Web 1 Descroption";
            Web newWeb = context.Web.Webs.Add(creation);
            context.ExecuteQuery();
            Console.WriteLine("Web 1 created");
        }

        public static void DeleteWeb(ClientContext context, Web web)
        {
            context.Load(web.Webs, webs => webs.Include(tWeb => tWeb.Title));
            context.ExecuteQuery();
            foreach (Web tWeb in web.Webs)
                if (tWeb.Title == "Web 1")
                {
                    tWeb.DeleteObject();
                    context.ExecuteQuery();
                    Console.WriteLine("Web 1 deleted");
                }
        }

        public static void UpdateTitle(ClientContext context, Web web)
        {
            web.Title = "New Team Site " + DateTime.Now;
            web.Description = "Team Site Description " + DateTime.Now;
            web.Update();
            context.ExecuteQuery();
            Console.WriteLine(web.Title);
            Console.WriteLine(web.Description);
        }

        public static void GetTitle(ClientContext context, Web web)
        {
            context.Load(web, w => w.Title, w => w.Description);
            context.ExecuteQuery();
            Console.WriteLine(web.Title);
            Console.WriteLine(web.Description);
        }
    }
}




No comments:

Post a Comment