Пример #1
0
        //See Page 70 et seq (I have switched to the code-first database)
        //NB I have changed te entity names to Purchase and Customer, rather than the confusing plural versions
        //used in the model-first example
        private void btnAdd_Click(object sender, EventArgs e)
        {
            Purchase p = new Purchase()
            {
                Amount       = new Decimal(5.24),
                PurchaseDate = DateTime.Now
            };

            Customer c = new Customer()
            {
                CustomerName = "The Famous Eccles"
            };

            using (RewardsContext ctx = new RewardsContext())
            {
                ctx.Customers.Add(c);
                ctx.Purchases.Add(p);

                ctx.SaveChanges();

                MessageBox.Show("Record Added");

                //Rewards.RewardsContext
            }
        }
Пример #2
0
        private void btnAdd_Click(object sender, EventArgs e)
        {
            //Create a new purchase
            Purchase NewPurchase = new Purchase()
            {
                Amount       = new Decimal(5.99),
                PurchaseDate = DateTime.Now
            };

            //Create a new customer and add the purchase
            Customer NewCustomer = new Customer()
            {
                CustomerName = "Josh Bailey"
            };

            //Create the context
            using (RewardsContext ctx = new RewardsContext())
            {
                ctx.Customers.Add(NewCustomer);
                ctx.Purchases.Add(NewPurchase);
                ctx.SaveChanges();

                MessageBox.Show("Record added");
            }
        }
Пример #3
0
        static void Main(string[] args)
        {
            //Create a new purchase
            Purchase NewPurchase = new Purchase()
            {
                Amount       = new Decimal(18.65),
                PurchaseDate = DateTime.Now
            };

            //Create a new customer and add the purchase
            Customer NewCustomer = new Customer()
            {
                CustomerName = "Henry Crun"
            };

            //Create the context
            using (RewardsContext ctx = new RewardsContext())
            {
                ctx.Customers.Add(NewCustomer);
                ctx.Purchases.Add(NewPurchase);
                ctx.SaveChanges();

                Console.WriteLine("Record Added");
                Console.ReadKey();
            }
        }
Пример #4
0
        public Option <int> GetPoints(int customerId)
        {
            using (var context = new RewardsContext(contextOptions))
            {
                var reward = context.Rewards
                             .Where(r => r.CustomerID == customerId)
                             .FirstOrDefault();

                return(reward == null
                    ? Option <int> .CreateEmpty()
                    : Option <int> .Create(reward.TotalPoints));
            }
        }
Пример #5
0
        //Page 86
        private void btnQuery_Click(object sender, EventArgs e)
        {
            using (RewardsContext ctx = new RewardsContext())
            {
                ObjectContext octx =
                    //Define a command string for making the query
                    string EntitySQLCmd =
                        "SELECT VALUE CustomerList " +
                        "FROM ctx.Customers " +
                        "AS CustomerList";

                //Create a query object
                ObjectQuery <Customer> Query = new ObjectQuery <Customer>(EntitySQLCmd, ctx);
            }
        }
Пример #6
0
        private void btnAdd_Click(object sender, EventArgs e)
        {
            Purchase p = new Purchase()
            {
                Amount       = new Decimal(89.547),
                PurchaseDate = DateTime.Parse("5/8/1956 15:26")
            };

            Customer c = new Customer()
            {
                CustomerName = "Fred Cringinnut",
            };

            using (RewardsContext ctx = new RewardsContext())
            {
                ctx.Customers.Add(c);
                ctx.Purchases.Add(p);
                ctx.SaveChanges();
                MessageBox.Show("Record added");
            }
        }
Пример #7
0
        public void Redeem(int customerId, int points)
        {
            using (var context = new RewardsContext(contextOptions))
            {
                var reward = context.Rewards
                             .Where(r => r.CustomerID == customerId)
                             .FirstOrDefault();

                // todo: Need to throw right Exception
                if (reward == null)
                {
                    throw new InvalidOperationException(string.Format("There are no rewards for customer Id: {0}", customerId));
                }
                if (reward.TotalPoints < points)
                {
                    throw new InvalidOperationException(string.Format(" Can't Redeem points. Pointts to redeem {0} is more than holding points {1}", points, reward.TotalPoints));
                }
                // todo: Need to handle Redeem and Add points simultaneously case.
                reward.TotalPoints -= points;
                context.SaveChanges();
            }
        }
Пример #8
0
        public void AddPoints(int customerId, int points)
        {
            using (var context = new RewardsContext(contextOptions))
            {
                var reward = context.Rewards
                             .Where(r => r.CustomerID == customerId)
                             .FirstOrDefault();

                if (reward == null)
                {
                    reward = new Reward
                    {
                        CustomerID = customerId
                    };
                    context.Rewards.Add(reward);
                }

                // todo: Need to handle Redeem and Add points simultaneously case.
                reward.TotalPoints += points;
                context.SaveChanges();
            }
        }