示例#1
0
        private void newBookingCreatedAnalysis(BaseAnalysisResult output, string rawText,
                                               long currentLineNumberStart, long currentLineNumber, string sourceName)
        {
            var newAccountCreated = output as NewBookingCreatedAnalysis;

            if (newAccountCreated != null)
            {
                // Need logic below for times when TransactionId is not in the request.
                var theBooking = Bookings.FirstOrDefault(b => string.IsNullOrEmpty(b.TransactionId));
                if (theBooking == null)
                {
                    theBooking = Bookings.FirstOrDefault(b => b.TransactionId == newAccountCreated.ClientTransactionId);
                }
                else
                {
                    theBooking.TransactionId = newAccountCreated.ClientTransactionId;
                }
                theBooking.AccountId = newAccountCreated.AccountId;

                newAccountCreated.MiscTraceDataAnalysis.StartLineNumber = currentLineNumber;
                newAccountCreated.MiscTraceDataAnalysis.EndLineNumber   = currentLineNumber;

                theBooking.MiscellaneousTraceData.Add(newAccountCreated.MiscTraceDataAnalysis);
            }
        }
示例#2
0
        private void consumeParserOutput(BaseAnalysisResult output, string rawText,
                                         long currentLineNumberStart, long currentLineNumber, string sourceName)
        {
            if (output == null)
            {
                return;
            }

            OutputConsumers[output.GetType()]?.Invoke(output, rawText, currentLineNumberStart, currentLineNumber, sourceName);
        }
示例#3
0
        private void miscTraceDataAnalysis(BaseAnalysisResult output, string rawText,
                                           long currentLineNumberStart, long currentLineNumber, string sourceName)
        {
            var miscTraceData = output as MiscellaneousTraceDataAnalysis;

            if (miscTraceData != null)
            {
                miscTraceData.Source          = sourceName;
                miscTraceData.StartLineNumber = currentLineNumber;
                miscTraceData.EndLineNumber   = currentLineNumber;
                var theBooking = Bookings.FirstOrDefault(b => b.AccountId == miscTraceData.AccountId);
                theBooking?.MiscellaneousTraceData.Add(miscTraceData);
            }
        }
示例#4
0
        private void consumeBookingAnalysis(BaseAnalysisResult output, string rawText,
                                            long currentLineNumberStart, long currentLineNumber, string sourceName)
        {
            var booking = output as BookingAnalysis;

            if (booking != null)
            {
                if (!Bookings.Exists(b => b.TransactionId == booking.TransactionId))
                {
                    booking.Source          = sourceName;
                    booking.StartLineNumber = currentLineNumberStart;
                    booking.EndLineNumber   = currentLineNumber;

                    Bookings.Add(booking);
                }
            }
        }
示例#5
0
        private void reservationConfirmationAnalysis(BaseAnalysisResult output, string rawText,
                                                     long currentLineNumberStart, long currentLineNumber, string sourceName)
        {
            var reservationConfirmation = output as ReservationConfirmationAnalysis;

            if (reservationConfirmation != null)
            {
                var theBooking = Bookings.FirstOrDefault(b => b.AccountId == reservationConfirmation.AccountId);
                if (theBooking != null)
                {
                    reservationConfirmation.Source          = sourceName;
                    reservationConfirmation.StartLineNumber = currentLineNumber;
                    reservationConfirmation.EndLineNumber   = currentLineNumber;
                    theBooking.Confirmation = reservationConfirmation;
                }
            }
        }