Ejemplo n.º 1
0
 public static bool CheckNextTransferOperationSafety(Guid backupGuid, string backupName, int backupVersion, TransferJournalItemType backupType, TransferConfigManagerMessageHandler showMessage) {
     if(showMessage == null){
         TransferLog.Log("Can't check safety next transfer operation, because of showMessageHandle is null.");
         return true;
     }
     Guid computerGuid = GetComputerGuid();
     TransferJournalItem[] journal = LoadTransferJournal();
     if (journal.Length == 0) return true;
     switch (backupType) {
         case TransferJournalItemType.Backup: {
                 for (int i = journal.Length - 1; i >= 0; i--) {
                     if ((journal[i].BackupId == backupGuid) && (journal[i].Type == TransferJournalItemType.Backup)) {
                         if (journal[i].ComputerId == computerGuid) return true;
                         for (int j = (i + 1); j < journal.Length; j++) {
                             if ((journal[j].BackupId == backupGuid) && (journal[j].Type == TransferJournalItemType.Restore) && (journal[j].ComputerId == computerGuid)) {
                                 return true;
                             }
                         }
                         return showMessage(string.Format("Backup '{0}' was produced on another computer, but the recovery has not been on the current computer."
                                             + "\nDo you really want to back up '{0}'.", backupName));
                     }
                 }
             }
             break;
         case TransferJournalItemType.Restore: {
                 for (int i = journal.Length - 1; i >= 0; i--) {
                     if(journal[i].BackupId == backupGuid){
                         if (journal[i].ComputerId == computerGuid) {
                             if (journal[i].BackupVersion != backupVersion) return true;
                             switch(journal[i].Type){
                                 case TransferJournalItemType.Backup:
                                     return showMessage(string.Format("Previous recovery of '{0}' was made on the current computer."
                                             + "\nDo you really want to make a second recovery of '{0}'?", backupName));
                                 case TransferJournalItemType.Restore:
                                     return showMessage(string.Format("Previous backup of '{0}' was made on the current computer."
                                             + "\nDo you really want to make recovery of it?", backupName));
                                 default:
                                     return true;
                             }
                         } else
                             return true;
                     }
                 }
             }
             break;
         default:
             return true;
     }
     return true;
 }
Ejemplo n.º 2
0
 public TransferJournalItem(DateTime actionTime, Guid backupId, int backupVersion, TransferJournalItemType type) {
     ActionTime = actionTime;
     BackupId = backupId;
     BackupVersion = backupVersion;
     Type = type;
     ComputerId = TransferConfigManager.GetComputerGuid();
 }