Skip to main content

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;
        }

Comments

Popular posts from this blog

How to deal with SharePoint 2010 exception "An exception occurred when trying to issue security token: The server was unable to process the request due to an internal error"

Scenario: You receive the below exception when you try to logon to a site that has been configured to use Claims Based Authentication with a custom membership provider using FBA credentials: Event ID from Event Log  - 8306 An exception occurred when trying to issue security token: The server was unable to process the request due to an internal error.  For more information about the error, either turn on IncludeExceptionDetailInFaults (either from ServiceBehaviorAttribute or from the <serviceDebug> configuration behavior) on the server in order to send the exception information back to the client, or turn on tracing as per the Microsoft .NET Framework 3.0 SDK documentation and inspect the server trace logs.. Explanation: This error started to appear in our QA environment which does not have Visual Studio installed. I have tried starting the service "Claims to Windows Token Service" but that did not help either. I have made sure that all config...

SharePoint SPFX components basic details and understanding

Microsoft developed SharePoint, a web-based platform that enables businesses and organisations to share and manage documents and information. The SharePoint Framework (SPFx) is a set of client-side tools and components that can be used to construct unique solutions on top of SharePoint. The creation of a SharePoint SPFx component will be covered in this blog. Let's address specific requirements before creating a SharePoint SPFx component. Install the necessary software on your computer: Version 10 or later of Node.js SharePoint Framework (SPFx) generator using Git Now that all the prerequisites have been deployed, let's start developing the SharePoint SPFx component. Start by making a new SPFx project. Making a new SPFx application is the initial step. Launch the command prompt and execute the following commands  yo @microsoft/sharepoint The Yeoman generator for the SharePoint Framework will be started using this command. You will be prompted to enter details about your project...

Create Rating Visual Web Part Using Visual Studio 2010,

Create Rating Visual Web Part Using Visual Studio 2010,  also Apply Rating Settings using c#   Back End Design  Register Assembly    <%@ Register Tagprefix="SharePointPortalControls" Namespace="Microsoft.SharePoint.Portal.WebControls" Assembly="Microsoft.SharePoint.Portal, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> Add Control. <div>    Average Ratting :    <SharePointPortalControls:AverageRatingFieldControl ID="PageRatingControl" runat="server"/> </div>