public void submitReport(HandlingReport handlingReport) { var validationErrors = new List <string>(); var completionTime = handlingReport.completionTime; var voyageNumber = HandlingReportParser.parseVoyageNumber(handlingReport.voyageNumber, validationErrors); var type = HandlingReportParser.parseEventType(handlingReport.type, validationErrors); var unLocode = HandlingReportParser.parseUnLocode(handlingReport.unLocode, validationErrors); var operatorCode = HandlingReportParser.parseOperatorCode(); var allErrors = new Dictionary <string, string>(); foreach (string trackingIdStr in handlingReport.trackingIds) { var trackingId = HandlingReportParser.parseTrackingId(trackingIdStr, validationErrors); if (!validationErrors.Any()) { try { handlingEventService.registerHandlingEvent(completionTime, trackingId, voyageNumber, unLocode, type, operatorCode); } catch (CannotCreateHandlingEventException e) { logger.Error(e, e); allErrors.Add(trackingIdStr, e.Message); } } else { logger.Error("Parse error in handling report: " + validationErrors); allErrors.Add(trackingIdStr, String.Join(", ", validationErrors)); } } if (allErrors.Any()) { var faultInfo = new HandlingReportErrors(); throw new FaultException <HandlingReportErrors>(faultInfo, createErrorMessage(allErrors)); } }
public void submitReport(HandlingReport handlingReport) { var validationErrors = new List<string>(); var completionTime = handlingReport.completionTime; var voyageNumber = HandlingReportParser.parseVoyageNumber(handlingReport.voyageNumber, validationErrors); var type = HandlingReportParser.parseEventType(handlingReport.type, validationErrors); var unLocode = HandlingReportParser.parseUnLocode(handlingReport.unLocode, validationErrors); var operatorCode = HandlingReportParser.parseOperatorCode(); var allErrors = new Dictionary<string, string>(); foreach(string trackingIdStr in handlingReport.trackingIds) { var trackingId = HandlingReportParser.parseTrackingId(trackingIdStr, validationErrors); if(!validationErrors.Any()) { try { handlingEventService.registerHandlingEvent(completionTime, trackingId, voyageNumber, unLocode, type, operatorCode); } catch(CannotCreateHandlingEventException e) { logger.Error(e, e); allErrors.Add(trackingIdStr, e.Message); } } else { logger.Error("Parse error in handling report: " + validationErrors); allErrors.Add(trackingIdStr, String.Join(", ", validationErrors)); } } if(allErrors.Any()) { var faultInfo = new HandlingReportErrors(); throw new FaultException<HandlingReportErrors>(faultInfo, createErrorMessage(allErrors)); } }