public static void DraftVersionVisibility(SPWeb web, string listTitle, DraftVisibilityType draftVisibilityType = DraftVisibilityType.Reader) { runCodeInListInstance(web, listTitle, (list) => { list.DraftVersionVisibility = draftVisibilityType; list.Update(); if (draftVisibilityType == DraftVisibilityType.Reader) { Logger.Logger.Information("ListUtils.ChangeTitle", "The list \"{0}\" has setted to \"Any user who can read items\"", listTitle); } else if (draftVisibilityType == DraftVisibilityType.Author) { Logger.Logger.Information("ListUtils.ChangeTitle", "The list \"{0}\" has setted to \"Only users who can edit items\"", listTitle); } else if (draftVisibilityType == DraftVisibilityType.Approver) { Logger.Logger.Information("ListUtils.ChangeTitle", "The list \"{0}\" has setted to \"Only users who can approve items (and the author of the item)\"", listTitle); } }); }
public static bool DeleteWebPart(string webUrl, string pageUrl, string _storageKey) { bool isWebPartDeleted = false; string webPartXml = string.Empty; string exceptionCommentsInfo1 = string.Empty; Web web = null; List list = null; try { //This function is Get Relative URL of the page string ServerRelativePageUrl = string.Empty; ServerRelativePageUrl = GetPageRelativeURL(webUrl, pageUrl); Guid storageKey = new Guid(GetWebPartID(_storageKey)); using (ClientContext userContext = Helper.CreateAuthenticatedUserContext(Program.AdminDomain, Program.AdminUsername, Program.AdminPassword, webUrl)) { web = userContext.Web; userContext.Load(web); userContext.ExecuteQuery(); Logger.LogInfoMessage("Successful authentication", false); Logger.LogInfoMessage("Checking Out File ...", false); list = GetPageList(userContext); //Boolean to check if a call to Update method is required bool needsUpdate = false; bool forceCheckOut = false; bool enableVersioning = false; bool enableMinorVersions = false; bool enableModeration = false; DraftVisibilityType dVisibility = DraftVisibilityType.Author; if (list != null) { try { userContext.Load(list, l => l.ForceCheckout, l => l.EnableVersioning, l => l.EnableMinorVersions, l => l.EnableModeration, l => l.Title, l => l.DraftVersionVisibility, l => l.DefaultViewUrl); userContext.ExecuteQueryRetry(); #region Remove Versioning in List forceCheckOut = list.ForceCheckout; enableVersioning = list.EnableVersioning; enableMinorVersions = list.EnableMinorVersions; enableModeration = list.EnableModeration; dVisibility = list.DraftVersionVisibility; Logger.LogInfoMessage("Removing Versioning", false); //Boolean to check if a call to Update method is required needsUpdate = false; if (enableVersioning) { list.EnableVersioning = false; needsUpdate = true; } if (forceCheckOut) { list.ForceCheckout = false; needsUpdate = true; } if (enableModeration) { list.EnableModeration = false; needsUpdate = true; } if (needsUpdate) { list.Update(); userContext.ExecuteQuery(); } #endregion } catch (Exception ex) { Logger.LogErrorMessage("[DeleteMissingWebparts: DeleteWebPart]. Exception Message: " + ex.Message + ", Exception Comments: Exception while removing Version to the list", true); ExceptionCsv.WriteException(Constants.NotApplicable, Constants.NotApplicable, webUrl, "Webpart", ex.Message, ex.ToString(), "DeleteWebPart", ex.GetType().ToString(), "Exception while removing Version to the list"); } } try { if (DeleteWebPart(userContext.Web, ServerRelativePageUrl, storageKey)) { isWebPartDeleted = true; Logger.LogSuccessMessage("Successfully Deleted the WebPart", true); } else { Logger.LogErrorMessage("WebPart with StorageKey: " + storageKey + " does not exist in the Page: " + ServerRelativePageUrl, true); } } catch (Exception ex) { Logger.LogErrorMessage("[DeleteMissingWebparts: DeleteWebPart]. Exception Message: " + ex.Message, true); ExceptionCsv.WriteException(Constants.NotApplicable, Constants.NotApplicable, webUrl, "Webpart", ex.Message, ex.ToString(), "DeleteWebPart", ex.GetType().ToString(), Constants.NotApplicable); } finally { if (list != null) { #region Enable Versioning in List //Reset the boolean so that it can used to test if we need to call Update method needsUpdate = false; if (enableVersioning) { list.EnableVersioning = true; if (enableMinorVersions) { list.EnableMinorVersions = true; } if (enableMinorVersions) { list.EnableMinorVersions = true; } list.DraftVersionVisibility = dVisibility; needsUpdate = true; } if (enableModeration) { list.EnableModeration = enableModeration; needsUpdate = true; } if (forceCheckOut) { list.ForceCheckout = true; needsUpdate = true; } if (needsUpdate) { list.Update(); userContext.ExecuteQuery(); } #endregion } web = null; list = null; } Logger.LogInfoMessage("File Checked in after successfully deleting the webpart.", false); } } catch (Exception ex) { Logger.LogErrorMessage("[DeleteMissingWebparts: DeleteWebPart]. Exception Message: " + ex.Message, true); ExceptionCsv.WriteException(Constants.NotApplicable, Constants.NotApplicable, webUrl, "Webpart", ex.Message, ex.ToString(), "DeleteWebPart", ex.GetType().ToString(), Constants.NotApplicable); } return(isWebPartDeleted); }
public static bool AddWebPartToPage(string webUrl, string configuredWebPartFileName, string configuredWebPartXmlFilePath, string webPartZoneIndex, string webPartZoneID, string serverRelativePageUrl, string outPutDirectory, string sourceWebPartId = "") { bool isWebPartAdded = false; Web web = null; WebPartEntity webPart = new WebPartEntity(); ClientContext clientContext = null; string webPartXml = string.Empty; ExceptionCsv.WebUrl = webUrl; string exceptionCommentsInfo1 = string.Empty; try { using (ClientContext userContext = Helper.CreateAuthenticatedUserContext(Program.AdminDomain, Program.AdminUsername, Program.AdminPassword, webUrl)) { web = userContext.Web; userContext.Load(web); userContext.ExecuteQuery(); clientContext = userContext; webPart.WebPartIndex = Convert.ToInt32(webPartZoneIndex); Logger.LogInfoMessage("[AddWebPartToPage] Successful authentication", false); Logger.LogInfoMessage("[AddWebPartToPage] Checking Out File ...", false); //Prepare Exception Comments exceptionCommentsInfo1 = "Web Url: " + webUrl + ", Configured Web Part File Name: " + configuredWebPartFileName + " , Page Url: " + serverRelativePageUrl; Logger.LogInfoMessage("[AddWebPartToPage] Successful authentication", Constants.Logging); Logger.LogInfoMessage("[AddWebPartToPage] Checking for web part in the Web Part Gallery", Constants.Logging); //check for the target web part in the gallery bool isWebPartInGallery = CheckWebPartOrAppPartPresenceInSite(clientContext, configuredWebPartFileName, configuredWebPartXmlFilePath); if (isWebPartInGallery) { using (System.IO.FileStream fs = new System.IO.FileStream(configuredWebPartXmlFilePath, System.IO.FileMode.Open, System.IO.FileAccess.Read)) { StreamReader reader = new StreamReader(fs); webPart.WebPartXml = reader.ReadToEnd(); } webPart.WebPartZone = webPartZoneID; List list = GetPageList(ref clientContext); //Boolean to check if a call to Update method is required bool needsUpdate = false; bool forceCheckOut = false; bool enableVersioning = false; bool enableMinorVersions = false; bool enableModeration = false; DraftVisibilityType dVisibility = DraftVisibilityType.Author; if (list != null) { try { #region Remove Versioning in List Logger.LogInfoMessage( "[AddWebPart] List Details " + serverRelativePageUrl + ". " + "Force Check Out: " + forceCheckOut + "Enable Versioning: " + enableVersioning + "Enable Minor Versions: " + enableMinorVersions + "Enable Moderation: " + enableModeration + "Draft Version Visibility: " + dVisibility); Logger.LogInfoMessage( "[AddWebPart] Removing Versioning"); if (enableVersioning) { list.EnableVersioning = false; needsUpdate = true; } if (forceCheckOut) { list.ForceCheckout = false; needsUpdate = true; } if (enableModeration) { list.EnableModeration = false; needsUpdate = true; } if (needsUpdate) { list.Update(); clientContext.ExecuteQuery(); } #endregion } catch (Exception ex) { System.Console.ForegroundColor = System.ConsoleColor.Red; Logger.LogErrorMessage("[AddWebPartToPage] Exception Message: " + ex.Message + ", Exception Comment: " + exceptionCommentsInfo1); System.Console.ResetColor(); ExceptionCsv.WriteException(Constants.NotApplicable, Constants.NotApplicable, ExceptionCsv.WebUrl, "AddWebPart", ex.Message, ex.ToString(), "AddWebPartToPage()", ex.GetType().ToString(), exceptionCommentsInfo1); } } try { Logger.LogInfoMessage("[AddWebPartToPage] Adding web part to the page at " + serverRelativePageUrl); isWebPartAdded = AddWebPartt(clientContext.Web, serverRelativePageUrl, webPart, sourceWebPartId); } catch { throw; } finally { if (list != null) { #region Enable Versioning in List //Reset the boolean so that it can used to test if we need to call Update method needsUpdate = false; if (enableVersioning) { list.EnableVersioning = true; if (enableMinorVersions) { list.EnableMinorVersions = true; } if (enableMinorVersions) { list.EnableMinorVersions = true; } list.DraftVersionVisibility = dVisibility; needsUpdate = true; } if (enableModeration) { list.EnableModeration = enableModeration; needsUpdate = true; } if (forceCheckOut) { list.ForceCheckout = true; needsUpdate = true; } if (needsUpdate) { list.Update(); clientContext.ExecuteQuery(); } #endregion } } } else { Logger.LogInfoMessage("[AddWebPartToPage]. Target Webpart should be present in the site for the webpart to be added", Constants.Logging); throw new Exception("Target Webpart should be present in the site for the webpart to be added"); } } } catch (Exception ex) { System.Console.ForegroundColor = System.ConsoleColor.Red; Logger.LogErrorMessage("[AddWebPartToPage] Exception Message: " + ex.Message); System.Console.ResetColor(); ExceptionCsv.WriteException(Constants.NotApplicable, Constants.NotApplicable, ExceptionCsv.WebUrl, "AddWebPart", ex.Message, ex.ToString(), "AddWebPartToPage()", ex.GetType().ToString()); return(isWebPartAdded); } return(isWebPartAdded); }