Esempio n. 1
0
        internal static void LocalizeView(this Microsoft.SharePoint.Client.View view, Web web, string token, TokenParser parser, PnPMonitoredScope scope)
        {
            if (CanUseAcceptLanguageHeaderForLocalization(web))
            {
                var context = web.Context;
                //preserve Default Language to set last since otherwise Entries in QuickLaunch can show wrong language
                web.EnsureProperties(w => w.Language, w => w.IsMultilingual, w => w.SupportedUILanguageIds);
                if (web.IsMultilingual)
                {
                    //just update if web is multilingual
                    var culture = new CultureInfo((int)web.Language);

                    var resourceValues = parser.GetResourceTokenResourceValues(token);

                    var defaultLanguageResource = resourceValues.FirstOrDefault(r => r.Item1.Equals(culture.Name, StringComparison.InvariantCultureIgnoreCase));
                    if (defaultLanguageResource != null)
                    {
                        foreach (var resourceValue in resourceValues.Where(r => !r.Item1.Equals(culture.Name, StringComparison.InvariantCultureIgnoreCase)))
                        {
                            var translationculture = new CultureInfo(resourceValue.Item1);
                            if (web.SupportedUILanguageIds.Contains(translationculture.LCID))
                            {
                                // Save property with correct locale on the request to make it stick
                                // http://sadomovalex.blogspot.no/2015/09/localize-web-part-titles-via-client.html
                                context.PendingRequest.RequestExecutor.WebRequest.Headers["Accept-Language"] = resourceValue.Item1;
                                view.Title = resourceValue.Item2;
                                view.Update();
                                context.ExecuteQueryRetry();
                            }
                        }
                        //Set for default Language of Web
                        context.PendingRequest.RequestExecutor.WebRequest.Headers["Accept-Language"] = defaultLanguageResource.Item1;
                        view.Title = defaultLanguageResource.Item2;
                        view.Update();
                        context.ExecuteQueryRetry();
                    }
                    else
                    {
                        //skip since default language of web is not contained in resource file
                        scope.LogWarning(CoreResources.Provisioning_Extensions_ViewLocalization_DefaultLngMissing_Skip);
                    }
                }
                else
                {
                    //skip since web is not multilingual
                    scope.LogWarning(CoreResources.Provisioning_Extensions_ViewLocalization_NoMUI_Skip);
                }
            }
            else
            {
                // warning
                scope.LogWarning(CoreResources.Provisioning_Extensions_ViewLocalization_Skip);
            }
        }
Esempio n. 2
0
        void ProvisionSample2(Web web)
        {
            //Delete list if it already exists
            ListCollection     lists   = web.Lists;
            IEnumerable <List> results = web.Context.LoadQuery <List>(lists.Where(list => list.Title == "CSR-Substring-long-text"));

            web.Context.ExecuteQuery();
            List existingList = results.FirstOrDefault();

            if (existingList != null)
            {
                existingList.DeleteObject();
                web.Context.ExecuteQuery();
            }

            //Create list
            ListCreationInformation creationInfo = new ListCreationInformation();

            creationInfo.Title        = "CSR-Substring-long-text";
            creationInfo.TemplateType = (int)ListTemplateType.Announcements;
            List newlist = web.Lists.Add(creationInfo);

            newlist.Update();
            web.Context.Load(newlist);
            web.Context.ExecuteQuery();

            //Add items
            Microsoft.SharePoint.Client.ListItem item1 = newlist.AddItem(new ListItemCreationInformation());
            item1["Title"] = "Announcement 1";
            item1["Body"]  = "Aaaaaa Bbbbbb Cccccc Dccccc Eeeeee Ffffff Gggggg Hhhhhh Iiiiii Jjjjjj Kkkkkk Llllll Mmmmmm Nnnnnn Oooooo Pppppp Qqqqqq Rrrrrr Ssssss Tttttt Uuuuuu Vvvvvv Wwwwww Xxxxx Yyyyyy Zzzzzz";
            item1.Update();

            Microsoft.SharePoint.Client.ListItem item2 = newlist.AddItem(new ListItemCreationInformation());
            item2["Title"] = "Announcement 2";
            item2["Body"]  = "Aaaaaa Bbbbbb Cccccc Dccccc Eeeeee Ffffff Gggggg Hhhhhh Iiiiii Jjjjjj Kkkkkk Llllll Mmmmmm Nnnnnn Oooooo Pppppp Qqqqqq Rrrrrr Ssssss Tttttt Uuuuuu Vvvvvv Wwwwww Xxxxx Yyyyyy Zzzzzz";
            item2.Update();

            Microsoft.SharePoint.Client.ListItem item3 = newlist.AddItem(new ListItemCreationInformation());
            item3["Title"] = "Announcement 3";
            item3["Body"]  = "Aaaaaa Bbbbbb Cccccc Dccccc Eeeeee Ffffff Gggggg Hhhhhh Iiiiii Jjjjjj Kkkkkk Llllll Mmmmmm Nnnnnn Oooooo Pppppp Qqqqqq Rrrrrr Ssssss Tttttt Uuuuuu Vvvvvv Wwwwww Xxxxx Yyyyyy Zzzzzz";
            item3.Update();

            //Create sample view
            ViewCreationInformation sampleViewCreateInfo = new ViewCreationInformation();

            sampleViewCreateInfo.Title            = "CSR Sample View";
            sampleViewCreateInfo.ViewFields       = new string[] { "Title", "Body" };
            sampleViewCreateInfo.SetAsDefaultView = true;
            Microsoft.SharePoint.Client.View sampleView = newlist.Views.Add(sampleViewCreateInfo);
            sampleView.Update();
            web.Context.Load(newlist, l => l.DefaultViewUrl);
            web.Context.ExecuteQuery();

            //Register JS files via JSLink properties
            RegisterJStoWebPart(web, newlist.DefaultViewUrl, "~sitecollection/Style Library/JSLink-Samples/SubstringLongText.js");
        }
