/// <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; }