A game about forced loneliness, made by TACStudios
1using Codice.Client.BaseCommands.Merge;
2using PlasticGui.WorkspaceWindow.Merge;
3
4namespace Unity.PlasticSCM.Editor.Views.Merge.Developer
5{
6 internal static class IsSolved
7 {
8 internal static bool Conflict(
9 MergeChangeInfo changeInfo,
10 MergeChangeInfo metaChangeInfo,
11 MergeSolvedFileConflicts solvedFileConflicts)
12 {
13 if (IsDirectoryConflict(changeInfo))
14 {
15 if (metaChangeInfo == null)
16 return IsDirectoryConflictResolved(changeInfo);
17
18 return IsDirectoryConflictResolved(changeInfo) &&
19 IsDirectoryConflictResolved(metaChangeInfo);
20 }
21
22 if (metaChangeInfo == null)
23 {
24 return IsFileConflictResolved(
25 changeInfo, solvedFileConflicts);
26 }
27
28 return IsFileConflictResolved(changeInfo, solvedFileConflicts) &&
29 IsFileConflictResolved(metaChangeInfo, solvedFileConflicts);
30 }
31
32 static bool IsFileConflictResolved(
33 MergeChangeInfo changeInfo,
34 MergeSolvedFileConflicts solvedFileConflicts)
35 {
36 if (solvedFileConflicts == null)
37 return false;
38
39 return solvedFileConflicts.IsResolved(
40 changeInfo.GetMount().Id,
41 changeInfo.GetRevision().ItemId);
42 }
43
44 static bool IsDirectoryConflictResolved(MergeChangeInfo changeInfo)
45 {
46 return changeInfo.DirectoryConflict.IsResolved();
47 }
48
49 static bool IsDirectoryConflict(MergeChangeInfo changeInfo)
50 {
51 return (changeInfo.DirectoryConflict != null);
52 }
53 }
54}