상속: MonoBehaviour
예제 #1
0
        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();
            }
        }
예제 #2
0
        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 }));
     }
 }
예제 #4
0
 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 }));
     }
 }
예제 #5
0
 // 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 }));
     }
 }
예제 #7
0
 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);
 }
예제 #8
0
 // 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 }));
     }
 }