Esempio n. 3
0
        void ProvisionSample7(Web web)
        {
            //Delete list if it already exists
            ListCollection lists = web.Lists;

            web.Context.Load(web.CurrentUser, i => i.Id);
            IEnumerable <List> results = web.Context.LoadQuery <List>(lists.Where(list => list.Title == "CSR-Read-only-SP-Controls"));

            web.Context.ExecuteQuery();
            List existingList = results.FirstOrDefault();

            if (existingList != null)
            {
                existingList.DeleteObject();
                web.Context.ExecuteQuery();
            }

            //Create list
            ListCreationInformation creationInfo = new ListCreationInformation();

            creationInfo.Title        = "CSR-Read-only-SP-Controls";
            creationInfo.TemplateType = (int)ListTemplateType.Tasks;
            List newlist = web.Lists.Add(creationInfo);

            newlist.Update();
            web.Context.Load(newlist);
            web.Context.ExecuteQuery();

            //Add items
            Microsoft.SharePoint.Client.ListItem item1 = newlist.AddItem(new ListItemCreationInformation());
            item1["Title"]      = "Task 1";
            item1["StartDate"]  = "2014-1-1";
            item1["DueDate"]    = "2014-2-1";
            item1["AssignedTo"] = new FieldLookupValue {
                LookupId = web.CurrentUser.Id
            };
            item1.Update();


            //Create sample view
            ViewCreationInformation sampleViewCreateInfo = new ViewCreationInformation();

            sampleViewCreateInfo.Title            = "CSR Sample View";
            sampleViewCreateInfo.ViewFields       = new string[] { "DocIcon", "LinkTitle", "DueDate", "AssignedTo" };
            sampleViewCreateInfo.SetAsDefaultView = true;
            Microsoft.SharePoint.Client.View sampleView = newlist.Views.Add(sampleViewCreateInfo);
            sampleView.Update();
            web.Context.Load(newlist,
                             l => l.DefaultEditFormUrl);
            web.Context.ExecuteQuery();

            //Register JS files via JSLink properties
            RegisterJStoWebPart(web, newlist.DefaultEditFormUrl, "~sitecollection/Style Library/JSLink-Samples/ReadOnlySPControls.js");
        }
