Example #1
0
 public ProductQuery(LeoContext context, InventoryContext inventoryContext,
                     DiscountContext discountContext)
 {
     _context          = context;
     _discountContext  = discountContext;
     _inventoryContext = inventoryContext;
 }
        public void GetDiscountResultForDiscountedEmployeeWithLetterAinLastNameTest()
        {
            var options = SetupWithDiscountCriteria();

            var dependentList = new List <Dependent>();

            using (var context = new DiscountContext(options))
            {
                var discountRepository = new DiscountRepository(context);
                var discountCriteria   = discountRepository.GetDiscountCriteria().Result;

                var discountCalculationResult = discountRepository.GetDiscountResult(1, "Rick", "Amber", dependentList).Result;

                Assert.AreEqual(900.00m, discountCalculationResult.TotalYearlyBenefitCost);

                Assert.AreEqual(500.00m, discountCriteria.BaseDependentBenefitCost);
                Assert.AreEqual(1000.00m, discountCriteria.BaseEmployeeBenefitCost);
                Assert.AreEqual(.1m, discountCriteria.DiscountPerctentageRate);
                Assert.AreEqual('A', discountCriteria.DiscountQualifier);
                Assert.AreEqual(2000.00m, discountCriteria.EmployeeBiWeeklyBasePay);
                Assert.AreEqual(26, discountCriteria.TotalYearlyCheckDisbursment);

                context.Database.EnsureDeleted();
            }
        }
        public DbContextOptions <DiscountContext> SetupWithDiscountCriteria()
        {
            var options = new DbContextOptionsBuilder <DiscountContext>()
                          .UseInMemoryDatabase(databaseName: "PaylocityDiscountDb")
                          .Options;

            using (var context = new DiscountContext(options))
            {
                var newDiscountCriteria = new DiscountCriteria
                {
                    BaseDependentBenefitCost    = 500.00m,
                    BaseEmployeeBenefitCost     = 1000.00m,
                    DiscountPerctentageRate     = .1m,
                    DiscountQualifier           = 'A',
                    EmployeeBiWeeklyBasePay     = 2000.00m,
                    TotalYearlyCheckDisbursment = 26,
                    CreatedOn = DateTime.UtcNow,
                    UpdatedOn = DateTime.UtcNow
                };

                context.Add(newDiscountCriteria);
                context.SaveChanges();
            }

            return(options);
        }
 public ProductQuery(ShopContext context, DiscountContext discountContext, InventoryContext inventoryContext, CommentContext commentContext)
 {
     _context          = context;
     _discountContext  = discountContext;
     _inventoryContext = inventoryContext;
     _commentContext   = commentContext;
 }
Example #5
0
 public ProductCategoryQuery(ShopContext shopContext,
                             InventoryContext inventoryContext,
                             DiscountContext discountContext)
 {
     _shopContext      = shopContext;
     _inventoryContext = inventoryContext;
     _discountContext  = discountContext;
 }
        public void GetDiscountResultForOneDiscountedDependentTwoNonDiscountedDependentsWithLetterAinLastNameTest()
        {
            var options = SetupWithDiscountCriteria();

            var dependentList = new List <Dependent>();
            var newDependent  = new Dependent
            {
                EmployeeId = 1,
                FirstName  = "Jane",
                LastName   = "Amber",
                CreatedOn  = DateTime.UtcNow,
                UpdatedOn  = DateTime.UtcNow
            };

            dependentList.Add(newDependent);

            var newDependentTwo = new Dependent
            {
                EmployeeId = 1,
                FirstName  = "Jane",
                LastName   = "Jolly",
                CreatedOn  = DateTime.UtcNow,
                UpdatedOn  = DateTime.UtcNow
            };

            dependentList.Add(newDependentTwo);

            var newDependentThree = new Dependent
            {
                EmployeeId = 1,
                FirstName  = "Jane",
                LastName   = "Doe",
                CreatedOn  = DateTime.UtcNow,
                UpdatedOn  = DateTime.UtcNow
            };

            dependentList.Add(newDependentThree);


            using (var context = new DiscountContext(options))
            {
                var discountRepository = new DiscountRepository(context);
                var discountCriteria   = discountRepository.GetDiscountCriteria().Result;

                var discountCalculationResult = discountRepository.GetDiscountResult(1, "Rick", "Grimes", dependentList).Result;

                Assert.AreEqual(1450.00m, discountCalculationResult.TotalDependentBenefitCost);

                Assert.AreEqual(500.00m, discountCriteria.BaseDependentBenefitCost);
                Assert.AreEqual(1000.00m, discountCriteria.BaseEmployeeBenefitCost);
                Assert.AreEqual(.1m, discountCriteria.DiscountPerctentageRate);
                Assert.AreEqual('A', discountCriteria.DiscountQualifier);
                Assert.AreEqual(2000.00m, discountCriteria.EmployeeBiWeeklyBasePay);
                Assert.AreEqual(26, discountCriteria.TotalYearlyCheckDisbursment);

                context.Database.EnsureDeleted();
            }
        }
