public static Price AsWebModel(this Data.Price price) { var priceModel = new Price(); priceModel.InjectFrom(price); return(priceModel); }
public static Price ToViewModel(this DataContracts.Price price) { var priceViewModel = new Price(); priceViewModel.Original = price.List; priceViewModel.PricelistId = price.PricelistId; priceViewModel.ProductId = price.ProductId; return(priceViewModel); }
public static Variant AsVariantWebModel(this Data.CatalogItem variation, Data.Price price, string[] options, IEnumerable <Data.Marketing.PromotionReward> rewards) { var variantModel = new Variant(); var variationImage = variation.PrimaryImage ?? (variation.Images != null ? variation.Images.FirstOrDefault() : null); string variantlUrlParameter = null;// HttpContext.Current.Request.QueryString["variant"]; string pathTemplate; if (variation is Data.Product) { pathTemplate = VirtualPathUtility.ToAbsolute("~/products/{0}"); } else { pathTemplate = VirtualPathUtility.ToAbsolute("~/products/{0}?variant={1}"); } var reward = rewards.FirstOrDefault(); variantModel.Barcode = null; // TODO variantModel.CompareAtPrice = price != null ? (price.Sale.HasValue ? price.Sale.Value : price.List) : 0; //variantModel.Id = variation.Id; variantModel.Id = variation.Code; variantModel.Image = variationImage != null?variationImage.AsWebModel(variation.Name, variation.MainProductId) : null; PopulateInventory(ref variantModel, variation); variantModel.Options = GetOptionValues(options, variation.VariationProperties); variantModel.Price = price != null ? (price.Sale.HasValue ? price.Sale.Value : price.List) : 0; if (reward != null) { if (reward.AmountType.Equals("absolute", StringComparison.OrdinalIgnoreCase)) { variantModel.Price -= reward.Amount; } if (reward.AmountType.Equals("relative", StringComparison.OrdinalIgnoreCase)) { variantModel.Price -= variantModel.Price * reward.Amount / 100; } } variantModel.Selected = variantlUrlParameter != null; variantModel.Sku = variation.Properties.ContainsKey("sku") ? variation.Properties["sku"] as string : variation.Code; variantModel.Title = variation.Name; variantModel.Url = string.Format(pathTemplate, variation.MainProductId, variation.Id); variantModel.Weight = variation.Weight.HasValue ? variation.Weight.Value : 0; variantModel.WeightInUnit = null; // TODO variantModel.WeightUnit = variation.WeightUnit; return(variantModel); }