Esempio n. 4
0
        void ProvisionSample6(Web web)
        {
            //Delete list if it already exists
            ListCollection     lists   = web.Lists;
            IEnumerable <List> results = web.Context.LoadQuery <List>(lists.Where(list => list.Title == "CSR-Email-Regex-Validator"));

            web.Context.ExecuteQuery();
            List existingList = results.FirstOrDefault();

            if (existingList != null)
            {
                existingList.DeleteObject();
                web.Context.ExecuteQuery();
            }

            //Create list
            ListCreationInformation creationInfo = new ListCreationInformation();

            creationInfo.Title        = "CSR-Email-Regex-Validator";
            creationInfo.TemplateType = (int)ListTemplateType.GenericList;
            List newlist = web.Lists.Add(creationInfo);

            newlist.Update();
            web.Context.Load(newlist);
            web.Context.ExecuteQuery();

            //Add field
            newlist.Fields.AddFieldAsXml("<Field Type=\"" + FieldType.Text + "\" Name=\"Email\" DisplayName=\"Email\" ID=\"" + Guid.NewGuid() + "\" Group=\"CSR Samples\" />", false, AddFieldOptions.DefaultValue);
            newlist.Update();
            web.Context.ExecuteQuery();

            //Add items
            Microsoft.SharePoint.Client.ListItem item1 = newlist.AddItem(new ListItemCreationInformation());
            item1["Title"] = "Email address";
            item1["Email"] = "*****@*****.**";
            item1.Update();

            //Create sample view
            ViewCreationInformation sampleViewCreateInfo = new ViewCreationInformation();

            sampleViewCreateInfo.Title            = "CSR Sample View";
            sampleViewCreateInfo.ViewFields       = new string[] { "LinkTitle", "Email" };
            sampleViewCreateInfo.SetAsDefaultView = true;
            Microsoft.SharePoint.Client.View sampleView = newlist.Views.Add(sampleViewCreateInfo);
            sampleView.Update();

            web.Context.Load(newlist, l => l.DefaultNewFormUrl, l => l.DefaultEditFormUrl);
            web.Context.ExecuteQuery();

            //Register JS files via JSLink properties
            RegisterJStoWebPart(web, newlist.DefaultNewFormUrl, "~sitecollection/Style Library/JSLink-Samples/RegexValidator.js");
            RegisterJStoWebPart(web, newlist.DefaultEditFormUrl, "~sitecollection/Style Library/JSLink-Samples/RegexValidator.js");
        }
Esempio n. 5
0
        public bool DeleteView(string ListName, string ViewName)
        {
            bool isTaskDone = false;

            try
            {
                Microsoft.SharePoint.Client.View deleteView = ViewAddEdit.isCtx.Web.Lists.GetByTitle(ListName).Views.GetByTitle(ViewName);
                deleteView.Update();
                ViewAddEdit.isCtx.ExecuteQuery();
                isTaskDone = true;
            }
            catch (Exception ex)
            {
                Console.WriteLine("Ex :" + ex);
            }
            return(isTaskDone);
        }
Esempio n. 6
0
 internal static void LocalizeView(this Microsoft.SharePoint.Client.View view, Web web, string token, TokenParser parser, PnPMonitoredScope scope)
 {
     if (CanUseAcceptLanguageHeaderForLocalization(web))
     {
         var context        = web.Context;
         var resourceValues = parser.GetResourceTokenResourceValues(token);
         foreach (var resourceValue in resourceValues)
         {
             // Save property with correct locale on the request to make it stick
             // http://sadomovalex.blogspot.no/2015/09/localize-web-part-titles-via-client.html
             context.PendingRequest.RequestExecutor.WebRequest.Headers["Accept-Language"] = resourceValue.Item1;
             view.Title = resourceValue.Item2;
             view.Update();
             context.ExecuteQueryRetry();
         }
     }
     else
     {
         // warning
         scope.LogWarning(CoreResources.Provisioning_Extensions_ViewLocalization_Skip);
     }
 }
