Beispiel #1
0
        public void SetEventsThatRequireUserConfirmation(List <SyncConflictType> handledConflicts)
        {
            SyncConflictType[] list = new SyncConflictType[50];
            handledConflicts.CopyTo(list);

            _userHandledConflicts = list.ToList();
        }
Beispiel #2
0
 private OnConflictAction byDefaultSyncEventAction(SyncConflictType syncConflict)
 {
     //This should be configurable somewhere
     switch (syncConflict)
     {
     case SyncConflictType.GeneralConflict:
     case SyncConflictType.NewerVersionRemoteAndLocalVersionChanged:
     case SyncConflictType.NewerVersionRemoteAndLocalDeleted:
     case SyncConflictType.UploadedLocalFileNewerVersionRemote:
     case SyncConflictType.RemoteFileDeletedAndLocalIsNewer:
     default:
         return(OnConflictAction.SyncFromRemote);
     }
 }
Beispiel #3
0
    /// <summary>
    /// 
    /// </summary>
    /// <param name="type"></param>
    /// <returns></returns>
    private List<ConflictReviewData> GetSelectedConflicts(SyncConflictType type)
    {
        List<ConflictReviewData> conflicts = new List<ConflictReviewData>();

        string selectedIds = null;
        switch (type)
        {
            case SyncConflictType.Message:
                selectedIds = Request.Form[EmailConflictIdName];
                break;
            case SyncConflictType.Folder:
                selectedIds = Request.Form[FolderConflictIdName];
                break;
            case SyncConflictType.Metadata:
                selectedIds = Request.Form[MetadataConflictIdName];
                break;
            case SyncConflictType.User:
                selectedIds = Request.Form[UserConflictIdName];
                break;
        }

        if (!string.IsNullOrEmpty(selectedIds))
        {
            string[] splitIds = selectedIds.Split(
                new string[] { "," },
                StringSplitOptions.RemoveEmptyEntries);

            foreach (string id in splitIds)
            {
                long objectId;
                if (long.TryParse(id, out objectId))
                {
                    ConflictReviewData data = new ConflictReviewData();
                    data.ObjectId = objectId;
                    data.Type = type;
                    data.ObjectName = string.Empty;
                    data.IsReviewed = true;

                    conflicts.Add(data);
                }
            }
        }

        return conflicts;
    }
Beispiel #4
0
 private string getUserMsgForSyncEvent(SyncConflictType syncConflict, string filename)
 {
     //Make a Switch and return a user-friendly msg
     return(filename + " - " + syncConflict.ToString() + "\n Sync from Remote Folder?");
 }
Beispiel #5
0
 private async Task FolderSynchronizer_OnConflictConfirmationRequiredToProceedAsync(string filename, SyncConflictType conflictType, string conflictID)
 {
     //Could have a list of pre-defined responses that won't be asked to the user
     if (System.Windows.MessageBox.Show(getUserMsgForSyncEvent(conflictType, filename), "Confirmation", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
     {
         folderSynchronizer.ProcessConflictAsync(conflictID, OnConflictAction.SyncFromRemote);
     }
     else
     {
         folderSynchronizer.ProcessConflictAsync(conflictID, OnConflictAction.SyncFromLocal);
     }
 }