using Codice.Client.BaseCommands.Merge; using PlasticGui.WorkspaceWindow.Merge; namespace Unity.PlasticSCM.Editor.Views.IncomingChanges.Developer { internal static class IsSolved { internal static bool Conflict( MergeChangeInfo changeInfo, MergeChangeInfo metaChangeInfo, MergeSolvedFileConflicts solvedFileConflicts) { if (IsDirectoryConflict(changeInfo)) { if (metaChangeInfo == null) return IsDirectoryConflictResolved(changeInfo); return IsDirectoryConflictResolved(changeInfo) && IsDirectoryConflictResolved(metaChangeInfo); } if (metaChangeInfo == null) { return IsFileConflictResolved( changeInfo, solvedFileConflicts); } return IsFileConflictResolved(changeInfo, solvedFileConflicts) && IsFileConflictResolved(metaChangeInfo, solvedFileConflicts); } static bool IsFileConflictResolved( MergeChangeInfo changeInfo, MergeSolvedFileConflicts solvedFileConflicts) { if (solvedFileConflicts == null) return false; return solvedFileConflicts.IsResolved( changeInfo.GetMount().Id, changeInfo.GetRevision().ItemId); } static bool IsDirectoryConflictResolved(MergeChangeInfo changeInfo) { return changeInfo.DirectoryConflict.IsResolved(); } static bool IsDirectoryConflict(MergeChangeInfo changeInfo) { return (changeInfo.DirectoryConflict != null); } } }