Esempio n. 7
0
        void ProvisionSample1(Web web)
        {
            //Delete list if it already exists
            ListCollection     lists   = web.Lists;
            IEnumerable <List> results = web.Context.LoadQuery <List>(lists.Where(list => list.Title == "CSR-Priority-Color"));

            web.Context.ExecuteQuery();
            List existingList = results.FirstOrDefault();

            if (existingList != null)
            {
                existingList.DeleteObject();
                web.Context.ExecuteQuery();
            }

            //Create list
            ListCreationInformation creationInfo = new ListCreationInformation();

            creationInfo.Title        = "CSR-Priority-Color";
            creationInfo.TemplateType = (int)ListTemplateType.Tasks;
            List newlist = web.Lists.Add(creationInfo);

            newlist.Update();
            web.Context.Load(newlist);
            web.Context.ExecuteQuery();

            //Add items
            Microsoft.SharePoint.Client.ListItem item1 = newlist.AddItem(new ListItemCreationInformation());
            item1["Title"]     = "Task 1";
            item1["StartDate"] = "2014-1-1";
            item1["DueDate"]   = "2014-2-1";
            item1["Priority"]  = "(1) High";
            item1.Update();

            Microsoft.SharePoint.Client.ListItem item2 = newlist.AddItem(new ListItemCreationInformation());
            item2["Title"]     = "Task 2";
            item2["StartDate"] = "2014-1-1";
            item2["DueDate"]   = "2014-2-1";
            item2["Priority"]  = "(2) Normal";
            item2.Update();

            Microsoft.SharePoint.Client.ListItem item3 = newlist.AddItem(new ListItemCreationInformation());
            item3["Title"]     = "Task 3";
            item3["StartDate"] = "2014-1-1";
            item3["DueDate"]   = "2014-2-1";
            item3["Priority"]  = "(3) Low";
            item3.Update();

            //Create sample view
            ViewCreationInformation sampleViewCreateInfo = new ViewCreationInformation();

            sampleViewCreateInfo.Title            = "CSR Sample View";
            sampleViewCreateInfo.ViewFields       = new string[] { "DocIcon", "LinkTitle", "StartDate", "DueDate", "Priority" };
            sampleViewCreateInfo.SetAsDefaultView = true;
            Microsoft.SharePoint.Client.View sampleView = newlist.Views.Add(sampleViewCreateInfo);
            sampleView.Update();
            web.Context.ExecuteQuery();

            web.Context.Load(newlist, l => l.DefaultViewUrl);
            web.Context.ExecuteQuery();

            //Register JS files via JSLink properties
            RegisterJStoWebPart(web, newlist.DefaultViewUrl, "~sitecollection/Style Library/JSLink-Samples/PriorityColor.js");
        }
