protected virtual void LoadOrderDependencies(CustomerOrder order) { if (order == null) { throw new ArgumentNullException(nameof(order)); } if (ShippingMethodsService != null) { var shippingMethods = ShippingMethodsService.GetAllShippingMethods(); if (!shippingMethods.IsNullOrEmpty() && !order.Shipments.IsNullOrEmpty()) { foreach (var shipment in order.Shipments) { shipment.ShippingMethod = shippingMethods.FirstOrDefault(x => x.Code.EqualsInvariant(shipment.ShipmentMethodCode)); } } } if (PaymentMethodsService != null) { var paymentMethods = PaymentMethodsService.GetAllPaymentMethods(); if (!paymentMethods.IsNullOrEmpty() && !order.InPayments.IsNullOrEmpty()) { foreach (var payment in order.InPayments) { payment.PaymentMethod = paymentMethods.FirstOrDefault(x => x.Code.EqualsInvariant(payment.GatewayCode)); } } } }
public virtual CustomerOrder[] GetByIds(string[] orderIds, string responseGroup = null) { var retVal = new List <CustomerOrder>(); var orderResponseGroup = EnumUtility.SafeParse(responseGroup, CustomerOrderResponseGroup.Full); using (var repository = RepositoryFactory()) { var orderEntities = repository.GetCustomerOrdersByIds(orderIds, orderResponseGroup); foreach (var orderEntity in orderEntities) { var customerOrder = AbstractTypeFactory <CustomerOrder> .TryCreateInstance(); if (customerOrder != null) { customerOrder = orderEntity.ToModel(customerOrder) as CustomerOrder; if (customerOrder != null) { var shippingMethods = ShippingMethodsService.GetAllShippingMethods(); if (!shippingMethods.IsNullOrEmpty()) { foreach (var shipment in customerOrder.Shipments) { shipment.ShippingMethod = shippingMethods.FirstOrDefault(x => x.Code.EqualsInvariant(shipment.ShipmentMethodCode)); } } var paymentMethods = PaymentMethodsService.GetAllPaymentMethods(); if (!paymentMethods.IsNullOrEmpty()) { foreach (var payment in customerOrder.InPayments) { payment.PaymentMethod = paymentMethods.FirstOrDefault(x => x.Code.EqualsInvariant(payment.GatewayCode)); } } } //Calculate totals only for full responseGroup if (orderResponseGroup == CustomerOrderResponseGroup.Full) { TotalsCalculator.CalculateTotals(customerOrder); } retVal.Add(customerOrder); } } } DynamicPropertyService.LoadDynamicPropertyValues(retVal.ToArray <IHasDynamicProperties>()); foreach (var order in retVal) { ChangeLogService.LoadChangeLogs(order); //Make general change log for order order.OperationsLog = order.GetFlatObjectsListWithInterface <IHasChangesHistory>() .Distinct() .SelectMany(x => x.OperationsLog) .OrderBy(x => x.CreatedDate) .Distinct().ToList(); } return(retVal.ToArray()); }
public PaymentMethodsServiceTests() { var options = new DbContextOptionsBuilder <TrainConnectedDbContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()) .Options; var dbContext = new TrainConnectedDbContext(options); AutoMapperConfig.RegisterMappings(new[] { typeof(ErrorViewModel).GetTypeInfo().Assembly, typeof(WorkoutActivityEditInputModel).GetTypeInfo().Assembly, }); this.paymentMethodsRepository = new EfRepository <PaymentMethod>(dbContext); this.paymentMethodsService = new PaymentMethodsService(this.paymentMethodsRepository); }
public override CustomerOrder[] GetByIds(string[] orderIds, string responseGroup = null) { var retVal = new List <CustomerOrder>(); var orderResponseGroup = EnumUtility.SafeParse(responseGroup, CustomerOrderResponseGroup.Full); using (var repository = RepositoryFactory()) { var orderEntities = repository.GetCustomerOrdersByIds(orderIds, orderResponseGroup); foreach (var orderEntity in orderEntities) { var customerOrder = AbstractTypeFactory <CustomerOrder> .TryCreateInstance(); if (customerOrder != null) { var shippingMethods = ShippingMethodsService.GetAllShippingMethods(); var paymentMethods = PaymentMethodsService.GetAllPaymentMethods(); customerOrder = orderEntity.ToModel(customerOrder) as CustomerOrder; if (!shippingMethods.IsNullOrEmpty()) { foreach (var shipment in customerOrder.Shipments) { shipment.ShippingMethod = shippingMethods.FirstOrDefault(x => x.Code.EqualsInvariant(shipment.ShipmentMethodCode)); } } if (!paymentMethods.IsNullOrEmpty()) { foreach (var payment in customerOrder.InPayments) { payment.PaymentMethod = paymentMethods.FirstOrDefault(x => x.Code.EqualsInvariant(payment.GatewayCode)); } } retVal.Add(customerOrder); } } } DynamicPropertyService.LoadDynamicPropertyValues(retVal.ToArray()); return(retVal.ToArray()); }