Search This Blog

Monday, February 9, 2015

Create a customList in root/top level site(Programmatically Used Server Object Model)

Get ALL WebApplications in a FARM


SPFarm farm = SPFarm.Local;
            foreach (SPService service in farm.Services)
            {
                if (service is SPWebService)
                {
                    SPWebService webService = service as SPWebService;


                    foreach(SPWebApplication webApp in webService.WebApplications)
                    {
                        Console.WriteLine(webApp.DisplayName);
                      


                    }
                }
            }


Get ALL WebApplictaion ContentDatabases in a FARM 




            SPFarm farm = SPFarm.Local;
            foreach (SPService service in farm.Services)
            {
                if (service is SPWebService)
                {
                    SPWebService webService = service as SPWebService;


                    foreach(SPWebApplication webApp in webService.WebApplications)
                    {
                        Console.WriteLine(webApp.DisplayName);
                        foreach(SPContentDatabase cdb in webApp.ContentDatabases)
                        {
                            Console.WriteLine(cdb.DatabaseConnectionString);
                            Console.WriteLine(cdb.Name);
                        }


                      


                    }
                }


Get ALL SiteCollections in an WebApplictaion 


            SPFarm farm = SPFarm.Local;
            foreach (SPService service in farm.Services)
            {
                if (service is SPWebService)
                {
                    SPWebService webService = service as SPWebService;


                    foreach(SPWebApplication webApp in webService.WebApplications)
                    {
                        Console.WriteLine(webApp.DisplayName);
                        foreach(SPSite site in webApp.Sites)
                        {
                            Console.WriteLine(site.Url);
                          
                        }


                      


                    }
                }
            }

Get ALL Sites in SiteCollections

  String siteCollectionUrl="http://sp2010:21016";
     SPSite site = new SPSite(siteCollectionUrl);  
            foreach(SPWeb web in site.AllWebs)
            {
                Console.WriteLine(web.Title);
                Console.WriteLine(web.Url);
            }
Update site title

 SPSite site = new SPSite("http://sp2010:21016");
            SPWeb rootweb =site.RootWeb;
            rootweb.Title = "Sales data";
            rootweb.Update();

Delete  site from SiteCollection

            SPSite site = new SPSite("http://sp2010:21016");
            SPWeb rootweb = site.AllWebs["Sales"]; //deleting sales site.
            rootweb.Delete();

Find Site Template


SPSite site = new SPSite("http://sp2010:21016");
            SPWeb web = site.RootWeb;
            Console.WriteLine(web.WebTemplate);
            Console.WriteLine(web.WebTemplateId);



Get All lists from root/top level site

each site collection comes with top/root level site.



            SPSite site = new SPSite("http://sp2010:21016");
            SPWeb web = site.RootWeb;
            foreach (SPList list in web.Lists)
            {
                Console.WriteLine(list.Title);
                
            }


Get All DOCUMENT LIBRARIES from root/top level site



            SPSite site = new SPSite("http://sp2010:21016");
            SPWeb web = site.RootWeb;
            foreach (SPList list in web.Lists)
            {
                SPDocumentLibrary doclibrary = list as SPDocumentLibrary;
                if (doclibrary != null)
                Console.WriteLine(list.Title);
                
            }

Upload a excel document to Shared Document Library in root/top level site
1) open file & construct byte array

            System.IO.FileStream fs = new System.IO.FileStream(@"C:\salesdata\salesdata.xlsx", System.IO.FileMode.Open);
            byte[]bytes=new byte[fs.Length];
            int numbytestoread = (int)fs.Length;
            int numbytesread = 0;
            while (numbytestoread > 0)
            {
                int n = fs.Read(bytes, numbytesread, numbytestoread);
               numbytesread += n;
               numbytestoread -= n;
               if (n == 0) break;
            }
            
2) add to document library by giving url + bytes read from step 1


            SPSite site = new SPSite("http://sp2010:21016");
            SPWeb web = site.RootWeb;
            SPDocumentLibrary
                docLibrary =web.Lists["Shared Documents"] as SPDocumentLibrary;
            docLibrary.RootFolder.Files.Add("http://sp2010:21016/Shared%20Documents/excel1.xlsx", bytes);
            docLibrary.Update();
            fs.Close();

Create a customList  in root/top level site
1) Create custom list with
       columns 
  1)  Product   text field
 2)   Amount  number