Esempio n. 8
0
        void ProvisionSample9(Web web)
        {
            // First list: Cars

            //Delete list if it already exists
            ListCollection     lists   = web.Lists;
            IEnumerable <List> results = web.Context.LoadQuery <List>(lists.Where(list => list.Title == "CSR-Dependent-Fields-Cars"));

            web.Context.ExecuteQuery();
            List existingList = results.FirstOrDefault();

            if (existingList != null)
            {
                existingList.DeleteObject();
                web.Context.ExecuteQuery();
            }

            //Create list
            ListCreationInformation creationInfo = new ListCreationInformation();

            creationInfo.Title        = "CSR-Dependent-Fields-Cars";
            creationInfo.TemplateType = (int)ListTemplateType.GenericList;
            List carslist = web.Lists.Add(creationInfo);

            carslist.Update();
            web.Context.Load(carslist);
            web.Context.ExecuteQuery();

            //Add items
            Microsoft.SharePoint.Client.ListItem item1 = carslist.AddItem(new ListItemCreationInformation());
            item1["Title"] = "BMW X5";
            item1.Update();
            Microsoft.SharePoint.Client.ListItem item2 = carslist.AddItem(new ListItemCreationInformation());
            item2["Title"] = "Chevrolet Trax";
            item2.Update();
            Microsoft.SharePoint.Client.ListItem item3 = carslist.AddItem(new ListItemCreationInformation());
            item3["Title"] = "Ford Kuga";
            item3.Update();
            Microsoft.SharePoint.Client.ListItem item4 = carslist.AddItem(new ListItemCreationInformation());
            item4["Title"] = "Fiat 500L";
            item4.Update();
            Microsoft.SharePoint.Client.ListItem item5 = carslist.AddItem(new ListItemCreationInformation());
            item5["Title"] = "Kia Soul";
            item5.Update();

            // Second list: Orders

            //Delete list if it already exists
            results = web.Context.LoadQuery <List>(lists.Where(list => list.Title == "CSR-Dependent-Fields"));
            web.Context.ExecuteQuery();
            existingList = results.FirstOrDefault();

            if (existingList != null)
            {
                existingList.DeleteObject();
                web.Context.ExecuteQuery();
            }

            //Create list
            creationInfo              = new ListCreationInformation();
            creationInfo.Title        = "CSR-Dependent-Fields";
            creationInfo.TemplateType = (int)ListTemplateType.GenericList;
            List newlist = web.Lists.Add(creationInfo);

            newlist.Update();
            web.Context.Load(newlist);
            web.Context.ExecuteQuery();

            //Add fields
            newlist.Fields.AddFieldAsXml("<Field Type=\"" + FieldType.Lookup + "\" Name=\"Car\" DisplayName=\"Car\" ID=\"" + Guid.NewGuid() + "\"  Group=\"CSR Samples\" List=\"" + carslist.Id + "\" ShowField=\"Title\" />", false, AddFieldOptions.DefaultValue);
            newlist.Fields.AddFieldAsXml("<Field Type=\"" + FieldType.Choice + "\" Name=\"Color\" DisplayName=\"Color\" Format=\"" + ChoiceFormatType.RadioButtons + "\" ID=\"" + Guid.NewGuid() + "\" Group=\"CSR Samples\"><Default></Default><CHOICES><CHOICE>Black</CHOICE><CHOICE>White</CHOICE><CHOICE>Green</CHOICE><CHOICE>Blue</CHOICE><CHOICE>Red</CHOICE></CHOICES></Field>", false, AddFieldOptions.DefaultValue);
            newlist.Update();
            web.Context.ExecuteQuery();

            //Add items
            Microsoft.SharePoint.Client.ListItem newItem = newlist.AddItem(new ListItemCreationInformation());
            newItem["Title"] = "Sample order";
            newItem["Car"]   = 1;
            newItem["Color"] = "Green";
            newItem.Update();

            //Create sample view
            ViewCreationInformation sampleViewCreateInfo = new ViewCreationInformation();

            sampleViewCreateInfo.Title            = "CSR Sample View";
            sampleViewCreateInfo.ViewFields       = new string[] { "LinkTitle", "Car", "Color" };
            sampleViewCreateInfo.SetAsDefaultView = true;
            Microsoft.SharePoint.Client.View sampleView = newlist.Views.Add(sampleViewCreateInfo);
            sampleView.Update();

            // Load information about default new and edit forms
            web.Context.Load(newlist,
                             l => l.DefaultEditFormUrl,
                             l => l.DefaultNewFormUrl);
            web.Context.ExecuteQuery();


            //Register JS files via JSLink properties
            RegisterJStoWebPart(web, newlist.DefaultNewFormUrl, "~sitecollection/Style Library/JSLink-Samples/DependentFields.js");
            RegisterJStoWebPart(web, newlist.DefaultEditFormUrl, "~sitecollection/Style Library/JSLink-Samples/DependentFields.js");
        }
