예제 #1
0
 private static void DockControlVisitor(LocationReportBuilder locationReportBuilder, DockControl dockControl)
 {
     if (Equals(dockControl, locationReportBuilder.TargetDockControl))
     {
         locationReportBuilder.MarkFound();
     }
 }
예제 #2
0
 private static void BranchVisitor(LocationReportBuilder locationReportBuilder, BranchAccessor branchAccessor)
 {
     if (Equals(branchAccessor.FirstDockControl, locationReportBuilder.TargetDockControl))
     {
         locationReportBuilder.MarkFound(branchAccessor.Branch, false);
     }
     else if (Equals(branchAccessor.SecondDockControl, locationReportBuilder.TargetDockControl))
     {
         locationReportBuilder.MarkFound(branchAccessor.Branch, true);
     }
     else
     {
         branchAccessor.Visit(BranchItem.First, ba => BranchVisitor(locationReportBuilder, ba));
         if (locationReportBuilder.IsFound)
         {
             return;
         }
         branchAccessor.Visit(BranchItem.Second, ba => BranchVisitor(locationReportBuilder, ba));
     }
 }