3)   Qty  number
4)  Total   calculated field.


 SPSite site = new SPSite("http://sp2010:21016");
            SPWeb web = site.RootWeb;
            SPList oldList=web.Lists.TryGetList("Product-custom-list");
            if (oldList != null)//delete list if already exists
            {
                oldList.Delete();
               
            }


            Guid newList= web.Lists.Add("Product-custom-list", "Custom List desc", SPListTemplateType.GenericList); 


            SPList list =web.Lists[newList];
            SPFieldCollection fieldCollection=list.Fields;
            
             //add product,amount,qty,total fields


            fieldCollection.Add("Amount", SPFieldType.Number, false);
            fieldCollection.Add("Qty", SPFieldType.Number, false);


            string newcalField = fieldCollection.Add("Total", SPFieldType.Calculated, false);


            SPFieldCalculated strNewField =
        (SPFieldCalculated)fieldCollection[newcalField];
            strNewField.Formula = "=[Amount]*[Qty]";
            strNewField.Update();
           fieldCollection.Add("Product", SPFieldType.Text, true);




            list.OnQuickLaunch = true; //add to quick launch
            list.Update(); //update the list  first then default view as shown below.


            // once list is updated with fields, get default view, add those fields.
            SPView view =list.Views["All Items"];
            view.ViewFields.Add("Product");
            view.ViewFields.Add("Amount");
            view.ViewFields.Add("Qty");
            view.ViewFields.Add("Total");
            view.Update();



Create Excel template Document Library  in root/top level site



            SPSite site = new SPSite("http://sp2010:21016");
            SPWeb web = site.RootWeb;
            SPDocumentLibrary prodDocLib = web.Lists.TryGetList("Product-Specification-doclib") as SPDocumentLibrary;


            if (prodDocLib != null)
            {
                Console.WriteLine("DOcument library already exists");
                return;
            }
            SPListTemplate listTemplate = null;
            foreach (SPListTemplate listTemp in web.ListTemplates)
            {
                if (listTemp.Type == SPListTemplateType.DocumentLibrary)
                {
                    Console.WriteLine(listTemp.Type + "\t-->" + listTemp.Name);
                    listTemplate = listTemp;
                    break;
                }
            }


            foreach (SPDocTemplate docTemp in web.DocTemplates)
            {
                Console.WriteLine(docTemp.Name + "\t\t\t--->" + docTemp.Type);
                if (docTemp.Type == 122)
                {


                    Guid guid = web.Lists.Add("Prd specification",
                        "Prduct Specification Documents", 
                         listTemplate, docTemp);


                    SPDocumentLibrary prdLibrary=web.Lists[guid] as SPDocumentLibrary;
                    prdLibrary.OnQuickLaunch = true;
                    prdLibrary.Update();
                    break;


                }
            }

Create content type programatically
            SPSite site = new SPSite("http://sp2010:21016");
            SPWeb web = site.RootWeb;
            //SPWeb web = site.OpenWeb();
            //foreach (SPContentType ct in web.ContentTypes)
            //{
            //    Console.WriteLine(ct.Name+"\t-->"+ct.Group);
            //}
            //return;
            SPContentTypeId contentTypeID = SPBuiltInContentTypeId.Item;
            SPContentType cType = new SPContentType(web.ContentTypes[contentTypeID],
                web.ContentTypes, "SalesCT1");
            cType.Description = "Sales data content type";
            cType.Group = "Company-Sales-Data";
            cType.Sealed = true;
            cType.Hidden = false;
            web.ContentTypes.Add(cType);
          
//adding 4 fields 1.sales man 2.yr 2005,2006,2007

          string fieldname=web.Fields.Add("Sales Man", SPFieldType.Text, false);
//first add to web field collection then link to content type.
           SPField field= web.Fields.GetField(fieldname);
           SPFieldLink fieldLink = new SPFieldLink(field);
           cType.FieldLinks.Add(fieldLink);

           fieldname = web.Fields.Add("2005", SPFieldType.Number, false);
           field = web.Fields.GetField(fieldname);
           fieldLink = new SPFieldLink(field);
           cType.FieldLinks.Add(fieldLink);

            fieldname = web.Fields.Add("2006", SPFieldType.Number, false);
           field = web.Fields.GetField(fieldname);
           fieldLink = new SPFieldLink(field);
           cType.FieldLinks.Add(fieldLink);

           fieldname = web.Fields.Add("2007", SPFieldType.Number, false);
           field = web.Fields.GetField(fieldname);
           fieldLink = new SPFieldLink(field);
           cType.FieldLinks.Add(fieldLink);

            
            cType.Update();

Add content type to a List programatically in sharepoint 2010


            SPSite site = new SPSite("http://sp2010:21016");
            SPWeb web = site.RootWeb;
            SPList list=web.Lists.TryGetList("Sales-Data");
            list.ContentTypesEnabled = true; //enable content type first
            list.Update();
            SPContentType salesct = web.ContentTypes["SalesCT1"];
            list.ContentTypes.Add(salesct);//add content type
           
            list.Update(); //update list

No comments:

Post a Comment