protected override void ExecuteCmdlet() { if (ParameterSetName == "SITE") { var serverUrl = CurrentWeb.EnsureProperty(w => w.ServerRelativeUrl); ServerRelativePageUrl = UrlUtility.Combine(serverUrl, SiteRelativePageUrl); } var file = CurrentWeb.GetFileByServerRelativeUrl(ServerRelativePageUrl); file.DeleteObject(); ClientContext.ExecuteQueryRetry(); }
protected override void ProcessRecord() { if (!System.IO.Path.IsPathRooted(Path)) { Path = System.IO.Path.Combine(SessionState.Path.CurrentFileSystemLocation.Path, Path); } // Load the template var template = ProvisioningHelper.LoadSiteTemplateFromFile(Path, TemplateProviderExtensions, (e) => { WriteError(new ErrorRecord(e, "TEMPLATENOTVALID", ErrorCategory.SyntaxError, null)); }); if (template == null) { throw new ApplicationException("Invalid template file!"); } if (this.ParameterSetName == parameterSet_REMOTEFILE) { CurrentWeb.EnsureProperty(w => w.ServerRelativeUrl); var sourceUri = new Uri(SourceUrl, UriKind.RelativeOrAbsolute); var serverRelativeUrl = sourceUri.IsAbsoluteUri ? sourceUri.AbsolutePath : SourceUrl.StartsWith("/", StringComparison.Ordinal) ? SourceUrl : CurrentWeb.ServerRelativeUrl.TrimEnd('/') + "/" + SourceUrl; var file = CurrentWeb.GetFileByServerRelativeUrl(serverRelativeUrl); var fileName = file.EnsureProperty(f => f.Name); var folderRelativeUrl = serverRelativeUrl.Substring(0, serverRelativeUrl.Length - fileName.Length - 1); var folderWebRelativeUrl = System.Net.WebUtility.UrlDecode(folderRelativeUrl.Substring(CurrentWeb.ServerRelativeUrl.TrimEnd('/').Length + 1)); if (ClientContext.HasPendingRequest) { ClientContext.ExecuteQueryRetry(); } try { var fi = CurrentWeb.GetFileByServerRelativeUrl(serverRelativeUrl); var fileStream = fi.OpenBinaryStream(); ClientContext.ExecuteQueryRetry(); using (var ms = fileStream.Value) { AddFileToTemplate(template, ms, folderWebRelativeUrl, fileName, folderWebRelativeUrl); } } catch (WebException exc) { WriteWarning($"Can't add file from url {serverRelativeUrl} : {exc}"); } } else { if (!System.IO.Path.IsPathRooted(Source)) { Source = System.IO.Path.Combine(SessionState.Path.CurrentFileSystemLocation.Path, Source); } // Load the file and add it to the .PNP file using (var fs = System.IO.File.OpenRead(Source)) { Folder = Folder.Replace("\\", "/"); var fileName = Source.IndexOf("\\", StringComparison.Ordinal) > 0 ? Source.Substring(Source.LastIndexOf("\\") + 1) : Source; var container = !string.IsNullOrEmpty(Container) ? Container : string.Empty; AddFileToTemplate(template, fs, Folder, fileName, container); } } }