static void Main(string[] args) { Console.WriteLine("Chain of Responsibility"); Console.WriteLine("Fashion Shop Example"); var discountApplier = new DiscountApplier(); AddDiscounts(discountApplier); var shirt = new Shirt(discountApplier, 10m); var jeans = new Jeans(discountApplier, 30m); var sunglasses = new Sunglasses(discountApplier, 35m); PrintPrice(); void PrintPrice() { var sw = new Stopwatch(); sw.Start(); while (sw.ElapsedMilliseconds < 20000) { Console.SetCursorPosition(0, 3); Console.WriteLine($"\r{shirt._name} price: $ {shirt.Price} "); Console.WriteLine($"\r{jeans._name} price: $ {jeans.Price} "); Console.WriteLine($"\r{sunglasses._name} price: $ {sunglasses.Price} "); Thread.Sleep(500); } sw.Stop(); } }
public ViewSunglasses(Sunglasses sunglasses) { InitializeComponent(); try { this.sunglasses = sunglasses; lstIVM.Add(new ImagesViewModel { ImageName = sunglasses.PrimaryImage }); foreach (var item in sunglasses.Images) { if (item != sunglasses.PrimaryImage) { lstIVM.Add(new ImagesViewModel { ImageName = item }); } } } catch (Exception ex) { MessageBoxes.Error(ex.Message); } Reset(); }
public ActionResult AnonymousOrderBuyerDetailsSubmission(BuyersInfoViewModel model, string id) { try { if (ModelState.IsValid) { City c = new City(Convert.ToInt32(model.CityName)); Buyer buyer = new Buyer(model.FullName, model.PhoneNumber, model.Address, model.Email, c); HttpCookie anonymusBuyer = new HttpCookie("anonBuyer"); anonymusBuyer.Value = buyer.BuyerId.ToString(); anonymusBuyer.Expires = DateTime.Now.AddMinutes(30); Response.Cookies.Add(anonymusBuyer); int productId = Convert.ToInt32(id); if (Product.IsPrescriptionGlasses(productId)) { PrescriptionGlasses p = new PrescriptionGlasses(productId); OrderPrescriptionGlassesViewModel opvm = new OrderPrescriptionGlassesViewModel() { DiscountedPrice = decimal.Round(p.GetDiscountedPrice()).ToString(), Id = p.ProductId.ToString(), Images = p.Images, Lens = p.Lens.LensName, Name = p.Name, Price = decimal.Round(p.Price).ToString(), DeliveryCharges = decimal.Round(buyer.City.DeliverCharges).ToString(), Status = p.Quantity + " Item(s) available", Quantity = p.Quantity }; ViewBag.Message = null; return(View("OrderPrescriptionGlasses", opvm)); } else { Sunglasses s = new Sunglasses(productId); OrderSunglassesViewModel osvm = new OrderSunglassesViewModel() { DiscountedPrice = decimal.Round(s.GetDiscountedPrice()).ToString(), Id = s.ProductId.ToString(), Images = s.Images, Name = s.Name, Price = decimal.Round(s.Price).ToString(), Status = s.Quantity + " Item(s) available", DeliveryCharges = decimal.Round(buyer.City.DeliverCharges).ToString(), Quantity = s.Quantity }; ViewBag.Message = null; return(View("OrderSunglasses", osvm)); } } else { return(View("OrderAnonymous", model)); } } catch (Exception ex) { HandleErrorInfo error = new HandleErrorInfo(ex, "Cart", "AnonymousOrderBuyerDetailsSubmission"); return(RedirectToAction("Index", "Error", new { model = error })); } }
public ActionResult ViewProduct(int id, string urlRedirect) { try { ViewBag.Message = urlRedirect; ViewProductViewModel model = new ViewProductViewModel(); ViewBag.Message = urlRedirect; if (Product.IsPrescriptionGlasses(id)) { PrescriptionGlasses p = new PrescriptionGlasses(id); model.Id = p.ProductId.ToString(); model.Name = p.Name; model.Price = decimal.Round(p.Price).ToString(); model.PrimaryImage = p.PrimaryImage; model.Lens = p.Lens.LensName; model.Description = p.ProductDescription; model.DiscountedPrice = decimal.Round(p.GetDiscountedPrice()).ToString(); if (p.Quantity == 0) { model.Status = "Out of Stock"; } else { model.Status = p.Quantity + " Item(s) available"; } model.Frame = p.Frame.FrameName; model.FrameColor = p.FrameColor; model.Images = p.Images; model.IsSunglasses = false; } else if (Product.IsSunglasses(id)) { Sunglasses s = new Sunglasses(id); model.Id = s.ProductId.ToString(); model.Name = s.Name; model.Price = decimal.Round(s.Price).ToString(); model.PrimaryImage = s.PrimaryImage; model.LensColor = s.LensColor; model.Description = s.ProductDescription; model.DiscountedPrice = decimal.Round(s.GetDiscountedPrice()).ToString(); if (s.Quantity == 0) { model.Status = "Out of Stock"; } else { model.Status = s.Quantity + " Item(s) remaining"; } model.FrameColor = s.FrameColor; model.Images = s.Images; model.IsSunglasses = true; } return(View(model)); } catch (Exception ex) { HandleErrorInfo error = new HandleErrorInfo(ex, "Home", "ViewProduct"); return(RedirectToAction("Index", "Error", new { model = error })); } }
// GET: Home public ActionResult Index() { try { HomeViewModel model = new HomeViewModel(); List <HotItemsViewModel> lst = new List <HotItemsViewModel>(); foreach (var item in Product.GetHotItems()) { HotItemsViewModel hvm = new HotItemsViewModel() { Id = item.ProductId.ToString(), Image = item.PrimaryImage, Name = item.Name }; lst.Add(hvm); } model.HotItems = lst; List <FeaturedSunglassesViewModel> lstSunglasses = new List <FeaturedSunglassesViewModel>(); foreach (var item in Sunglasses.FeaturedSunglasses()) { FeaturedSunglassesViewModel fsvm = new FeaturedSunglassesViewModel() { Id = item.ProductId.ToString(), Name = item.Name, Image = item.PrimaryImage, Price = decimal.Round(item.Price).ToString() }; lstSunglasses.Add(fsvm); } model.PopSunglasses = lstSunglasses; List <FeaturedPrescriptionGlassesViewModel> lstPrescription = new List <FeaturedPrescriptionGlassesViewModel>(); foreach (var item in PrescriptionGlasses.FeaturedPrescriptionGlasses()) { FeaturedPrescriptionGlassesViewModel fpvm = new FeaturedPrescriptionGlassesViewModel() { Id = item.ProductId.ToString(), Name = item.Name, Image = item.PrimaryImage, Price = decimal.Round(item.Price).ToString() }; lstPrescription.Add(fpvm); } model.PopPrescriptionGlasses = lstPrescription; return(View(model)); } catch (Exception ex) { HandleErrorInfo error = new HandleErrorInfo(ex, "Home", "Index"); return(RedirectToAction("Index", "Error", new { model = error })); } }
public ActionResult AddToCart(int id, string urlRedirect = null) { try { ViewBag.Message = urlRedirect; if (Product.IsSunglasses(id)) { Sunglasses s = new Sunglasses(id); OrderSunglassesViewModel osvm = new OrderSunglassesViewModel() { DeliveryCharges = decimal.Round(new Account(User.Identity.GetUserId()).Buyer.City.DeliverCharges).ToString(), DiscountedPrice = decimal.Round(s.GetDiscountedPrice()).ToString(), Id = s.ProductId.ToString(), Images = s.Images, Name = s.Name, Price = decimal.Round(s.Price).ToString(), Quantity = s.Quantity, Status = s.Quantity + " Item(s) available" }; return(View("OrderSunglasses", osvm)); } else if (Product.IsPrescriptionGlasses(id)) { PrescriptionGlasses p = new PrescriptionGlasses(id); OrderPrescriptionGlassesViewModel opvm = new OrderPrescriptionGlassesViewModel() { DeliveryCharges = decimal.Round(new Account(User.Identity.GetUserId()).Buyer.City.DeliverCharges).ToString(), DiscountedPrice = decimal.Round(p.GetDiscountedPrice()).ToString(), Id = p.ProductId.ToString(), Images = p.Images, Lens = p.Lens.LensName, Name = p.Name, Price = decimal.Round(p.Price).ToString(), Quantity = p.Quantity, Status = p.Quantity + " Item(s) available" }; return(View("OrderPrescriptionGlasses", opvm)); } return(View("Error")); } catch (Exception ex) { HandleErrorInfo error = new HandleErrorInfo(ex, "Cart", "AddToCart"); return(RedirectToAction("Index", "Error", new { model = error })); } }
private bool Save() { if (CheckAllRequired() && radioSunglasses.Checked) { decimal price = Convert.ToDecimal(txtPrice.Text.Substring(3)); bool stopO = false; if (chkStopOrder.GetItemChecked(0)) { stopO = true; } string s = ""; Sunglasses sunglasses = new Sunglasses(txtName.Text, price, (int)numQuantity.Value, (int)numDiscount.Value, txtFrameColor.Text, txtDescription.Text, stopO, txtLensColor.Text); foreach (FileInfo item in fileNames) { s = UploadImageToFTP(item, sunglasses.ProductId); sunglasses.AddImage(s); } sunglasses.SetPrimaryImage(s); return(true); } else if (CheckAllRequired() && radioPrescriptionGlasses.Checked) { decimal price = Convert.ToDecimal(txtPrice.Text.Substring(3)); bool stopO = false; if (chkStopOrder.GetItemChecked(0)) { stopO = true; } string s = ""; PrescriptionGlasses prescrptionGlasses = new PrescriptionGlasses(txtName.Text, price, (int)numDiscount.Value, (int)numQuantity.Value, txtFrameColor.Text, txtDescription.Text, stopO, new Lens((int)comboLens.SelectedValue), new Frame((int)comboFrames.SelectedValue)); foreach (FileInfo item in fileNames) { s = UploadImageToFTP(item, prescrptionGlasses.ProductId); prescrptionGlasses.AddImage(s); } prescrptionGlasses.SetPrimaryImage(s); return(true); } return(false); }
// GET: Sunglasses public ActionResult Index() { try { List <ViewSunglassesViewModel> model = new List <ViewSunglassesViewModel>(); foreach (var item in Sunglasses.GetAllSunglasses()) { model.Add(new ViewSunglassesViewModel() { Id = item.ProductId.ToString(), Name = item.Name, Image = item.PrimaryImage, Price = decimal.Round(item.Price).ToString(), Discount = item.Discount.ToString() }); } return(View(model)); } catch (Exception ex) { HandleErrorInfo error = new HandleErrorInfo(ex, "Sunglasses", "Index"); return(RedirectToAction("Index", "Error", new { model = error })); } }
public ActionResult OrderSunglasses(OrderSunglassesViewModel model, string urlRedirect = null) { try { if (!ModelState.IsValid) { return(View(model)); } Buyer buyer; if (Request.IsAuthenticated) { buyer = new Account(User.Identity.GetUserId()).Buyer; } else if (Request.Cookies["anonBuyer"] != null) { buyer = new Buyer(Convert.ToInt32(Request.Cookies["anonBuyer"].Value)); Response.Cookies.Remove("anonBuyer"); } else { //return View which says that buyer's Session is timedout return(View("TimedOut")); } int productId = Convert.ToInt32(model.Id); if (buyer.GetCurrentCart() != null) { Cart c = buyer.GetCurrentCart(); Sunglasses s = new Sunglasses(productId); c.AddSunglasses(s, model.Quantity); s.Quantity -= model.Quantity; if (urlRedirect != null) { return(Redirect(urlRedirect)); } else { return(RedirectToAction("Index", "Home")); } } else { Cart c = new Cart(buyer); Sunglasses s = new Sunglasses(productId); c.AddSunglasses(s, model.Quantity); s.Quantity -= model.Quantity; if (urlRedirect != null) { return(Redirect(urlRedirect)); } else if (Request.IsAuthenticated) { return(RedirectToAction("Index", "Home")); } Order order = new Order(c, DateTime.Now); OrderSuccessViewModel osvm = new OrderSuccessViewModel() { BuyersName = buyer.Name, DeliveryCharges = decimal.Round(buyer.City.DeliverCharges).ToString(), DiscountAvailed = order.Promo.Discount + "%", OrderId = order.OrderId.ToString(), Status = order.Status, TotalPrice = decimal.Round(order.TotalPrice).ToString() }; return(View("OrderSuccess", osvm)); } } catch (Exception ex) { HandleErrorInfo error = new HandleErrorInfo(ex, "Cart", "OrderSunglasses"); return(RedirectToAction("Index", "Error", new { model = error })); } }