Update all Pages to entire Sites and SubSite using Client Object Model C#


If you want to update, Delete any and all the list, document library, publishing library to entire site collection. Following code will be helpful to achieve this requirements.

public static class Program
    {
        static void Main(string[] args)
        {
            try
            {
 using (ClientContext _context = GetSiteContext(Constants.DeploymentSiteUrl))
                {
              var webs = clientContext.Site.EnumAllWebs(w => w.Title, w => w.Lists);
            foreach (var web in webs)
            {
                foreach (var list in web.Lists)
                {
                    if (list.Title == "Pages")
                    {
                        Console.WriteLine(web.Title + "-----" + list.Title);

                        result.Add(web.Title + list.Title);

                        CamlQuery query = CamlQuery.CreateAllItemsQuery();
                        query.ViewXml = @"";
                        ListItemCollection _pagelibraryitems = list.GetItems(query);

                        clientContext.Load(_pagelibraryitems);
                        clientContext.ExecuteQuery();
                          
                       CamlQuery query = CamlQuery.CreateAllItemsQuery();
                       query.ViewXml = @"";
                       ListItemCollection _pagelibraryitems = list.GetItems(query);

                        foreach (ListItem listItem in _pagelibraryitems)
                        {
                            clientContext.Load(listItem);
                            clientContext.ExecuteQuery();
                            listItem["Title"] = "Value"
                            listItem.Update();
                        }

                    }
                }
           }
}
          }catch (Exception ex){
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("Main" + ex.Message);
                Console.ReadLine();
                
            }
        }

public static List GetAllWebs(this Site demosite, params Expression>[] retrievalsSites)
        {
            var ctx = demosite.Context; 
            var rootWeb = demosite.RootWeb;
            ctx.Load(rootWeb, retrievalsSites);
            var result = new List();
            result.Add(rootWeb);
            AllSubSitesInnter(rootWeb, result, retrievals);
            return result;
        }

private static void AllSubSitesInnter(Web parentWeb, ICollection result, params Expression>[] retrievalsSites)
        {
            var ctx = parentWeb.Context;
            var webs = parentWeb.Webs;
            ctx.Load(webs, wcol => wcol.Include(retrievalsSites));
            ctx.ExecuteQuery();
            foreach (var web in webs)
            {
                result.Add(web);
                AllSubSitesInnter(web, result, retrievalsSites);
            }
        }



   private static ClientContext GetSiteContext(string siteUrl)
        {
            // Request Office365 site from the user
            Console.WriteLine("Authenticating for {0}", siteUrl);

            string userName = GetUserName();
            SecureString pwd = GetPassword();

            ClientContext context = new ClientContext(siteUrl);
            context.AuthenticationMode = ClientAuthenticationMode.Default;
            //For SharePoint Online
            context.Credentials = new SharePointOnlineCredentials(userName, pwd);

            return context;
        }

        /// 
        /// Helper to return the password
        /// 
        /// SecureString representing the password
        public static SecureString GetObjPassword()
        {
            SecureString SSPassword = new SecureString();
            try
            {
                string strpassword = Constants.strObjPassword;
                foreach (char c in strpassword)
                {
                    SSPassword.AppendChar(c);
                }

                /// This code is for typing and getting password
                //for (ConsoleKeyInfo keyInfoValue = Console.ReadKey(true); keyInfoValue.Key != ConsoleKey.Enter; keyInfoValue= Console.ReadKey(true))
                //{
                //    if (keyInfoValue .Key == ConsoleKey.Backspace)
                //    {
                //        if (sStrPwd.Length > 0)
                //        {
                //            sStrPwd.RemoveAt(sStrPwd.Length - 1);
                //            Console.SetCursorPosition(Console.CursorLeft - 1, Console.CursorTop);
                //            Console.Write(" ");
                //            Console.SetCursorPosition(Console.CursorLeft - 1, Console.CursorTop);
                //        }
                //    }
                //    else if (keyInfoValue.Key != ConsoleKey.Enter)
                //    {
                //        Console.Write("*");
                //        sStrPwd.AppendChar(keyInfoValue.KeyChar);
                //    }

                //}
            }
            catch (Exception e)
            {
                SSPassword = null;
                Console.WriteLine(e.Message);
            }

            return SSPassword;
        }

        /// 
        /// Helper to return the User name.
        /// 
        /// 
        public static string GetObjUserName()
        {
            string ObjUserName = string.Empty;
            try
            {
                ObjUserName = Constants.strUserName;
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                ObjUserName = string.Empty;
            }
            return ObjUserName;
        }

Popular posts from this blog

Custom Form Base Login Web Part With Sharepoint 2010

Register Event Handlers plus free Site Settings – Manage Event Handlers Add-on solution

Real World Branding with SharePoint 2010 Publishing Sites