public BagIntegrityProcessing(String hub, String airline, ISessionFactory factory, H2HProcessing h2hProcessing)
 {
     this.hub           = hub;
     this.airline       = airline;
     this.factory       = factory;
     this.h2hProcessing = h2hProcessing;
 }
        /// <summary>
        /// Refresh reference list to ensure
        /// </summary>
        private void RefreshRefLists()
        {
            try
            {
                // BagTimes Reference
                if (this.refList == null)
                {
                    this.refList = this.SearchBagTimesReference();
                }

                BagTMLog.LogDebug("BagTM Engine Processing Constructor refList", refList);

                // Equipements Types
                if (this.equipementTypeList == null)
                {
                    this.equipementTypeList = this.SearchEquipementsTypes();
                }

                BagTMLog.LogDebug("BagTM Engine Processing Constructor equipementTypeList", equipementTypeList);

                // Taxi Times
                if (this.taxiTimesList == null)
                {
                    this.taxiTimesList = this.SearchTaxiTimes();
                }

                BagTMLog.LogDebug("BagTM Engine Processing Constructor taxiTimesList", taxiTimesList);

                // Registrations
                if (this.registrationList == null)
                {
                    this.registrationList = this.SearchRegistration();
                }

                BagTMLog.LogDebug("BagTM Engine Processing Constructor registrationList", registrationList);
            }
            catch (DbEntityValidationException ex)
            {
                // Retrieve the error messages as a list of strings.
                var errorMessages = ex.EntityValidationErrors
                                    .SelectMany(x => x.ValidationErrors)
                                    .Select(x => x.ErrorMessage);

                // Join the list to a single string.
                var fullErrorMessage = string.Join("; ", errorMessages);

                // Combine the original exception message with the new one.
                var exceptionMessage = string.Concat(ex.Message, " The query errors are: ", fullErrorMessage);

                // Throw a new DbEntityValidationException with the improved exception message.
                throw new EngineProcessingException(exceptionMessage);
            }

            if (this.h2hProcessing == null)
            {
                this.h2hProcessing = new H2HProcessing(this.hub, this.defaultEquipment, this.defaultStandFrom,
                                                       this.defaultGateTo, this.baggageTerminalCode, this.minLoadUnloadTime, this.maxLoadUnloadTime,
                                                       this.maxBaggageTurnaround, this.sorterVolumeMap, this.maxSorterThroughPut, this.sorterTime,
                                                       this.refList, this.equipementTypeList, this.taxiTimesList, this.registrationList);
            }

            if (this.ptmH2HProcessing == null)
            {
                this.ptmH2HProcessing = new PTMH2HProcessing(this.hub, this.etcg, this.maxPaxTurnaround, this.airline);
            }

            if (this.bagIntergityProcessing == null)
            {
                this.bagIntergityProcessing = new BagIntegrityProcessing(this.hub, this.airline, this.factory, this.h2hProcessing);
            }

            if (this.fltInfoProcessing == null)
            {
                this.fltInfoProcessing = new FLTINFOProcessing(this.h2hProcessing, this.ptmH2HProcessing);
            }
        }
 public FLTINFOProcessing(H2HProcessing h2hProcessing, PTMH2HProcessing ptmH2HProcessing)
 {
     this.h2hProcessing    = h2hProcessing;
     this.ptmH2HProcessing = ptmH2HProcessing;
 }