Example #7
0
 public ProductQuery(ShopContext shopContext, InventoryContext inventoryContext,
                     DiscountContext discountContext, CommentContext commentContext, IProductApplication productApplication)
 {
     _shopContext        = shopContext;
     _inventoryContext   = inventoryContext;
     _discountContext    = discountContext;
     _commentContext     = commentContext;
     _productApplication = productApplication;
 }
Example #8
0
        public ActionResult JGroupDiscounts(int id = 0)
        {
            List <DiscountModel> model = null;

            using (DiscountContext context = new DiscountContext())
            {
                model = context.GetGroupDiscounts(id);
            }
            return(Json(model, JsonRequestBehavior.AllowGet));
        }
Example #9
0
        public ActionResult JDiscountGroup(int id = 0)
        {
            DiscountGroupModel model = null;

            using (DiscountContext context = new DiscountContext())
            {
                model = context.GetDiscountGroup(id);
            }
            return(Json(model, JsonRequestBehavior.AllowGet));
        }
Example #10
0
        //
        // GET: /Discount/

        public ActionResult Index()
        {
            List <DiscountModel> model = null;

            using (DiscountContext context = new DiscountContext())
            {
                model = context.GetDiscounts();
            }
            return(View(model));
        }
Example #11
0
        //
        // GET: /Discount/JList
        public JsonResult JList(string discountList = "")
        {
            List <ListItemModel> discounts = null;

            using (DiscountContext context = new DiscountContext())
            {
                discounts = context.GetList(discountList);
            }
            return(Json(discounts, JsonRequestBehavior.AllowGet));
        }
Example #12
0
        public ActionResult EditGroup(int id = 0)
        {
            DiscountGroupModel model = null;

            using (DiscountContext context = new DiscountContext())
            {
                model = context.GetDiscountGroup(id);
            }
            return(View("EditGroup", model));
        }
Example #13
0
        public ActionResult Edit(int id = 0)
        {
            DiscountModel model = null;

            using (DiscountContext context = new DiscountContext())
            {
                model = context.GetDiscount(id);
                ViewBag.DiscountKinds = context.GetDiscountKinds();
            }
            return(View(model));
        }
Example #14
0
        //
        // GET: /CCard/Edit/Id
        public ActionResult Edit(int id = 0)
        {
            CCardModel model = null;

            using (CCardContext context = new CCardContext())
            {
                model = context.GetCard(id);
            }
            using (DiscountContext context = new DiscountContext())
            {
                ViewBag.DiscountGroups = context.GetGroupList();
            }
            return(View("Edit", model));
        }
Example #15
0
 public ActionResult EditGroup(DiscountGroupModel model)
 {
     if (!ModelState.IsValid)
     {
         return(View("EditGroup", model));
     }
     else
     {
         using (DiscountContext context = new DiscountContext())
         {
             context.Edit(model);
             context.SetGroupItems(model.DiscountGroupId, model.DiscountList.Trim(','));
         }
         return(RedirectToAction("Groups"));
     }
 }
Example #16
0
        //
        // GET: /CCard/New/Id
        public ActionResult New()
        {
            CCardModel model = new CCardModel()
            {
                CardId    = 0,
                CarNumber = "",
                ValidFrom = DateTime.Now,
                ValidTo   = DateTime.Now.AddYears(1)
            };

            using (DiscountContext context = new DiscountContext())
            {
                ViewBag.DiscountGroups = context.GetGroupList();
            }
            return(View("Edit", model));
        }
Example #17
0
        public ActionResult New()
        {
            DiscountModel model = new DiscountModel()
            {
                DiscountId = 0,
                Name       = "",
                ValidFrom  = DateTime.Now,
                ValidTo    = DateTime.Now
            };

            using (DiscountContext context = new DiscountContext())
            {
                ViewBag.DiscountKinds = context.GetDiscountKinds();
            }
            return(View("Edit", model));
        }
        public void GetDiscountCriteriaTest()
        {
            var options = SetupWithDiscountCriteria();

            using (var context = new DiscountContext(options))
            {
                var discountRepository = new DiscountRepository(context);
                var discountCriteria   = discountRepository.GetDiscountCriteria().Result;

                Assert.AreEqual(500.00m, discountCriteria.BaseDependentBenefitCost);
                Assert.AreEqual(1000.00m, discountCriteria.BaseEmployeeBenefitCost);
                Assert.AreEqual(.1m, discountCriteria.DiscountPerctentageRate);
                Assert.AreEqual('A', discountCriteria.DiscountQualifier);
                Assert.AreEqual(2000.00m, discountCriteria.EmployeeBiWeeklyBasePay);
                Assert.AreEqual(26, discountCriteria.TotalYearlyCheckDisbursment);

                context.Database.EnsureDeleted();
            }
        }
