Example #1
0
        public void Handle(VehicleTypeAddedUpdated @event)
        {
            using (var context = _contextFactory.Invoke())
            {
                var vehicleTypeDetail = context.Find <VehicleTypeDetail>(@event.VehicleTypeId);
                if (vehicleTypeDetail == null)
                {
                    vehicleTypeDetail = new VehicleTypeDetail {
                        Id = @event.VehicleTypeId
                    };
                    vehicleTypeDetail.CreatedDate = @event.EventDate;
                }

                vehicleTypeDetail.Name     = @event.Name;
                vehicleTypeDetail.LogoName = @event.LogoName;
                vehicleTypeDetail.ReferenceDataVehicleId        = @event.ReferenceDataVehicleId;
                vehicleTypeDetail.MaxNumberPassengers           = @event.MaxNumberPassengers;
                vehicleTypeDetail.ReferenceNetworkVehicleTypeId = @event.ReferenceNetworkVehicleTypeId;
                vehicleTypeDetail.IsWheelchairAccessible        = @event.IsWheelchairAccessible;

                context.Save(vehicleTypeDetail);
            }
        }
Example #2
0
        public static IbsOrderParams PrepareForIbsOrder(IBSSettingContainer ibsSettingsContainer, VehicleTypeDetail defaultVehicleType,
                                                        int?chargeTypeId, Address pickupAddress, Address dropOffAddress, string accountNumberString, string customerNumberString,
                                                        IList <ListItem> referenceDataCompanyList, string market, int?requestProviderId, string companyKey)
        {
            int?ibsChargeTypeId;

            if (chargeTypeId == ChargeTypes.CardOnFile.Id ||
                chargeTypeId == ChargeTypes.PayPal.Id)
            {
                ibsChargeTypeId = ibsSettingsContainer.PaymentTypeCardOnFileId;
            }
            else if (chargeTypeId == ChargeTypes.Account.Id)
            {
                ibsChargeTypeId = ibsSettingsContainer.PaymentTypeChargeAccountId;
            }
            else
            {
                ibsChargeTypeId = ibsSettingsContainer.PaymentTypePaymentInCarId;
            }

            var ibsPickupAddress  = Mapper.Map <IbsAddress>(pickupAddress);
            var ibsDropOffAddress = dropOffAddress != null && dropOffAddress.IsValid()
                ? Mapper.Map <IbsAddress>(dropOffAddress)
                : null;

            var customerNumber = GetCustomerNumber(accountNumberString, customerNumberString);

            var defaultVehicleTypeId = defaultVehicleType != null ? defaultVehicleType.ReferenceDataVehicleId : -1;

            var defaultCompany = referenceDataCompanyList.FirstOrDefault(x => x.IsDefault.HasValue && x.IsDefault.Value)
                                 ?? referenceDataCompanyList.FirstOrDefault();

            //if we are in external market or local market but in a different company
            var providerId = (market.HasValue() || companyKey.HasValue()) &&
                             referenceDataCompanyList.Any() && defaultCompany != null
                    ? defaultCompany.Id
                    : requestProviderId;

            return(new IbsOrderParams
            {
                CustomerNumber = customerNumber,
                DefaultVehicleTypeId = defaultVehicleTypeId,
                IbsChargeTypeId = ibsChargeTypeId,
                IbsPickupAddress = ibsPickupAddress,
                IbsDropOffAddress = ibsDropOffAddress,
                ProviderId = providerId
            });
        }