Thursday 9 March 2017

Add Webpart programmatically

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
//using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.WebPartPages;
//using System.Web;
using System.Xml;
using IQS_CommentsView;

namespace IQS_AddwebpartProgramatically
{
    class Program
    {

        static void Main(string[] args)
        {
            int counter = 0;
            Console.WriteLine("Enter the Name of the site");
            Console.WriteLine("Enter the Zone");
            string ZoneId = Console.ReadLine();
            string ListName = "DW Individ List";
            string subsite = ""; string url = ""; int intLargestZoneIndex = 0;
            Program obj = new Program();
            using (SPSite site = new SPSite(""))
            {
                SPWeb web = site.OpenWeb();
                SPList spList = web.Lists[ListName];
                            SPListItemCollection items = spList.Items;

                            foreach (SPListItem item in items)
                            {
                                try
                                {
                                    int itmcnt = items.Count;
                                    if (counter < 3)//Set the counter
                                    {
                                        subsite = Convert.ToString(item["Link"]);
                                        string id = Convert.ToString(item["DW Individ No"]);
                                        string[] subsiteurl = subsite.Split(',');
                                        url = subsiteurl[0];


                                        web.AllowUnsafeUpdates = true;
                                        SPLimitedWebPartManager webParts = web.GetLimitedWebPartManager(url + "/default.aspx", System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared); //Get webpart Manager
                                        //Create an instance of Custom Webpart and add in a Webpart zone
                                        IQS_CommentsView.IQS_CommentsViewWebPart wp = new IQS_CommentsViewWebPart();
                                        wp.Title = "My WebPart Using Object Model"; //Give Title
                                        intLargestZoneIndex = obj.getLargestZoneIndex(webParts);//Get largest zoneIndex, This is to add webpart to the last of webpart zone
                                        webParts.AddWebPart(wp, ZoneId, intLargestZoneIndex + 1);//If webpart should be added in the begining give third parameter 0(Zone index)
                                        webParts.SaveChanges(wp);
                                        web.Update();
                                    }
                                }
                                catch { }
                counter++; Console.WriteLine(counter);
                }
                web.Dispose();
                site.Dispose();
            }

        }
        public int getLargestZoneIndex(SPLimitedWebPartManager wpm)
        {
            int largestIndex = 0; int newIndex = 0;
            foreach (var webPartOnPage in wpm.WebParts)//GEt webparts in the page
            {
                try
                {
                    System.Web.UI.WebControls.WebParts.WebPart webPartObj =
                          (System.Web.UI.WebControls.WebParts.WebPart)(webPartOnPage);
                   
                    newIndex = webPartObj.ZoneIndex;
                    if (largestIndex < newIndex)//Find the largest of ZoneIndex
                    {
                        largestIndex = newIndex;
                    }
                }
                catch { }
            }
            return largestIndex;

        }
    }
}

Programmatically Update Quick Launch Sharepoint 2007

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

namespace UpdateQL
{
    class Program
    {
        static void Main(string[] args)
        {
             
            int i = 0;
            string ListName = "";
            //string ListName = "ess";
            Int32 intStartItmID = 32;
            Int32 intEndItmID = 32;


            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                using (SPSite site = new SPSite(""))
                {
                    SPWeb web = site.OpenWeb();
                    SPList spList = web.Lists[ListName];
                    SPQuery spQItems = new SPQuery();
                    spQItems.Query = "<Where>   <And>  <Geq>  <FieldRef Name='ID' /><Value Type='Counter'>" + intStartItmID + "</Value> " +
                                   "  </Geq>         <Leq><FieldRef Name='ID' />     <Value Type='Counter'>" + intEndItmID + "</Value>   " +
                                   "  </Leq>               </And>       </Where>";
                    SPListItemCollection items = spList.GetItems(spQItems);
                    if (items.Count > 0)
                    {
                        i = items.Count;
                        foreach (SPListItem item in items)
                        {

                            if (item["Vessel_x0020_Control_x0020_Link"] != null)
                            {
                                SPFieldUrlValue spfuv = new SPFieldUrlValue(item["Vessel_x0020_Control_x0020_Link"].ToString());
                                using (SPSite subSite = new SPSite(spfuv.Url))
                                {
                                    using (SPWeb subWeb = subSite.OpenWeb())
                                    {
                                        SPNavigationNodeCollection nodeColl = subWeb.Navigation.QuickLaunch;
                                        int count = nodeColl.Count;
                                        foreach (SPNavigationNode heading in nodeColl)
                                        {
                                           
                                            foreach (SPNavigationNode links in heading.Children)
                                            {
                                                int iHeadCount = heading.Children.Count;  
                                                if (links.Title == "Resources internal")
                                                {
                                                    links.Delete();
                                                    break;
                                                }
                                            }
                                        }
                                    }
                                }

                            }

                            i = i - 1;
                        }
                    }

                }
            });
        }
       
    }
    public class URL
    {
        public static void UpdateURL(SPNavigationNode cNode, string from, string to)
        {


            if (cNode.Url.IndexOf(from) > 0)
            {
                Console.WriteLine("FOUND CULPRIT -> " + cNode.Title.ToString() +
             " :: " + cNode.Url.ToString());
                cNode.Url = cNode.Url.ToString().Replace(from, to);
                cNode.Update();
                Console.WriteLine(cNode.Title.ToString() + " :: " + cNode.Url.ToString());
            }

        }
    }
}

