/// <summary> /// Creates the line item. /// </summary> /// <param name="item">The entry.</param> /// <param name="parent">Parent item</param> /// <param name="quantity">The quantity.</param> /// <returns>LineItem.</returns> private LineItem CreateLineItem(Item item, Item parent, decimal quantity) { var lineItem = new LineItem(); if (parent != null) { lineItem.DisplayName = item.DisplayName(String.Format("{0}: {1}", parent.Name, item.Name)); lineItem.ParentCatalogItemId = parent.ItemId; //Build options var relations = CatalogClient.GetItemRelations(parent.ItemId); var relationGroups = relations.Select(rel => rel.GroupName).Distinct(); foreach (var prop in item.ItemPropertyValues.LocalizedProperties().Where(p => relationGroups.Contains(p.Name))) { var option = new LineItemOption { LineItemId = item.ItemId, OptionName = prop.Name, OptionValue = prop.ToString() }; lineItem.Options.Add(option); } } else { lineItem.DisplayName = item.DisplayName(); lineItem.ParentCatalogItemId = String.Empty; } lineItem.CatalogItemId = item.ItemId; lineItem.CatalogItemCode = item.Code; var price = PriceListClient.GetLowestPrice(item.ItemId, quantity, false); if (price != null) { lineItem.ListPrice = price.Sale ?? price.List; lineItem.PlacedPrice = price.Sale ?? price.List; lineItem.ExtendedPrice = lineItem.PlacedPrice * quantity; } lineItem.MaxQuantity = item.MaxQuantity; lineItem.MinQuantity = item.MinQuantity; lineItem.Quantity = quantity; lineItem.Weight = item.Weight; lineItem.Catalog = CustomerSession.CatalogId; lineItem.FulfillmentCenterId = StoreHelper.StoreClient.GetCurrentStore().FulfillmentCenterId; //lineItem.CatalogOutline = CatalogOutlineBuilder.BuildCategoryOutline(CatalogClient.CatalogRepository, CustomerSession.CatalogId, item); lineItem.CatalogOutline = CatalogOutlineBuilder.BuildCategoryOutline(CustomerSessionService.CustomerSession.CatalogId, item.ItemId).ToString(); return(lineItem); }
public bool IsShopperInCategoryOrSubcategories(string categoryId) { if (IsShopperInCategory(categoryId)) { return(true); } //Check for sub categories var outline = GetStringValue(ContextFieldConstants.CategoryOutline); if (!String.IsNullOrEmpty(outline)) { return(CatalogOutlineBuilder.GetCategoriesHierarchy(outline).Any(x => categoryId.Equals(x, StringComparison.OrdinalIgnoreCase))); } return(false); }
private static bool IsTargetInCategories(TargetEntry target, string[] categoryIds) { var retVal = CatalogOutlineBuilder.GetCategoriesHierarchy(target.Outline).Any(x => categoryIds.Contains(x, StringComparer.OrdinalIgnoreCase)); return(retVal); }
private static bool IsLineItemInCategories(PromotionEntry lineItem, IEnumerable <string> categoryIds) { var retVal = CatalogOutlineBuilder.GetCategoriesHierarchy(lineItem.Outline).Any(x => categoryIds.Contains(x, StringComparer.OrdinalIgnoreCase)); return(retVal); }