Example #1
0
        /// <summary>
        /// Aggregate Data and return UnitInfo List
        /// </summary>
        public DataAggregatorResult AggregateData(FahLog fahLog, QueueData queueData, UnitInfoLogData unitInfo)
        {
            if (Logger.IsDebugEnabled)
            {
                foreach (var s in fahLog.Where(x => x.LineType == LogLineType.Error))
                {
                    Logger.DebugFormat(Constants.ClientNameFormat, ClientName, String.Format("Failed to parse log line: {0}", s));
                }
            }

            var currentClientRun = GetCurrentClientRun(fahLog);

            if (currentClientRun == null)
            {
                return(null);
            }

            var result = new DataAggregatorResult();

            result.StartTime     = currentClientRun.Data.StartTime;
            result.Arguments     = currentClientRun.Data.Arguments;
            result.ClientVersion = currentClientRun.Data.ClientVersion;
            result.UserID        = currentClientRun.Data.UserID;
            result.MachineID     = currentClientRun.Data.MachineID;
            result.Status        = currentClientRun.SlotRuns[0].Data.Status;

            // Decision Time: If Queue Read fails parse from logs only
            if (queueData != null)
            {
                GenerateUnitInfoDataFromQueue(result, queueData, fahLog, unitInfo);
                result.Queue            = BuildQueueDictionary(queueData);
                result.CurrentUnitIndex = result.Queue.CurrentIndex;
            }
            else
            {
                Logger.WarnFormat(Constants.ClientNameFormat, ClientName,
                                  "Queue unavailable or failed read.  Parsing logs without queue.");

                GenerateUnitInfoDataFromLogs(result, fahLog, unitInfo);
                // default Unit Index if only parsing logs
                result.CurrentUnitIndex = 1;
            }

            if (result.UnitInfos == null || result.UnitInfos[result.CurrentUnitIndex] == null || result.UnitInfos[result.CurrentUnitIndex].LogLines == null)
            {
                result.CurrentLogLines = currentClientRun.ToList();
            }
            else
            {
                result.CurrentLogLines = result.UnitInfos[result.CurrentUnitIndex].LogLines;
            }

            return(result);
        }
      /// <summary>
      /// Aggregate Data and return UnitInfo List
      /// </summary>
      public DataAggregatorResult AggregateData(FahLog fahLog, QueueData queueData, UnitInfoLogData unitInfo)
      {
         if (Logger.IsDebugEnabled)
         {
            foreach (var s in fahLog.Where(x => x.LineType == LogLineType.Error))
            {
               Logger.DebugFormat(Constants.ClientNameFormat, ClientName, String.Format("Failed to parse log line: {0}", s));
            }
         }

         var currentClientRun = GetCurrentClientRun(fahLog);
         if (currentClientRun == null)
         {
            return null;
         }

         var result = new DataAggregatorResult();
         result.StartTime = currentClientRun.Data.StartTime;
         result.Arguments = currentClientRun.Data.Arguments;
         result.ClientVersion = currentClientRun.Data.ClientVersion;
         result.UserID = currentClientRun.Data.UserID;
         result.MachineID = currentClientRun.Data.MachineID;
         result.Status = currentClientRun.SlotRuns[0].Data.Status;

         // Decision Time: If Queue Read fails parse from logs only
         if (queueData != null)
         {
            GenerateUnitInfoDataFromQueue(result, queueData, fahLog, unitInfo);
            result.Queue = BuildClientQueue(queueData);
            result.CurrentUnitIndex = result.Queue.CurrentIndex;
         }
         else
         {
            Logger.WarnFormat(Constants.ClientNameFormat, ClientName,
               "Queue unavailable or failed read.  Parsing logs without queue.");

            GenerateUnitInfoDataFromLogs(result, fahLog, unitInfo);
            // default Unit Index if only parsing logs
            result.CurrentUnitIndex = 1;
         }

         if (result.UnitInfos == null || result.UnitInfos[result.CurrentUnitIndex] == null || result.UnitInfos[result.CurrentUnitIndex].LogLines == null)
         {
            result.CurrentLogLines = currentClientRun.ToList();
         }
         else
         {
            result.CurrentLogLines = result.UnitInfos[result.CurrentUnitIndex].LogLines;
         }

         return result;
      }