Delete a Webpart in sharepoint 2007

 public static void RemoveWebPart()
//        {
//            using (SPSite spSite = new SPSite(""))
//            {
//                using (SPWeb spWeb = spSite.OpenWeb())
//                {
//                    SPList lstdocking = spWeb.Lists["Projects - general"];
//                    SPQuery spQrydocking = new SPQuery();
//                    spQrydocking.Query = @"<Where>
//      <And>
//         <Eq>
//            <FieldRef Name='Project_x0020_type_x002e_' />
//            <Value Type='Text'>Dry docking</Value>
//         </Eq>
//         <IsNotNull>
//            <FieldRef Name='Link' />
//         </IsNotNull>
//      </And>
//   </Where>";
//                    SPListItemCollection itemColl = lstdocking.GetItems(spQrydocking);
//                    foreach (SPListItem item in itemColl)
//                    {
//                        SPFieldUrlValue value = new SPFieldUrlValue(Convert.ToString(item["Link"]));
//                        string URL = value.Url;
//                        if (URL != "" && URL != null)
//                        {
//                            using (SPSite site = new SPSite(URL))
//                            {
//                                using (SPWeb web = site.OpenWeb())
//                                {
//                                    web.AllowUnsafeUpdates = true;
//                                    Microsoft.SharePoint.WebPartPages.SPLimitedWebPartManager mgr = null;
//                                    mgr = web.GetLimitedWebPartManager("default.aspx", System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared);
//                                    SPLimitedWebPartCollection wpc = mgr.WebParts;
//                                    try
//                                    {
//                                        foreach (System.Web.UI.WebControls.WebParts.WebPart webPart in wpc)
//                                        {

//                                            {
//                                                if (webPart.Title == "IQS_DocumentViewer")
//                                                {
//                                                    using (webPart)
//                                                    {
//                                                        // mgr.DeleteWebPart(webPart);
//                                                        Console.WriteLine("Webpart Deleted : " + web.Name);
//                                                    }
//                                                }
//                                            }
//                                        }
//                                    }
//                                    catch { }
//                                }
//                            }
//                        }
//                    }
//                }
//            }



//        }

Set Permission to a list and web in sharepoint 2007

  public static void Setpermission(SPWeb subWeb, SPListItem lstItm)
        {
            bool status= true;
           
            SPRoleAssignmentCollection spRoleAssignmentCol = lstItm.RoleAssignments;
            foreach (SPRoleAssignment sprol in spRoleAssignmentCol)
            {
                if (sprol.Member.Name == "Directors")
                {
                    status = false;
                }
            }
            if (status)
            {
                if (!lstItm.ParentList.HasUniqueRoleAssignments)
                {
                    lstItm.ParentList.BreakRoleInheritance(true);
                }
                SPGroup sgroup = lstItm.Web.Groups["Directors"];
                // set unique permissions for listitem. Current user will automatically get full control
                lstItm.BreakRoleInheritance(false);
                SPRoleAssignment spRoleAssignment = new SPRoleAssignment(sgroup);
                //SPRoleDefinition spRoleDefinition = elevatedWeb.RoleDefinitions[LocalizationStrings.NewProject.NewProjectStrings.ContributePermission];
                SPRoleDefinition spRoleDefinition = lstItm.Web.RoleDefinitions["Contribute"];
                if (!spRoleAssignment.RoleDefinitionBindings.Contains(spRoleDefinition))
                    spRoleAssignment.RoleDefinitionBindings.Add(spRoleDefinition);

                lstItm.RoleAssignments.Add(spRoleAssignment);
                subWeb.RoleAssignments.Add(spRoleAssignment);
                subWeb.Update();
            }
        }

