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); } }
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 }); }