Esempio n. 9
0
        void ProvisionSample4(Web web)
        {
            //Delete list if it already exists
            ListCollection     lists   = web.Lists;
            IEnumerable <List> results = web.Context.LoadQuery <List>(lists.Where(list => list.Title == "CSR-Tasks-Percent-Complete"));

            web.Context.ExecuteQuery();
            List existingList = results.FirstOrDefault();

            if (existingList != null)
            {
                existingList.DeleteObject();
                web.Context.ExecuteQuery();
            }

            //Create list
            ListCreationInformation creationInfo = new ListCreationInformation();

            creationInfo.Title        = "CSR-Tasks-Percent-Complete";
            creationInfo.TemplateType = (int)ListTemplateType.Tasks;
            List newlist = web.Lists.Add(creationInfo);

            newlist.Update();
            web.Context.Load(newlist);
            web.Context.ExecuteQuery();

            //Add items
            Microsoft.SharePoint.Client.ListItem item1 = newlist.AddItem(new ListItemCreationInformation());
            item1["Title"]           = "Task 1";
            item1["StartDate"]       = "2014-1-1";
            item1["DueDate"]         = "2014-2-1";
            item1["PercentComplete"] = "0.59";
            item1.Update();

            Microsoft.SharePoint.Client.ListItem item2 = newlist.AddItem(new ListItemCreationInformation());
            item2["Title"]           = "Task 2";
            item2["StartDate"]       = "2014-1-1";
            item2["DueDate"]         = "2014-2-1";
            item2["PercentComplete"] = "0.40";
            item2.Update();

            Microsoft.SharePoint.Client.ListItem item3 = newlist.AddItem(new ListItemCreationInformation());
            item3["Title"]           = "Task 3";
            item3["StartDate"]       = "2014-1-1";
            item3["DueDate"]         = "2014-2-1";
            item3["PercentComplete"] = "1.0";
            item3.Update();

            Microsoft.SharePoint.Client.ListItem item4 = newlist.AddItem(new ListItemCreationInformation());
            item4["Title"]           = "Task 4";
            item4["StartDate"]       = "2014-1-1";
            item4["DueDate"]         = "2014-2-1";
            item4["PercentComplete"] = "0.26";
            item4.Update();

            Microsoft.SharePoint.Client.ListItem item5 = newlist.AddItem(new ListItemCreationInformation());
            item5["Title"]           = "Task 5";
            item5["StartDate"]       = "2014-1-1";
            item5["DueDate"]         = "2014-2-1";
            item5["PercentComplete"] = "0.50";
            item5.Update();

            //Create sample view
            ViewCreationInformation sampleViewCreateInfo = new ViewCreationInformation();

            sampleViewCreateInfo.Title            = "CSR Sample View";
            sampleViewCreateInfo.ViewFields       = new string[] { "DocIcon", "LinkTitle", "DueDate", "AssignedTo", "PercentComplete" };
            sampleViewCreateInfo.SetAsDefaultView = true;
            Microsoft.SharePoint.Client.View sampleView = newlist.Views.Add(sampleViewCreateInfo);
            sampleView.Update();
            web.Context.Load(newlist, l => l.DefaultViewUrl,
                             l => l.DefaultDisplayFormUrl,
                             l => l.DefaultEditFormUrl,
                             l => l.DefaultNewFormUrl);
            web.Context.ExecuteQuery();

            //Register JS files via JSLink properties
            RegisterJStoWebPart(web, newlist.DefaultViewUrl, "~sitecollection/Style Library/JSLink-Samples/PercentComplete.js");
            RegisterJStoWebPart(web, newlist.DefaultDisplayFormUrl, "~sitecollection/Style Library/JSLink-Samples/PercentComplete.js");
            RegisterJStoWebPart(web, newlist.DefaultEditFormUrl, "~sitecollection/Style Library/JSLink-Samples/PercentComplete.js");
            RegisterJStoWebPart(web, newlist.DefaultNewFormUrl, "~sitecollection/Style Library/JSLink-Samples/PercentComplete.js");
        }
