/// <summary>Process the command result list.</summary> /// <param name="elementId">Identifier for the element.</param> /// <param name="missionCode">The default mission code.</param> /// <param name="listOfResultType">Type of the list of result.</param> private static void ProcessCommandResultList(string elementId, string missionCode, PIS.Train.RealTime.ListOfResultType listOfResultType) { if (listOfResultType != null) { TraceType logLevel = TraceType.NONE; // Determinate the log level. foreach (var resultType in listOfResultType) { if (resultType == null) { continue; } switch (resultType.ResultCode) { case PIS.Train.RealTime.ResultCodeEnum.OK: if (logLevel == TraceType.NONE) { logLevel = TraceType.INFO; } break; case PIS.Train.RealTime.ResultCodeEnum.NotCurrentMission: case PIS.Train.RealTime.ResultCodeEnum.StationNotInTrainRoute: if (logLevel != TraceType.ERROR) { logLevel = TraceType.WARNING; } break; case PIS.Train.RealTime.ResultCodeEnum.ComplexError: case PIS.Train.RealTime.ResultCodeEnum.InvalidSoapRequest: case PIS.Train.RealTime.ResultCodeEnum.Error: default: logLevel = TraceType.ERROR; break; } if (logLevel == TraceType.ERROR) { break; } } // Generate the log string if (LogManager.IsTraceActive(logLevel)) { StringBuilder logStr = new StringBuilder(500 + 100 * listOfResultType.Count); logStr.AppendFormat(CultureInfo.CurrentCulture, Logs.RESULT_PROCESS_TITLE, elementId, missionCode); logStr.AppendLine(); foreach (var resultType in listOfResultType) { if (resultType == null) { continue; } if (!string.IsNullOrEmpty(resultType.StationCode)) { logStr.AppendFormat(CultureInfo.CurrentCulture, Logs.RESULT_PROCESS_STATION_UPDATE, resultType.InformationType, resultType.StationCode, resultType.ResultCode); } else { logStr.AppendFormat(CultureInfo.CurrentCulture, Logs.RESULT_PROCESS_MISSION_UPDATE, resultType.InformationType, resultType.ResultCode); } logStr.AppendLine(); if (resultType.ComplexErrorList != null) { foreach (var complexError in resultType.ComplexErrorList) { if (complexError.ParameterErrorList != null) { foreach (var parameterError in complexError.ParameterErrorList) { logStr.AppendFormat(CultureInfo.CurrentCulture, Logs.RESULT_PROCESS_PARAMETER, parameterError.ParameterName, parameterError.ErrorMessage, parameterError.ErroneousValue); logStr.AppendLine(); } } } } } LogManager.WriteLog(logLevel, logStr.ToString(), "PIS.Ground.RealTime.RequestProcessor.ProcessCommandResultList", null, EventIdEnum.RealTime); } } }
public SetStationRealTimeResponse(PIS.Train.RealTime.ListOfResultType ResultList) { this.ResultList = ResultList; }