Example #1
0
 public void ProjectRunCloneGenTest2()
 {
     var projectInfo = new ProjectInfo { ProjectID = 1, ProjectRun = 2, ProjectClone = 3, ProjectGen = 4 };
      Assert.AreEqual("P1 (R2, C3, G4)", projectInfo.ProjectRunCloneGen());
 }
Example #2
0
      private static void PopulateProjectData(LogLine line, FahLogUnitData data)
      {
         Debug.Assert(line != null);
         Debug.Assert(data != null);
         Debug.Assert(line.LineType.Equals(LogLineType.WorkUnitProject));
         
         var match = (Match)line.LineData;
         var info = new ProjectInfo
                        {
                           ProjectID = Int32.Parse(match.Result("${ProjectNumber}")),
                           ProjectRun = Int32.Parse(match.Result("${Run}")),
                           ProjectClone = Int32.Parse(match.Result("${Clone}")),
                           ProjectGen = Int32.Parse(match.Result("${Gen}"))
                        };

         data.ProjectInfoList.Add(info);
      }
Example #3
0
 public void ProjectIsUnknownTest2()
 {
     var projectInfo = new ProjectInfo();
      Assert.IsTrue(projectInfo.ProjectIsUnknown());
 }
Example #4
0
 public void ProjectRunCloneGenTest1()
 {
     var projectInfo = new ProjectInfo();
      Assert.AreEqual("P0 (R0, C0, G0)", projectInfo.ProjectRunCloneGen());
 }
Example #5
0
 public void EqualsProjectTest5()
 {
     var projectInfo1 = new ProjectInfo { ProjectID = 1, ProjectRun = 2, ProjectClone = 3, ProjectGen = 4 };
      IProjectInfo projectInfo2 = null;
      Assert.IsFalse(projectInfo1.EqualsProject(projectInfo2));
 }
Example #6
0
 public void ProjectIsUnknownTest1()
 {
     var projectInfo = new ProjectInfo { ProjectID = 1 };
      Assert.IsFalse(projectInfo.ProjectIsUnknown());
 }
Example #7
0
 public void EqualsProjectTest4()
 {
     IProjectInfo projectInfo1 = null;
      var projectInfo2 = new ProjectInfo { ProjectID = 5, ProjectRun = 6, ProjectClone = 7, ProjectGen = 8 };
      Assert.IsFalse(projectInfo1.EqualsProject(projectInfo2));
 }
Example #8
0
 public void EqualsProjectTest3()
 {
     var projectInfo1 = new ProjectInfo { ProjectID = 1, ProjectRun = 2, ProjectClone = 3, ProjectGen = 4 };
      var projectInfo2 = new ProjectInfo { ProjectID = 5, ProjectRun = 6, ProjectClone = 7, ProjectGen = 8 };
      Assert.IsFalse(projectInfo1.EqualsProject(projectInfo2));
 }
Example #9
0
 public void EqualsProjectTest2()
 {
     var projectInfo1 = new ProjectInfo { ProjectID = 1, ProjectRun = 2, ProjectClone = 3, ProjectGen = 4 };
      var projectInfo2 = new ProjectInfo { ProjectID = 1, ProjectRun = 2, ProjectClone = 3, ProjectGen = 4 };
      Assert.IsTrue(projectInfo1.EqualsProject(projectInfo2));
 }
Example #10
0
 public void EqualsProjectTest1()
 {
     var projectInfo1 = new ProjectInfo();
      var projectInfo2 = new ProjectInfo();
      Assert.IsTrue(projectInfo1.EqualsProject(projectInfo2));
 }
        private IDictionary<int, UnitInfo> GenerateUnitInfoDataFromQueue(IEnumerable<Unit> unitCollection, Options options, 
            SlotOptions slotOptions, UnitInfo currentUnitInfo, int slotId)
        {
            Debug.Assert(unitCollection != null);
             Debug.Assert(options != null);
             Debug.Assert(slotOptions != null);
             Debug.Assert(currentUnitInfo != null);

             var parsedUnits = new Dictionary<int, UnitInfo>();
             _unitLogLines = new Dictionary<int, IList<LogLine>>();

             bool foundCurrentUnitInfo = false;

             foreach (var unit in unitCollection)
             {
            if (unit.Slot != slotId)
            {
               // does not match requested slot
               continue;
            }

            var projectInfo = new ProjectInfo { ProjectID = unit.Project, ProjectRun = unit.Run,
                                                ProjectClone = unit.Clone, ProjectGen = unit.Gen };
            if (projectInfo.EqualsProject(currentUnitInfo) &&
                unit.AssignedDateTime.GetValueOrDefault().Equals(currentUnitInfo.DownloadTime))
            {
               foundCurrentUnitInfo = true;
            }

            FahLogUnitData fahLogUnitData = null;
            // Get the Log Lines for this queue position from the reader
            var logLines = _logInterpreter.GetLogLinesForQueueIndex(unit.Id, projectInfo);
            if (logLines == null)
            {
               string message = String.Format(CultureInfo.CurrentCulture,
                  "Could not find log section for slot {0}. Cannot update frame data for this slot.", slotId);
               _logger.Warn(Constants.ClientNameFormat, ClientName, message);
            }
            else
            {
               // Get the FAH Log Data from the Log Lines
               fahLogUnitData = LogReader.GetFahLogDataFromLogLines(logLines);
            }

            UnitInfo unitInfo = BuildUnitInfo(unit, options, slotOptions, fahLogUnitData);
            if (unitInfo != null)
            {
               parsedUnits.Add(unit.Id, unitInfo);
               if (logLines != null)
               {
                  _unitLogLines.Add(unit.Id, logLines);
               }
               if (unit.StateEnum.Equals(FahUnitStatus.Running))
               {
                  _currentUnitIndex = unit.Id;
               }
            }
             }

             // if no running WU found
             if (_currentUnitIndex == -1)
             {
            // look for a WU with Ready state
            var unit = unitCollection.FirstOrDefault(x => x.Slot == slotId && x.StateEnum.Equals(FahUnitStatus.Ready));
            if (unit != null)
            {
               _currentUnitIndex = unit.Id;
            }
             }

             // if the current unit has already left the UnitCollection then find the log section and update here
             if (!foundCurrentUnitInfo)
             {
            // Get the Log Lines for this queue position from the reader
            var logLines = _logInterpreter.GetLogLinesForQueueIndex(currentUnitInfo.QueueIndex, currentUnitInfo);
            if (logLines != null)
            {
               // Get the FAH Log Data from the Log Lines
               FahLogUnitData fahLogUnitData = LogReader.GetFahLogDataFromLogLines(logLines);

               // create a clone of the current UnitInfo object so we're not working with an
               // instance that is referenced by a SlotModel that is bound to the grid - Issue 277
               UnitInfo currentClone = currentUnitInfo.DeepClone();

               UpdateUnitInfo(currentClone, fahLogUnitData);
               parsedUnits.Add(currentClone.QueueIndex, currentClone);
               _unitLogLines.Add(currentClone.QueueIndex, logLines);
            }
             }

             return parsedUnits;
        }