예제 #1
0
        /// <summary>
        /// Execute actions of the sync preview result. The actions to be executed
        /// file copy, deletion or rename
        /// </summary>
        private void ApplyPatch(SyncPreviewResult previewResult)
        {
            DateTime startTime = DateTime.Now;

            // Create a new list of log
            log.Clear();

            totalProgress = previewResult.ItemsCount;
            if (totalProgress == 0)
            {
                OnProgressChanged(new SyncProgressChangedEventArgs(1, 1));
                return;
            }

            currentProgress = 0;
            try
            {
                ExecuteCreateActions(previewResult.ItemsToCopyOver);
                ExecuteDeleteActions(previewResult.ItemsToDelete);
                ExecuteRenameActions(previewResult.ItemsToRename);
                ExecuteConflictActions(previewResult.ConflictItems);
                UpdateSyncSourceMetadata();
            }
            catch (Exception) {}
            finally
            {
                WriteLog(startTime, Log.From);
            }
        }
예제 #2
0
 /// <summary>
 /// Executes synchronization based on the SyncPreviewRe;sult as well
 /// as generate patch for other folder.
 /// </summary>
 /// <param name="preview">SyncPreviewResult to be executed.</param>
 public void Synchronize(SyncPreviewResult preview)
 {
     try
     {
         OnStatusChanged(new SyncStatusChangedEventArgs(m_ResourceManager.GetString("lbl_applyingPatch")));
         ApplyPatch(preview);
         SyncEmptyFolders();
         OnStatusChanged(new SyncStatusChangedEventArgs(m_ResourceManager.GetString("lbl_generatingPatch")));
         GeneratePatch();
         OnSyncCompleted(new SyncCompletedEventArgs());
     }
     catch (OutOfDiskSpaceException)
     {
         throw;
     }
 }
예제 #3
0
        /// <summary>
        /// Execute actions of the sync preview result. The actions to be executed
        /// file copy, deletion or rename
        /// </summary>
        private void ApplyPatch(SyncPreviewResult previewResult)
        {
            DateTime startTime = DateTime.Now;

            // Create a new list of log
            log.Clear();

            totalProgress = previewResult.ItemsCount;
            if (totalProgress == 0)
            {
                OnProgressChanged(new SyncProgressChangedEventArgs(1, 1));
                return;
            }

            currentProgress = 0;
            try
            {
                ExecuteCreateActions(previewResult.ItemsToCopyOver);
                ExecuteDeleteActions(previewResult.ItemsToDelete);
                ExecuteRenameActions(previewResult.ItemsToRename);
                ExecuteConflictActions(previewResult.ConflictItems);
                UpdateSyncSourceMetadata();
            }
            catch (Exception){}
            finally
            {
                WriteLog(startTime, Log.From);
            }
        }
예제 #4
0
 /// <summary>
 /// Executes synchronization based on the SyncPreviewRe;sult as well
 /// as generate patch for other folder.
 /// </summary>
 /// <param name="preview">SyncPreviewResult to be executed.</param>
 public void Synchronize(SyncPreviewResult preview)
 {
     try
     {
         OnStatusChanged(new SyncStatusChangedEventArgs(m_ResourceManager.GetString("lbl_applyingPatch")));
         ApplyPatch(preview);
         SyncEmptyFolders();
         OnStatusChanged(new SyncStatusChangedEventArgs(m_ResourceManager.GetString("lbl_generatingPatch")));
         GeneratePatch();
         OnSyncCompleted(new SyncCompletedEventArgs());
     }
     catch (OutOfDiskSpaceException)
     {
         throw;
     }
 }