Esempio n. 10
0
        void ProvisionSample3(Web web)
        {
            //Delete list if it already exists
            ListCollection     lists   = web.Lists;
            IEnumerable <List> results = web.Context.LoadQuery <List>(lists.Where(list => list.Title == "CSR-Confidential-Documents"));

            web.Context.ExecuteQuery();
            List existingList = results.FirstOrDefault();

            if (existingList != null)
            {
                existingList.DeleteObject();
                web.Context.ExecuteQuery();
            }

            //Create list
            ListCreationInformation creationInfo = new ListCreationInformation();

            creationInfo.Title        = "CSR-Confidential-Documents";
            creationInfo.TemplateType = (int)ListTemplateType.DocumentLibrary;
            List newlist = web.Lists.Add(creationInfo);

            newlist.Update();
            web.Context.Load(newlist);
            web.Context.Load(newlist.Fields);
            web.Context.ExecuteQuery();

            //Add field
            FieldCollection fields = web.Fields;

            web.Context.Load(fields, fc => fc.Include(f => f.InternalName));
            web.Context.ExecuteQuery();
            Field field = fields.FirstOrDefault(f => f.InternalName == "Confidential");

            if (field == null)
            {
                field = newlist.Fields.AddFieldAsXml("<Field Type=\"YES/NO\" Name=\"Confidential\" DisplayName=\"Confidential\" ID=\"" + Guid.NewGuid() + "\" Group=\"CSR Samples\" />", false, AddFieldOptions.DefaultValue);
                web.Update();
                web.Context.ExecuteQuery();
            }
            newlist.Fields.Add(field);
            newlist.Update();
            web.Context.ExecuteQuery();

            //Upload sample docs
            UploadTempDoc(newlist, "Doc1.doc");
            UploadTempDoc(newlist, "Doc2.doc");
            UploadTempDoc(newlist, "Doc3.ppt");
            UploadTempDoc(newlist, "Doc4.ppt");
            UploadTempDoc(newlist, "Doc5.xls");
            UploadTempDoc(newlist, "Doc6.xls");
            Microsoft.SharePoint.Client.ListItem item1 = newlist.GetItemById(1);
            item1["Confidential"] = 1;
            item1.Update();
            Microsoft.SharePoint.Client.ListItem item2 = newlist.GetItemById(2);
            item2["Confidential"] = 1;
            item2.Update();
            Microsoft.SharePoint.Client.ListItem item3 = newlist.GetItemById(3);
            item3["Confidential"] = 0;
            item3.Update();
            Microsoft.SharePoint.Client.ListItem item4 = newlist.GetItemById(4);
            item4["Confidential"] = 1;
            item4.Update();
            Microsoft.SharePoint.Client.ListItem item5 = newlist.GetItemById(5);
            item5["Confidential"] = 0;
            item5.Update();
            Microsoft.SharePoint.Client.ListItem item6 = newlist.GetItemById(6);
            item6["Confidential"] = 1;
            item6.Update();
            web.Context.ExecuteQuery();

            //Create sample view
            ViewCreationInformation sampleViewCreateInfo = new ViewCreationInformation();

            sampleViewCreateInfo.Title            = "CSR Sample View";
            sampleViewCreateInfo.ViewFields       = new string[] { "DocIcon", "LinkFilename", "Modified", "Editor", "Confidential" };
            sampleViewCreateInfo.SetAsDefaultView = true;
            Microsoft.SharePoint.Client.View sampleView = newlist.Views.Add(sampleViewCreateInfo);
            sampleView.Update();
            web.Context.Load(newlist, l => l.DefaultViewUrl);
            web.Context.ExecuteQuery();

            //Register JS files via JSLink properties
            RegisterJStoWebPart(web, newlist.DefaultViewUrl, "~sitecollection/Style Library/JSLink-Samples/ConfidentialDocuments.js");
        }
Esempio n. 11
0
        private static void AddListViewWebpart(
            ClientContext ctx,
            PublishingPageWebPart wp,
            Microsoft.SharePoint.Client.WebParts.WebPartDefinition definition,
            PropertyValues webPartProperties)
        {
            string defaultViewDisplayName = wp.DefaultViewDisplayName;

            if (!String.IsNullOrEmpty(defaultViewDisplayName))
            {
                string listUrl = webPartProperties.FieldValues["ListUrl"].ToString();

                ctx.Load(definition, d => d.Id); // Id of the hidden view which gets automatically created
                ctx.ExecuteQuery();

                Guid viewId = definition.Id;
                List list   = ctx.Web.GetListByUrl(listUrl);

                Microsoft.SharePoint.Client.View viewCreatedFromWebpart = list.Views.GetById(viewId);
                ctx.Load(viewCreatedFromWebpart);

                Microsoft.SharePoint.Client.View viewCreatedFromList = list.Views.GetByTitle(defaultViewDisplayName);
                ctx.Load(
                    viewCreatedFromList,
                    v => v.ViewFields,
                    v => v.ListViewXml,
                    v => v.ViewQuery,
                    v => v.ViewData,
                    v => v.ViewJoins,
                    v => v.ViewProjectedFields);

                ctx.ExecuteQuery();

                //need to copy the same View definition to the new View added by the Webpart manager
                viewCreatedFromWebpart.ViewQuery           = viewCreatedFromList.ViewQuery;
                viewCreatedFromWebpart.ViewData            = viewCreatedFromList.ViewData;
                viewCreatedFromWebpart.ViewJoins           = viewCreatedFromList.ViewJoins;
                viewCreatedFromWebpart.ViewProjectedFields = viewCreatedFromList.ViewProjectedFields;
                viewCreatedFromWebpart.ViewFields.RemoveAll();

                foreach (var field in viewCreatedFromList.ViewFields)
                {
                    viewCreatedFromWebpart.ViewFields.Add(field);
                }

                //need to set the JSLink to the new View added by the Webpart manager.
                //This is because there's no way to change the BaseViewID property of the new View,
                //and we needed to do that because the custom JSLink was bound to a specific BaseViewID (overrideCtx.BaseViewID = 3;)
                //The work around to this is to add the JSLink to the specific new View created when you add the xsltViewWebpart to the page
                //and remove the "overrideCtx.BaseViewID = 3;" from the JSLink file
                //that way, the JSLink will be executed only for this View, that is only used in the xsltViewWebpart,
                //so the effect is the same that bind the JSLink to the BaseViewID
                if (webPartProperties.FieldValues.ContainsKey("JSLink") && webPartProperties.FieldValues["JSLink"] != null)
                {
                    viewCreatedFromWebpart.JSLink = webPartProperties.FieldValues["JSLink"].ToString();
                }

                viewCreatedFromWebpart.Update();

                ctx.ExecuteQuery();
            }
        }
