public ActionResult SelectedProduct(int id) { CatalogEntry entry = _catalogService.TryGet(id); SelectedProductModel model = entry.ToSelectedProductModel(); return(View(model)); }
private void DecrementPurchasedProduct(SelectedProductModel product) { product.Quantity--; if (product.Quantity == 0) { PurchasedProducts.Remove(product); } CurrentPurchase.ComputeTotal(); }
private void Puchase(SelectedProductModel item) { var existItem = _purchasedProducts.FirstOrDefault(x => x.ID == item.ID); if (existItem == null) { AddPurchasedProduct(item); } else { IncrementPurchasedProduct(existItem); } }
public static SelectedProductModel ToSelectedProductModel(this CatalogEntry entry) { SelectedProductModel selectedProductModel = new SelectedProductModel { Id = entry.Id, Blurb = entry.Blurb, LicensingBasis = entry.LicensingBasis, Price = entry.Price, ProductName = entry.ProductName, ProductVersion = entry.ProductVersion, SkuId = entry.SkuId }; return(selectedProductModel); }
private void AddPurchasedProduct(SelectedProductModel product) { var item = new SelectedProductModel { Quantity = 1, ID = product.ID, Label = product.Label, Price = product.Price, Discount = product.Discount }; item.ComputeSubTotal(); PurchasedProducts.Add(item); CurrentPurchase.ComputeTotal(); }
public ActionResult SelectedProductConfirmed(SelectedProductModel model) { if (!ModelState.IsValid) { return(SelectedProduct(model.Id)); } var entry = _catalogService.TryGet(model.Id); var purchaseRecord = _purchaseService.RecordPurchase(entry, model.Quantity); for (int i = 0; i < model.Quantity; i++) { License license = _licensingService.CreateLicenseFromSkuId(entry.SkuId); _orderItemService.RecordOrderItem(license, purchaseRecord, i + 1); } return(RedirectToAction("ShowPurchasedInfo", new { id = purchaseRecord.Id })); }
private void DiscountedProduct(SelectedProductModel product, ProductDiscountOptions option) { decimal discount = 0.0m; if (Decimal.TryParse(DiscountValue, out discount) == false) { discount = 0.0m; } if (option == ProductDiscountOptions.Dollar) { product.Discount = discount; } else if (option == ProductDiscountOptions.Percent) { product.Discount = product.Price * (discount / 100); } CurrentPurchase.ComputeTotal(); }
private void IncrementPurchasedProduct(SelectedProductModel product) { product.Quantity++; CurrentPurchase.ComputeTotal(); }
private void DiscountedProduct(SelectedProductModel product) { product.Discount = 5.50m; CurrentPurchase.ComputeTotal(); }