예제 #1
0
        private async void MergingServiceOnMergingConflictsAquired()
        {
            _mergingConflicts = _mergingService.MergingConflicts;

            if (_mergingConflicts.ProjectConfict != null)
            {
                await ResolveProjectConflict();
            }
            if (_mergingConflicts.TaskStatesConflicts.Any())
            {
                var unconflictedTaskStates = (await _taskStateStorageService.GetAll()).ToList();

                TaskStateConflict = new EntityConflict <TaskStatesCollectionViewModel>
                {
                    OurValue = new TaskStatesCollectionViewModel(_mergingConflicts.TaskStatesConflicts.Select(x => x.OurValue).Where(x => x != null)
                                                                 .Concat(unconflictedTaskStates).Distinct().OrderBy(x => x.Position)),
                    AncestorValue = new TaskStatesCollectionViewModel(_mergingConflicts.TaskStatesConflicts.Select(x => x.AncestorValue).Where(x => x != null)
                                                                      .Concat(unconflictedTaskStates).Distinct().OrderBy(x => x.Position)),
                    TheirValue = new TaskStatesCollectionViewModel(_mergingConflicts.TaskStatesConflicts.Select(x => x.TheirValue).Where(x => x != null)
                                                                   .Concat(unconflictedTaskStates).Distinct().OrderBy(x => x.Position))
                };
            }
            else
            {
                TaskStateConflict = null;
                OnTaskStatesConflictResolved();
            }
            IsLoading = false;
        }
예제 #2
0
        private async void RepositoryServiceOnRepositoryInitalized()
        {
            MergingConflicts = await _repositoryService.GetCurrentMergingConflicts();

            if (MergingConflicts == null)
            {
                IsMergingCompleted = true;
                return;
            }
            _conflictToBeMerged = MergingConflicts.TaskConflicts.Count + (MergingConflicts.TaskStatesConflicts.Any() ? 1 : 0);
            if (MergingConflicts.ProjectConfict != null)
            {
                _conflictToBeMerged++;
            }

            MergingConflictsAquired?.Invoke();

            if (_conflictToBeMerged != 0)
            {
                return;
            }

            IsMergingCompleted = true;
        }
예제 #3
0
 private void ProjectPathsServiceOnProjectPathChanged()
 {
     _mergingConflicts = null;
     IsLoading         = true;
 }