public EditFolderSynchronizerDialog(Site site, string sourceFolder, string destinationFolder, FolderSynchronizationMode mode, string pattern) { InitializeComponent(); this.InitializeDialog(); Site = site; SourceFolder = sourceFolder; DestinationFolder = destinationFolder; Mode = mode; Pattern = pattern; SourceTextBox.Text = SourceFolder; DestinationTextBox.Text = DestinationFolder; PatternTextBox.Text = Pattern; switch (Mode) { case FolderSynchronizationMode.Mirror: MirrorMode.IsSelected = true; break; case FolderSynchronizationMode.Copy: CopyMode.IsSelected = true; break; } EnableButtons(); }
public FolderSynchronizer([NotNull] Project project, [NotNull] string sourceFolder, [NotNull] string destinationFolder, FolderSynchronizationMode mode, string pattern) { Assert.ArgumentNotNull(project, nameof(project)); Assert.ArgumentNotNull(sourceFolder, nameof(sourceFolder)); Assert.ArgumentNotNull(destinationFolder, nameof(destinationFolder)); Assert.ArgumentNotNull(pattern, nameof(pattern)); Project = project; SourceFolder = sourceFolder; DestinationFolder = destinationFolder; Mode = mode; Pattern = pattern; if (!Path.IsPathRooted(sourceFolder)) { sourceFolder = Path.Combine(project.FolderName, sourceFolder); } if (!sourceFolder.EndsWith("\\")) { sourceFolder += "\\"; } AbsoluteSourceFolder = sourceFolder; AbsoluteDestinationFolder = string.Empty; if (!Path.IsPathRooted(destinationFolder)) { var site = project.Site; if (site == null) { AppHost.Output.Log("Folder Synchronization: Folder are not synchronized as Sitecore site does not have a Web Root Path"); return; } destinationFolder = Path.Combine(site.WebRootPath, destinationFolder); } if (!destinationFolder.EndsWith("\\")) { destinationFolder += "\\"; } AbsoluteDestinationFolder = destinationFolder; }
public void Add([NotNull] Projects.Project project, [NotNull] string sourceFolder, [NotNull] string destinationFolder, FolderSynchronizationMode mode, string pattern) { Assert.ArgumentNotNull(project, nameof(project)); Assert.ArgumentNotNull(sourceFolder, nameof(sourceFolder)); Assert.ArgumentNotNull(destinationFolder, nameof(destinationFolder)); Assert.ArgumentNotNull(pattern, nameof(pattern)); var folder = new FolderSynchronizer(project, sourceFolder, destinationFolder, mode, pattern); lock (syncObject) { Folders.Add(folder); } SaveProject(project); }