Example #19
0
 public ActionResult New(CCardModel model)
 {
     if (!ModelState.IsValid)
     {
         using (DiscountContext context = new DiscountContext())
         {
             ViewBag.DiscountGroups = context.GetGroupList();
         }
         return(View("Edit", model));
     }
     else
     {
         using (CCardContext context = new CCardContext())
         {
             context.Add(model);
         }
         return(RedirectToAction("Index"));
     }
 }
        public void ApplyDiscount(int orderId)
        {
            using (var db = new DiscountContext())
            {
                var order = db.Orders.Single(c => c.Id = orderId);

                foreach (var orderItem in order.Items)
                {
                    var discount = db.Discounts.Where(d => d.Product.Id == orderItem.Product.Id).ToList();

                    foreach (var discount in discounts)
                    {
                        orderItem.Total = orderItem.Qty * orderItem.Product.Price * (1 - discount.Value / 100);
                    }
                }

                db.SaveChanges();
            }
        }
Example #21
0
 public ActionResult Edit(DiscountModel model)
 {
     if (!ModelState.IsValid)
     {
         using (DiscountContext context = new DiscountContext())
         {
             ViewBag.DiscountKinds = context.GetDiscountKinds();
         }
         return(View("Edit", model));
     }
     else
     {
         using (DiscountContext context = new DiscountContext())
         {
             context.Edit(model);
         }
         return(RedirectToAction("Index"));
     }
 }
Example #22
0
        static void Main(string[] args)
        {
            Console.WriteLine("##### 例子1 #####");

            // 无折扣.
            DiscountContext c1 = new DiscountContext(new NoDiscountStrategy());
            // 每本1元.
            DiscountContext c2 = new DiscountContext(new FlatRateStrategy()
            {
                OneCopyDiscount = 1
            });
            // 总金额 10%
            DiscountContext c3 = new DiscountContext(new PercentageStrategy()
            {
                Percent = 0.1M
            });

            Console.WriteLine(c1.GetBookDiscount(100, 10));
            Console.WriteLine(c2.GetBookDiscount(100, 10));
            Console.WriteLine(c3.GetBookDiscount(100, 10));



            Console.WriteLine("##### 例子2 #####");

            MallardDuck mallardDuck = new MallardDuck();
            RedheadDuck redheadDuck = new RedheadDuck();
            RubberDuck  rubberDuck  = new RubberDuck();

            Console.WriteLine(mallardDuck.Display() + " # " + mallardDuck.PerformFly().ToString() + " # " + mallardDuck.PerformQuack().ToString());
            Console.WriteLine(redheadDuck.Display() + " # " + redheadDuck.PerformFly().ToString() + " # " + redheadDuck.PerformQuack().ToString());
            Console.WriteLine(rubberDuck.Display() + " # " + rubberDuck.PerformFly().ToString() + " # " + rubberDuck.PerformQuack().ToString());



            Console.ReadLine();
        }
 public CustomerDiscountRepository(DiscountContext context, ShopContext shopContext) : base(context)
 {
     _context     = context;
     _shopContext = shopContext;
 }
Example #24
0
 public UoWDiscount(string connect)
 {
     db = new DiscountContext(connect);
 }
 public ColleagueDiscountRepository(DiscountContext context, ShopContext shopContext) : base(context)
 {
     _context     = context;
     _shopContext = shopContext;
 }
Example #26
0
 public ProductQuery(InventoryContext inventoryContext, ShopContext shopContext, DiscountContext discountContext)
 {
     _inventoryContext = inventoryContext;
     _shopContext      = shopContext;
     _discountContext  = discountContext;
 }
 public CartCalculatorService(DiscountContext discountContext, IAuthHelper authHelper)
 {
     _discountContext = discountContext;
     _authHelper      = authHelper;
 }
Example #28
0
 public CoustomerDiscountRepo(DiscountContext context, DBContext shopContext) : base(context)
 {
     _context     = context;
     _shopContext = shopContext;
 }
 public ColleagueDiscountRepo(DiscountContext context, DBContext shopcontext) : base(context)
 {
     _context     = context;
     _shopcontext = shopcontext;
 }
Example #30
0
 public DiscountRepository(DiscountContext db)
 {
     this.db = db;
 }