public OrderSummary OrderSummary(Order order) { var orderSummary = new OrderSummary { Id = order.Id, Order = order, OrderVariants = new Dictionary <string, int>() }; var departures = new List <Departure>(); var tours = new List <Tour>(); foreach (var orderProductVariant in order.ProductVariants) { var productVariant = orderProductVariant.ProductVariant; if (productVariant != null) { orderSummary.OrderVariants.Add(productVariant.Name, orderProductVariant.Quantity); var product = productVariant.Product; if (product != null) { var departure = product.Departure; if (departure != null) { departures.Add(departure); var tour = departure.Tour; if (tour != null) { tours.Add(tour); } } } } } orderSummary.DiscountCodes = (from discountAdjustment in order.Adjustments.OfType <DiscountAdjustment>() let codeId = discountAdjustment.DiscountCodeId where codeId != null where codeId.HasValue select codeId.Value into discountCodeId select _discountCodeRepo.Find(discountCodeId)).ToArray(); orderSummary.Departures = departures.ToArray(); orderSummary.Tours = tours.ToArray(); return(orderSummary); }
public OrderSummary OrderSummary(Order order) { var orderSummary = new OrderSummary { Id = order.Id, Order = order, OrderVariants = new Dictionary<string, int>() }; var departures = new List<Departure>(); var tours = new List<Tour>(); foreach (var orderProductVariant in order.ProductVariants) { var productVariant = orderProductVariant.ProductVariant; if (productVariant != null) { orderSummary.OrderVariants.Add(productVariant.Name, orderProductVariant.Quantity); var product = productVariant.Product; if (product != null) { var departure = product.Departure; if (departure != null) { departures.Add(departure); var tour = departure.Tour; if (tour != null) tours.Add(tour); } } } } orderSummary.DiscountCodes = (from discountAdjustment in order.Adjustments.OfType<DiscountAdjustment>() let codeId = discountAdjustment.DiscountCodeId where codeId != null where codeId.HasValue select codeId.Value into discountCodeId select _discountCodeRepo.Find(discountCodeId)).ToArray(); orderSummary.Departures = departures.ToArray(); orderSummary.Tours = tours.ToArray(); return orderSummary; }