Esempio n. 12
0
        private List CreateList(List sourceList, ClientContext sourceContext, FieldCollection fldcoll, ClientContext destContext, string strDestSite, string lstInternalName, List destinationList, string strListName)
        {
            // List listByTitleCS = GetListByTitleCS(destContext, strListName);
            List listByTitleCS = sourceContext.Web.Lists.GetByTitle(strListName);;
            Web  web           = destContext.Web;
            //    if (listByTitleCS == null)
            //    {
            ListCreationInformation parameters = new ListCreationInformation
            {
                Title        = lstInternalName,
                TemplateType = 100
            };
            List clientObject = web.Lists.Add(parameters);

            clientObject.Description = lstInternalName + "Description";
            destinationList          = destContext.Web.Lists.GetByTitle(lstInternalName);
            destContext.Load <ViewCollection>(destinationList.Views, new Expression <Func <ViewCollection, object> > [0]);
            destContext.ExecuteQuery();
            sourceContext.Load <ViewCollection>(sourceList.Views, new Expression <Func <ViewCollection, object> > [0]);
            sourceContext.ExecuteQuery();
            Microsoft.SharePoint.Client.View view = sourceList.Views[0];
            ViewFieldCollection viewFields        = view.ViewFields;

            sourceContext.Load <ViewFieldCollection>(viewFields, new Expression <Func <ViewFieldCollection, object> > [0]);
            sourceContext.ExecuteQuery();
            foreach (Field field in fldcoll)
            {
                if (!field.FromBaseType)
                {
                    object[] objArray1 = new object[] { "<Field DisplayName= '", field.InternalName, "'  Name='", field.InternalName, "' Type='", field.FieldTypeKind, "' />" };
                    clientObject.Fields.AddFieldAsXml(string.Concat(objArray1), true, AddFieldOptions.DefaultValue);
                }
                else if ((field.InternalName == "Created") && view.ViewFields.Contains <string>("Created"))
                {
                    Microsoft.SharePoint.Client.View view2 = destinationList.Views[0];
                    view2.ViewFields.Add("Created");
                    view2.Update();
                }
                else if ((field.InternalName == "Author") && view.ViewFields.Contains <string>("Author"))
                {
                    Microsoft.SharePoint.Client.View view3 = destinationList.Views[0];
                    view3.ViewFields.Add("Created By");
                    view3.Update();
                }
                else if ((field.InternalName == "Modified") && view.ViewFields.Contains <string>("Modified"))
                {
                    Microsoft.SharePoint.Client.View view4 = destinationList.Views[0];
                    view4.ViewFields.Add("Modified");
                    view4.Update();
                }
                else if ((field.InternalName == "Editor") && view.ViewFields.Contains <string>("Editor"))
                {
                    Microsoft.SharePoint.Client.View view5 = destinationList.Views[0];
                    view5.ViewFields.Add("Modified By");
                    view5.Update();
                }
            }
            destinationList = destContext.Web.Lists.GetByTitle(lstInternalName);
            destContext.Load <FieldCollection>(destinationList.Fields, new Expression <Func <FieldCollection, object> > [0]);
            destContext.ExecuteQuery();
            clientObject.Title = strListName;
            clientObject.Update();
            destContext.Load <List>(clientObject, new Expression <Func <List, object> > [0]);
            destContext.ExecuteQuery();
            return(destinationList);

            //  }
            destinationList = destContext.Web.Lists.GetByTitle(strListName);
            destContext.Load <FieldCollection>(destinationList.Fields, new Expression <Func <FieldCollection, object> > [0]);
            destContext.ExecuteQuery();
            //  this.DeleteAllListItems(destContext, destinationList);
            return(destinationList);
        }