protected virtual async Task <WishListViewModel> CreateWishListViewModelAsync(CreateWishListViewModelParam param) { var viewModel = new WishListViewModel(); var lineItems = param.WishList.GetLineItems(); if (lineItems != null) { var imageInfo = new ProductImageInfo { ImageUrls = await ImageService.GetImageUrlsAsync(lineItems).ConfigureAwait(false), }; viewModel.Items = LineItemViewModelFactory.CreateViewModel(new CreateListOfLineItemDetailViewModelParam { Cart = param.WishList, LineItems = lineItems, CultureInfo = param.CultureInfo, ImageInfo = imageInfo, BaseUrl = param.BaseUrl }).ToList(); viewModel.Items.Reverse(); viewModel.TotalQuantity = lineItems.Count; } var getUrlParam = new GetWishListUrlParam { BaseUrl = param.BaseUrl, CultureInfo = param.CultureInfo }; viewModel.SignInUrl = WishListUrlProvider.GetSignInUrl(getUrlParam); viewModel.ShareUrl = viewModel.TotalQuantity == 0 ? string.Empty: WishListUrlProvider.GetShareUrl(new GetShareWishListUrlParam { BaseUrl = param.BaseUrl, CultureInfo = param.CultureInfo, CustomerId = param.WishList.CustomerId, Scope = param.WishList.ScopeId, WebsiteId = param.WebsiteId }); return(viewModel); }
protected virtual OrderShipmentDetailViewModel GetOrderShipmentDetailViewModel(Shipment shipment, CreateOrderDetailViewModelParam param) { var shipmentVm = new OrderShipmentDetailViewModel(); var index = param.Order.Cart.Shipments.IndexOf(shipment); if (index >= 0) { shipmentVm.Index = (index + 1).ToString(); } if (shipment.FulfillmentScheduledTimeBeginDate.HasValue) { shipmentVm.ScheduledShipDate = LocalizationHelper.LocalizedFormat("General", "ShortDateFormat", shipment.FulfillmentScheduledTimeBeginDate.Value, param.CultureInfo); } shipmentVm.LineItems = LineItemViewModelFactory.CreateViewModel(new CreateListOfLineItemDetailViewModelParam { Cart = param.Order.Cart, LineItems = shipment.LineItems, CultureInfo = param.CultureInfo, ImageInfo = param.ProductImageInfo, BaseUrl = param.BaseUrl }).ToList(); if (param.ShipmentsNotes != null && param.ShipmentsNotes.ContainsKey(shipment.Id)) { var notes = param.ShipmentsNotes[shipment.Id]; shipmentVm.Comments = notes; } shipmentVm.Rewards = RewardViewModelFactory.CreateViewModel(shipment.Rewards, param.CultureInfo, RewardLevel.FulfillmentMethod, RewardLevel.Shipment).ToList(); shipmentVm.ShippingAddress = CartViewModelFactory.GetAddressViewModel(shipment.Address, param.CultureInfo); var fulfillmentMethodName = shipment.FulfillmentMethod.Name; var shippingTrackingProvider = ShippingTrackingProviderFactory.ResolveProvider(fulfillmentMethodName); shipmentVm.TrackingInfo = shippingTrackingProvider.GetTrackingInfoViewModel(shipment, param.CultureInfo); shipmentVm.History = GetOrderChangesViewModel(param.OrderChanges, param.CultureInfo, _shipmentStatus); if (!string.IsNullOrWhiteSpace(shipment.Status)) { shipmentVm.ShipmentStatusName = shipment.Status; if (param.ShipmentStatuses.TryGetValue(shipment.Status, out string shipmentStatusLookup)) { shipmentVm.ShipmentStatus = shipmentStatusLookup; } if (shipmentVm.History.Any(h => h.NewValue.Equals(shipment.Status))) { shipmentVm.ShipmentStatusDate = shipmentVm.History.OrderByDescending(x => x.Date).First(h => h.NewValue.Equals(shipment.Status)).Date; } } else { shipmentVm.ShipmentStatusName = string.Empty; shipmentVm.ShipmentStatus = string.Empty; shipmentVm.ShipmentStatusDate = string.Empty; } shipmentVm.ShippingMethod = GetShippingMethodViewModel(shipment, param); return(shipmentVm); }