Delete a Field From a list Programmatically sharepoint 2007

 using (SPSite site = new SPSite(strSiteUrl))
            {
                using (SPWeb web = site.OpenWeb())
                {
                    SPList spls = web.Lists[strList];
                    string[] strArrFields = strFields.Split(',');
                    foreach (string strfield in strArrFields)
                    {


                        foreach (SPField spfield in spls.Fields)
                        {
                            if (spfield.Title == strfield && spfield.InternalName == "Department_x0020_Manager")
                            {
                                spfield.Delete();
                                break;
                            }
                        }
                    }
                }
            }

Set field as optional in Sharepoint 2007

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

namespace ConsoleApplication_SetFieldOptional
{
    class Program
    {
        static void Main(string[] args)
        {
           
            //string strLinkField = "Site,Link,Link";
            //string[] strArrlist=strListName.Split(',');
            // string[] strArrLinkField=strLinkField.Split(',');
            // SPUser userAdm = tempCurrentWeb.AllUsers[@"\site-admin"];
            // SPUserToken tokenPO = userAdm.UserToken;
             using (SPSite site = new SPSite(strSiteUrl))
            {
                using(SPWeb web= site.OpenWeb())
                {
                    foreach (SPWeb web1 in web.Webs)
                    {
                        // SPList spls = web.Lists[strListName];
                        //foreach (SPListItem item in spls.Items)
                        {
                            // string strLink=item[spls.Fields[strArrLinkField[i]].InternalName]!= null ?item[spls.Fields[strArrLinkField[i]].InternalName].ToString().Split(',')[0]:"";
                            // if (strLink != "")
                            {
                                using (SPSite Subsite = new SPSite(web1.Url))
                                {
                                    using (SPWeb newSubWeb = openWebPermissions(Subsite.OpenWeb()))
                                    {
                                        SPUser userAdm = newSubWeb.AllUsers[@"iqubes\iqs-site-admin"];
                                        SPUserToken tokenPO = userAdm.UserToken;
                                        #region code to make the "Resource" field of "Resources" list hidden
                                        try
                                        {
                                           
                                            HideField(newSubWeb, tokenPO, "Resources", "Resource");
                                        }
                                        catch
                                        {
                                            ;
                                        }
                                        #endregion
                                        #region code to make the "Contact name" field of "Contacts" list optional
                                        try
                                        {
                                            //SPUser userAdm = tempCurrentWeb.AllUsers[Utility.AdminAccount];
                                            //SPUserToken tokenPO = userAdm.UserToken;
                                            SetFieldOptional(newSubWeb, tokenPO, "Contacts", "Contact name");
                                        }
                                        catch
                                        {
                                            ;
                                        }
                                        #endregion
                                        #region code to make the "Title" field of "Documents" list optional
                                        try
                                        {
                                            //SPUser userAdm = tempCurrentWeb.AllUsers[Utility.AdminAccount];
                                            //SPUserToken tokenPO = userAdm.UserToken;
                                            SetFieldOptional(newSubWeb, tokenPO, "Documents", "Title");

                                        }
                                        catch
                                        {
                                            ;
                                        }
                                        #endregion
                                    }
                                }
                            }
                        }
                     
                    }
                }
            }
        }

