protected virtual List <CompleteCheckoutLineItemViewModel> MapCompleteCheckoutLineItems(Overture.ServiceModel.Orders.Order order, CultureInfo cultureInfo)
        {
            var lineItems = order.Cart.GetLineItems().Select(li =>
            {
                var viewModel = ViewModelMapper.MapTo <CompleteCheckoutLineItemViewModel>(li, cultureInfo);

                var brandProperty = li.ProductSummary.Brand ?? string.Empty;

                var brand = string.IsNullOrWhiteSpace(brandProperty) ? string.Empty : LookupService.GetLookupDisplayNameAsync(new GetLookupDisplayNameParam
                {
                    Delimiter   = ", ",
                    LookupName  = "Brand",
                    LookupType  = LookupType.Product,
                    Value       = li.ProductSummary.Brand,
                    CultureInfo = cultureInfo
                }).Result;
                viewModel.Name       = li.ProductSummary.DisplayName;
                viewModel.BrandId    = brandProperty;
                viewModel.Brand      = brand;
                viewModel.CategoryId = li.ProductSummary.PrimaryParentCategoryId;
                viewModel.KeyVariantAttributesList = LineItemViewModelFactory.GetKeyVariantAttributes(new GetKeyVariantAttributesParam {
                    KvaValues        = li.KvaValues,
                    KvaDisplayValues = li.KvaDisplayValues
                }).ToList();

                return(viewModel);
            });

            return(lineItems.ToList());
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 4
0
        protected virtual async Task <List <LineItemDetailViewModel> > ProcessPickedLineItemsAsync(List <PickedItemViewModel> pickedItemsList,
                                                                                                   List <LineItemDetailViewModel> lineItemsList,
                                                                                                   CultureInfo culture)
        {
            var itemsToProcess = pickedItemsList
                                 .Where(x => x.PickingResult == PickingResult.Substituted.ToString() || x.PickingResult == PickingResult.NotAvailable.ToString())
                                 .Select(x => (x.ProductId, x.VariantId)).ToList();

            if (!itemsToProcess.Any())
            {
                return(lineItemsList);
            }

            var result        = new List <LineItemDetailViewModel>();
            var imgDictionary = await CreateImageDictionary(itemsToProcess).ConfigureAwait(false);

            foreach (var pickedItem in pickedItemsList)
            {
                var itemPickingStatus           = (PickingResult)Enum.Parse(typeof(PickingResult), pickedItem.PickingResult, true);
                LineItemDetailViewModel toAddVM = null;

                if (itemPickingStatus == PickingResult.Available)
                {
                    foreach (var lineItem in lineItemsList)
                    {
                        if (lineItem.ProductId != pickedItem.ProductId || lineItem.VariantId != pickedItem.VariantId)
                        {
                            continue;
                        }
                        if (lineItem.Quantity == pickedItem.Quantity)
                        {
                            toAddVM = lineItem;
                        }
                        else
                        {
                            var createdLineItem = CreateLineItemFromPickedItem(pickedItem);
                            toAddVM = LineItemViewModelFactory.GetLineItemDetailViewModel(new CreateLineItemDetailViewModelParam
                            {
                                LineItem    = createdLineItem,
                                CultureInfo = culture
                            });
                            toAddVM.ImageUrl         = lineItem.ImageUrl;
                            toAddVM.FallbackImageUrl = lineItem.FallbackImageUrl;
                        }
                        break;
                    }
                }
                else if (itemPickingStatus == PickingResult.NotAvailable || itemPickingStatus == PickingResult.Substituted)
                {
                    LineItem toAddLineItem = CreateLineItemFromPickedItem(pickedItem);

                    toAddVM = LineItemViewModelFactory.GetLineItemDetailViewModel(new CreateLineItemDetailViewModelParam
                    {
                        LineItem        = toAddLineItem,
                        CultureInfo     = culture,
                        ImageDictionary = imgDictionary
                    });

                    if (itemPickingStatus == PickingResult.Substituted)
                    {
                        toAddVM.IsSubstituted = true;
                    }
                    else if (itemPickingStatus == PickingResult.NotAvailable)
                    {
                        toAddVM.IsUnavailable = true;
                    }
                }
                result.Add(toAddVM);
            }

            return(result);
        }