コード例 #1
0
        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();
        }
コード例 #2
0
        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;
        }
コード例 #3
0
        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);
        }