        public static void SetFieldOptional(SPWeb newSubWeb, SPUserToken tokenPO, string Listname, string Fieldname)
        {
            try
            {

                //SPSecurity.RunWithElevatedPrivileges(delegate()
                //{
                //    using (SPSite site = new SPSite(newSubWeb.Url, tokenPO))
                //    {
                //        using (SPWeb web = site.OpenWeb())
                //        {
                newSubWeb.AllowUnsafeUpdates = true;
                SPList SubList = newSubWeb.Lists[Listname];
                SPContentType SubContentType = SubList.ContentTypes[0];
                SPField spSubField = SubContentType.Fields.GetField(Fieldname);
                SPFieldLinkCollection linksFlds = SubContentType.FieldLinks;
                var Curlink = linksFlds[spSubField.Id];
                if (Curlink != null && Curlink.Required == true)
                {
                    Curlink.Required = false;
                    SubContentType.Update(false);
                }
                newSubWeb.AllowUnsafeUpdates = false;
                //        }
                //    }
                //});
            }
            catch
            {
            }
        }
        public static void HideField(SPWeb newSubWeb, SPUserToken tokenPO, string Listname, string Fieldname)
        {
            try
            {

                //SPSecurity.RunWithElevatedPrivileges(delegate()
                //{
                //    using (SPSite site = new SPSite(newSubWeb.Url, tokenPO))
                //    {
                //        using (SPWeb web = site.OpenWeb())
                //        {
                            newSubWeb.AllowUnsafeUpdates = true;
                            SPList SubList = newSubWeb.Lists[Listname];
                            SPContentType SubContentType = SubList.ContentTypes[0];
                            SPField spSubField = SubContentType.Fields.GetField(Fieldname);
                            SPFieldLinkCollection linksFlds = SubContentType.FieldLinks;
                            var Curlink = linksFlds[spSubField.Id];
                            if (Curlink != null && Curlink.Required == true)
                            {
                                Curlink.Hidden = true;
                                SubContentType.Update(false);
                            }
                            newSubWeb.AllowUnsafeUpdates = false;
                //        }
                //    }
                //});
            }
            catch
            {
            }
        }
        private const string _adminUser = "-site-admin";
        private static SPWeb openWebPermissions(SPWeb currentWeb)
        {
            try
            {
                SPUser user = currentWeb.AllUsers[_adminUser];
                SPUserToken token = user.UserToken;
                SPSite site = new SPSite(currentWeb.Url, token);
                SPWeb web = site.OpenWeb();
                web.AllowUnsafeUpdates = true;

                return web;
            }
            catch (Exception ex)
            {

            }
            return currentWeb;
        }
    }
}

Get User And Group Console

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

namespace ConsoleApplication_GetUserandGroup
{
    class Program
    {
        static void Main(string[] args)
        {
         
            using (SPSite site = new SPSite(strSite))
            {
                using (SPWeb web = site.OpenWeb())
                {
                    try
                    {
                        SPUserCollection alluser = web.AllUsers;
                        foreach (SPUser user in alluser)
                        {
                            string strUserandGroup = "";
                            foreach (SPGroup grp in user.Groups)
                            {
                                strUserandGroup = strUserandGroup != "" ? strUserandGroup + "," + grp.Name : grp.Name;
                            }
                            strUserandGroup = user.Name + ":" + strUserandGroup;
                            StreamWriter OurStream;
                            if (!File.Exists(@"C:\CCS\~IQS-Svn-Code\Console Apps\ConsoleApplication_GetUserandGroup\UserandGroup.txt"))
                                OurStream = File.CreateText(@"C:\CCS\~IQS-Svn-Code\Console Apps\ConsoleApplication_GetUserandGroup\UserandGroup.txt");
                            else
                                OurStream = File.AppendText(@"C:\CCS\~IQS-Svn-Code\Console Apps\ConsoleApplication_GetUserandGroup\UserandGroup.txt");
                            // OurStream.WriteLine("---------------------------------------------------------");
                            OurStream.WriteLine(strUserandGroup);
                            OurStream.Close();
                        }
                    }
                    catch { }
                    try
                    {
                        SPGroupCollection allgroups = web.Groups;
                        foreach (SPGroup grp in allgroups)                      
                        {
                            StreamWriter OurStream1;
                            string strGroupUser = "";
                            foreach (SPUser user in grp.Users)
                            {
                                strGroupUser = strGroupUser != "" ? strGroupUser + "," + user.Name : user.Name;
                            }
                            strGroupUser = grp.Name + ":" + strGroupUser;

                            if (!File.Exists(@"C:\CCS\~IQS-Svn-Code\Console Apps\ConsoleApplication_GetUserandGroup\GroupandUsers.txt"))
                                OurStream1 = File.CreateText(@"C:\CCS\~IQS-Svn-Code\Console Apps\ConsoleApplication_GetUserandGroup\GroupandUsers.txt");
                            else
                                OurStream1 = File.AppendText(@"C:\CCS\~IQS-Svn-Code\Console Apps\ConsoleApplication_GetUserandGroup\GroupandUsers.txt");
                            // OurStream.WriteLine("---------------------------------------------------------");
                            OurStream1.WriteLine(strGroupUser);
                            OurStream1.Close();
                        }
                    }
                    catch { }



                }
            }
        }
    }
}