private static void DeleteMissingFile(MissingSetupFilesInput missingFile) { if (missingFile == null) { return; } string setupFileDirName = missingFile.SetupFileDirName; string setupFileName = missingFile.SetupFileName; string webAppUrl = missingFile.WebApplication; string webUrl = missingFile.WebUrl; if (webUrl.IndexOf("http", StringComparison.InvariantCultureIgnoreCase) < 0) { // ignore the header row in case it is still present return; } // clean the inputs if (setupFileDirName.EndsWith("/")) { setupFileDirName = setupFileDirName.TrimEnd(new char[] { '/' }); } if (setupFileName.StartsWith("/")) { setupFileName = setupFileName.TrimStart(new char[] { '/' }); } if (webUrl.EndsWith("/")) { webUrl = webUrl.TrimEnd(new char[] { '/' }); } if (webAppUrl.EndsWith("/")) { webAppUrl = webAppUrl.TrimEnd(new char[] { '/' }); } // e.g., "https://ppeTeams.contoso.com/sites/test/_catalogs/masterpage/Sample.master" string targetFilePath = setupFileDirName + '/' + setupFileName; // e.g., "/_catalogs/masterpage/Sample.master" // e.g., "/_catalogs/masterpage/folder/Sample.master" // e.g., "/sites/testSite/_catalogs/masterpage/Sample.master" // e.g., "/sites/testSite/_catalogs/masterpage/folder/Sample.master" // e.g., "/sites/testSite/childWeb/_catalogs/masterpage/Sample.master" // e.g., "/sites/testSite/childWeb/_catalogs/masterpage/folder/Sample.master" string serverRelativeFilePath = targetFilePath.Substring(webAppUrl.Length); try { Logger.LogInfoMessage(String.Format("Processing File: {0} ...", targetFilePath), true); //Logger.LogInfoMessage(String.Format("-setupFileDirName= {0}", setupFileDirName), false); //Logger.LogInfoMessage(String.Format("-setupFileName= {0}", setupFileName), false); //Logger.LogInfoMessage(String.Format("-targetFilePath= {0}", targetFilePath), false); //Logger.LogInfoMessage(String.Format("-webAppUrl= {0}", webAppUrl), false); //Logger.LogInfoMessage(String.Format("-webUrl= {0}", webUrl), false); //Logger.LogInfoMessage(String.Format("-serverRelativeFilePath= {0}", serverRelativeFilePath), false); // we have to open the web because Helper.DeleteFileByServerRelativeUrl() needs to update the web in order to commit the change using (ClientContext userContext = Helper.CreateAuthenticatedUserContext(Program.AdminDomain, Program.AdminUsername, Program.AdminPassword, webUrl)) { Web web = userContext.Web; userContext.Load(web); userContext.ExecuteQuery(); Helper.DeleteFileByServerRelativeUrl(web, serverRelativeFilePath); } } catch (Exception ex) { Logger.LogErrorMessage(String.Format("DeleteMissingFile() failed for {0}: Error={1}", targetFilePath, ex.Message), false); } }
private static void DeleteMissingFile(MissingSetupFilesInput missingFile, string csvFile) { bool headerSetupFile = false; if (missingFile == null) { return; } string setupFileDirName = missingFile.SetupFileDirName; string setupFileName = missingFile.SetupFileName; string webAppUrl = missingFile.WebApplication; string webUrl = missingFile.WebUrl; MissingSetupFilesOutput objSetupOP = new MissingSetupFilesOutput(); objSetupOP.SetupFileDirName = setupFileDirName; objSetupOP.SetupFileName = setupFileName; objSetupOP.WebApplication = webAppUrl; objSetupOP.WebUrl = webUrl; objSetupOP.ExecutionDateTime = DateTime.Now.ToString(); if (webUrl.IndexOf("http", StringComparison.InvariantCultureIgnoreCase) < 0) { // ignore the header row in case it is still present return; } // clean the inputs if (setupFileDirName.EndsWith("/")) { setupFileDirName = setupFileDirName.TrimEnd(new char[] { '/' }); } if (setupFileName.StartsWith("/")) { setupFileName = setupFileName.TrimStart(new char[] { '/' }); } if (webUrl.EndsWith("/")) { webUrl = webUrl.TrimEnd(new char[] { '/' }); } if (webAppUrl.EndsWith("/")) { webAppUrl = webAppUrl.TrimEnd(new char[] { '/' }); } // e.g., "https://ppeTeams.contoso.com/sites/test/_catalogs/masterpage/Sample.master" string targetFilePath = setupFileDirName + '/' + setupFileName; // e.g., "/_catalogs/masterpage/Sample.master" // e.g., "/_catalogs/masterpage/folder/Sample.master" // e.g., "/sites/testSite/_catalogs/masterpage/Sample.master" // e.g., "/sites/testSite/_catalogs/masterpage/folder/Sample.master" // e.g., "/sites/testSite/childWeb/_catalogs/masterpage/Sample.master" // e.g., "/sites/testSite/childWeb/_catalogs/masterpage/folder/Sample.master" string serverRelativeFilePath = targetFilePath.Substring(webAppUrl.Length); try { Logger.LogInfoMessage(String.Format("Processing File: {0} ...", targetFilePath), true); //Logger.LogInfoMessage(String.Format("-setupFileDirName= {0}", setupFileDirName), false); //Logger.LogInfoMessage(String.Format("-setupFileName= {0}", setupFileName), false); //Logger.LogInfoMessage(String.Format("-targetFilePath= {0}", targetFilePath), false); //Logger.LogInfoMessage(String.Format("-webAppUrl= {0}", webAppUrl), false); //Logger.LogInfoMessage(String.Format("-webUrl= {0}", webUrl), false); //Logger.LogInfoMessage(String.Format("-serverRelativeFilePath= {0}", serverRelativeFilePath), false); // we have to open the web because Helper.DeleteFileByServerRelativeUrl() needs to update the web in order to commit the change using (ClientContext userContext = Helper.CreateAuthenticatedUserContext(Program.AdminDomain, Program.AdminUsername, Program.AdminPassword, webUrl)) { Web web = userContext.Web; userContext.Load(web); userContext.ExecuteQuery(); if (Helper.DeleteFileByServerRelativeUrl(web, serverRelativeFilePath)) { Logger.LogInfoMessage(setupFileName + " deleted successfully and output file is present in the path: " + Environment.CurrentDirectory); objSetupOP.Status = Constants.Success; } else { objSetupOP.Status = Constants.Failure; } if (System.IO.File.Exists(csvFile)) { headerSetupFile = true; } FileUtility.WriteCsVintoFile(csvFile, objSetupOP, ref headerSetupFile); } } catch (Exception ex) { Logger.LogErrorMessage(String.Format("[DeleteSetupFiles: DoWork] failed for {0}: Error={1}", targetFilePath, ex.Message), true); ExceptionCsv.WriteException(webAppUrl, Constants.NotApplicable, webUrl, "SetupFile", ex.Message, ex.ToString(), "DeleteMissingFile", ex.GetType().ToString(), String.Format("DeleteSetupFiles > DeleteMissingFile() failed for {0}", targetFilePath)); } }