Exemplo n.º 1
0
        public void SubmitReport(HandlingReport handlingReport)
        {
            IList <string> errors = new List <string>();

            DateTime?    completionTime = HandlingReportParser.ParseCompletionTime(handlingReport, errors);
            VoyageNumber voyageNumber   = HandlingReportParser.ParseVoyageNumber(handlingReport.VoyageNumber, errors);
            HandlingType type           = HandlingReportParser.ParseEventType(handlingReport.Type, errors);
            UnLocode     unLocode       = HandlingReportParser.ParseUnLocode(handlingReport.UnLocode, errors);

            foreach (string trackingIdStr in handlingReport.TrackingIds)
            {
                TrackingId trackingId = HandlingReportParser.ParseTrackingId(trackingIdStr, errors);

                if (errors.IsEmpty())
                {
                    DateTime registrationTime = DateTime.Now;
                    var      attempt          = new HandlingEventRegistrationAttempt(
                        registrationTime, completionTime.Value, trackingId, voyageNumber, type, unLocode);
                    applicationEvents.ReceivedHandlingEventRegistrationAttempt(attempt);
                }
                else
                {
                    string errorString = String.Join("\r\n", errors.ToArray());
                    logger.Error("Parse error in handling report: " + errorString);

                    throw new FaultException <HandlingReportException>(new HandlingReportException(errorString), new FaultReason(errorString));
                }
            }
        }
Exemplo n.º 2
0
        private void queueAttempt(string completionTimeStr, string trackingIdStr, string voyageNumberStr, string unLocodeStr, string eventTypeStr)
        {
            var errors = new List <string>();

            var date         = HandlingReportParser.parseDate(completionTimeStr, errors);
            var trackingId   = HandlingReportParser.parseTrackingId(trackingIdStr, errors);
            var voyageNumber = HandlingReportParser.parseVoyageNumber(voyageNumberStr, errors);
            var eventType    = HandlingReportParser.parseEventType(eventTypeStr, errors);
            var unLocode     = HandlingReportParser.parseUnLocode(unLocodeStr, errors);
            var operatorCode = HandlingReportParser.parseOperatorCode();

            if (!errors.Any())
            {
                handlingEventService.registerHandlingEvent(date, trackingId, voyageNumber, unLocode, eventType, operatorCode);
            }
            else
            {
                throw new FormatException(String.Join(", ", errors));
            }
        }
Exemplo n.º 3
0
        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));
            }
        }
Exemplo n.º 4
0
        private void QueueAttempt(string completionTimeStr, string trackingIdStr, string voyageNumberStr,
                                  string unLocodeStr, string eventTypeStr)
        {
            var errors = new List <string>();

            DateTime     date         = HandlingReportParser.ParseDate(completionTimeStr, errors);
            TrackingId   trackingId   = HandlingReportParser.ParseTrackingId(trackingIdStr, errors);
            VoyageNumber voyageNumber = HandlingReportParser.ParseVoyageNumber(voyageNumberStr, errors);
            HandlingType eventType    = HandlingReportParser.ParseEventType(eventTypeStr, errors);
            UnLocode     unLocode     = HandlingReportParser.ParseUnLocode(unLocodeStr, errors);

            if (errors.IsEmpty())
            {
                var attempt = new HandlingEventRegistrationAttempt(DateTime.Now, date,
                                                                   trackingId, voyageNumber,
                                                                   eventType, unLocode);
                AppEvents.ReceivedHandlingEventRegistrationAttempt(attempt);
            }
            else
            {
                throw new Exception(ToStringBuilder.ReflectionToString(errors));
            }
        }