コード例 #1
0
 public bool DeleteCustomer(Customer customer)
 {
     using (var db = new DbContextClass())
     {
         db.Customers.Remove(customer);
         return(db.SaveChanges() > 0);
     }
 }
コード例 #2
0
 public bool SaveNewOrder(Order order)
 {
     using (var db = new DbContextClass())
     {
         db.Orders.Add(order);
         return(db.SaveChanges() > 0);
     }
 }
コード例 #3
0
        public bool Register(Customer customer)
        {
            bool saved = false;

            using (var db = new DbContextClass())
            {
                db.Customers.Add(customer);
                saved = db.SaveChanges() > 0;
            }
            return(saved);
        }
コード例 #4
0
        /* #region Customer Methods */

        public bool CreateCustomer(Customer customer)
        {
            using (var db = new DbContextClass())
            {
                if (db.Customers.Contains(customer))
                {
                    return(false);
                }
                db.Customers.Add(customer);
            }
            return(true);
        }
コード例 #5
0
        // public bool AddPizza(APizza pizza)
        // {
        //     using (var db = new DbContextClass())
        //     {
        //         try
        //         {

        //         }
        //         catch (System.Exception)
        //         {

        //             throw;
        //         }
        //     }
        // }

        public bool RemovePizzaFromDBOrder(Order order, APizza pizza)
        {
            using (var db = new DbContextClass())
            {
                if (!db.Orders.Contains(order))
                {
                    return(true);
                }
                if (!db.Pizzas.Contains(pizza))
                {
                    return(true);
                }
                db.Pizzas.Remove(pizza);
                return(db.SaveChanges() > 0);
            }
        }
コード例 #6
0
 public bool CheckUserExists(string username)
 {
     using (var db = new DbContextClass())
     {
         Customer c = null;
         try
         {
             c = db.Customers.Where(c => c.Username == username).First();
         }
         catch (System.Exception)
         {
             return(false);
         }
         return(true);
     }
 }
コード例 #7
0
 public bool CheckoutCustomer(Customer customer, Order order)
 {
     using (var db = new DbContextClass())
     {
         customer.CurrentOrder = null;
         order.date            = DateTime.Now;
         if (db.Orders.Contains(order))
         {
             db.Remove(order);
             db.Update(customer);
             // db.Database.ExecuteSqlRaw("UPDATE dbo.Customers SET CurrentOrderOrderId = null WHERE CustomerId = '" + customer.CustomerId + "'");
             db.SaveChanges();
             // Console.WriteLine("change? :" + );
         }
         db.Add(order);
         customer.FinishedOrders.Add(order);
         db.Update(customer);
         return(db.SaveChanges() > 0);
     }
 }
コード例 #8
0
 /// <summary>
 /// check if customer has an order saved in the db
 /// if yes, delete that order
 /// if no, just do nothing
 /// </summary>
 /// <param name="customer"></param>
 /// <returns></returns>
 internal bool DeleteOrderIfExists(Customer customer)
 {
     using (var db = new DbContextClass())
     {
         Order o = null;
         try
         {
             o = db.Orders.Where(o => o.OrderId == db.Customers.Where(c => c.CustomerId == customer.CustomerId).First().CurrentOrder.OrderId).First();
         }
         catch (System.Exception)
         {
             customer.CurrentOrder = null;
             return(true);
         }
         customer.CurrentOrder = null;
         // db.Database.ExecuteSqlRaw("UPDATE dbo.Customers SET CurrentOrderOrderId = null WHERE CustomerId = '" + customer.CustomerId + "'");
         db.Update(customer);
         // db.SaveChanges();
         db.Orders.Remove(o);
         return(db.SaveChanges() > 0);
     }
 }
コード例 #9
0
        /* #endregion */

        /* #region Store Methods */

        public Dictionary <Customer, List <Order> > GetAllFinishedOrders()
        {
            // customerOrders = new Dictionary<Customer, List<Order>>();
            Dictionary <Customer, List <Order> > os = new Dictionary <Customer, List <Order> >();

            using (var db = new DbContextClass())
            {
                // db.Orders.EntityType.GetProperty("CustomerId").;
                db.Customers.Include(c => c.FinishedOrders).ToList().ForEach(c =>
                {
                    //   Console.WriteLine("customer? " + c.Username);
                    if (c.FinishedOrders.Count > 0)
                    {
                        foreach (var order in c.FinishedOrders)
                        {
                            db.Entry(order).Reference(o => o.Store).Load();
                            db.Entry(order).Collection(o => o.Pizzas).Load();
                            order.Pizzas.ForEach(
                                pizza =>
                            {
                                db.Entry(pizza).Reference(p => p.PizzaCrust).Load();
                                db.Entry(pizza).Reference(p => p.PizzaSize).Load();
                                db.Entry(pizza).Collection(p => p.ToppingList).Load();
                            }
                                );
                            //       Console.WriteLine("order? " + order);
                        }
                    }
                    //   Console.WriteLine(c.FinishedOrders);
                    os.Add(c, c.FinishedOrders);
                });
                return(os);

                // orders = db.Database.ExecuteSqlRaw("SELECT * FROM dbo.Orders WHERE CustomerId NOT null");
                // db.Orders.Where(o=>o.Property());
            }
        }
コード例 #10
0
 public bool RemoveSizeFromDBPizza(Order order, APizza pizza, Size size)
 {
     using (var db = new DbContextClass())
     {
         if (!db.Orders.Contains(order))
         {
             return(true);
         }
         if (!db.Pizzas.Contains(pizza))
         {
             return(true);
         }
         // if (component.GetType() == size.GetType())
         // {
         // Console.WriteLine("remove a size");
         if (!db.Sizes.Contains(size))
         {
             return(true);
         }
         // }
         db.Sizes.Remove(size);
         return(db.SaveChanges() > 0);
     }
 }
コード例 #11
0
 public bool RemoveCrustFromDBPizza(Order order, APizza pizza, Crust crust)
 {
     using (var db = new DbContextClass())
     {
         if (!db.Orders.Contains(order))
         {
             return(true);
         }
         if (!db.Pizzas.Contains(pizza))
         {
             return(true);
         }
         // if (component.GetType() == Topping.GetType())
         // {
         // Console.WriteLine("remove a topping");
         if (!db.Crusts.Contains(crust))
         {
             return(true);
         }
         // }
         db.Crusts.Remove(crust);
         return(db.SaveChanges() > 0);
     }
 }
コード例 #12
0
        public bool Login(string username, string password, out Customer customer)
        {
            using (var db = new DbContextClass())
            {
                Customer c = null;
                try
                {
                    c = db.Customers.Include(c => c.CurrentOrder)
                        .Where(c => c.Username == username)
                        .Include(c => c.FinishedOrders)
                        .Include(c => c.CurrentOrder.Store)
                        .Include(c => c.CurrentOrder.Pizzas)
                        .First();

                    if (c.CurrentOrder != null)
                    {
                        c.CurrentOrder.Pizzas.ForEach(
                            pizza =>
                        {
                            db.Entry(pizza).Reference(p => p.PizzaCrust).Load();
                            db.Entry(pizza).Reference(p => p.PizzaSize).Load();
                            db.Entry(pizza).Collection(p => p.ToppingList).Load();
                        }
                            );
                    }
                    if (c.FinishedOrders.Count > 0)
                    {
                        foreach (var order in c.FinishedOrders)
                        {
                            db.Entry(order).Reference(o => o.Store).Load();
                            db.Entry(order).Collection(o => o.Pizzas).Load();
                            order.Pizzas.ForEach(
                                pizza =>
                            {
                                db.Entry(pizza).Reference(p => p.PizzaCrust).Load();
                                db.Entry(pizza).Reference(p => p.PizzaSize).Load();
                                db.Entry(pizza).Collection(p => p.ToppingList).Load();
                            }
                                );
                        }
                    }
                    // .Include(c => c.CurrentOrder.Pizzas)
                    // .Include(c => c.CurrentOrder.Pizzas.FirstOrDefault().PizzaSize)
                    // .Include(c => c.CurrentOrder.Pizzas.FirstOrDefault().PizzaCrust)
                    // .Include(c => c.CurrentOrder.Pizzas.FirstOrDefault().ToppingList)
                }
                // catch (Microsoft.EntityFrameworkCore.DbUpdateException)
                // {
                //     Console.WriteLine("couldn't ");
                // }
                catch (System.Exception e)
                {
                    Console.WriteLine("customer not found" + e.Message + "\n" + e.StackTrace);
                    customer = null;
                    return(false);
                }
                if (c == null)
                {
                    Console.WriteLine("customer not found");
                    customer = null;
                    return(false);
                }
                else if (Customer.Compare(c.Password, password))
                {
                    Console.WriteLine("login success");
                    customer = c;
                    // if (c.CurrentOrder != null)
                    // {
                    //     c.CurrentOrder.Pizzas.ForEach(pizza => pizza.PizzaSize = db.Sizes.Where(s => s.ComponentId == pizza.Property()));
                    //     db.Sizes.Where(s => )
                    // }
                    return(true);
                }
                else
                {
                    Console.WriteLine("passwords not matching");
                    customer = null;
                    return(false);
                }
            }
        }
コード例 #13
0
        public bool SaveCustomerChanges(Customer customer)
        {
            using (var db = new DbContextClass())
            {
                if (!db.Orders.Contains(customer.CurrentOrder))
                {
                    SaveNewOrder(customer.CurrentOrder);
                }
                else
                {
                    customer.CurrentOrder.Pizzas.ForEach(pizza =>
                    {
                        if (!db.Pizzas.Contains(pizza))
                        {
                            db.Pizzas.Add(pizza);
                        }
                        else
                        {
                            pizza.ToppingList.ForEach(topping =>
                            {
                                if (!db.Toppings.Contains(topping))
                                {
                                    db.Toppings.Add(topping);
                                }
                            });
                            if (!db.Crusts.Contains(pizza.PizzaCrust))
                            {
                                db.Crusts.Add(pizza.PizzaCrust);
                            }
                            if (!db.Sizes.Contains(pizza.PizzaSize))
                            {
                                db.Sizes.Add(pizza.PizzaSize);
                            }
                        }
                    });

                    db.SaveChanges();
                }
                // try
                // {
                //     // db.DbContextOptionsBuilder.EnableSensitiveDataLogging = true;
                //     db.Orders.Where(o => o.OrderId == customer.CurrentOrder.OrderId).First();
                // }
                // catch (System.Exception e)
                // {
                //     Console.WriteLine("couldn't find it " + e.Message + "\n" + e.StackTrace);
                //     SaveNewOrder(customer.CurrentOrder);
                // }
                try
                {
                    db.Update(customer.CurrentOrder);
                    db.Update(customer);
                }
                catch (Microsoft.EntityFrameworkCore.DbUpdateException e)
                {
                    // db.Orders.Add(customer.CurrentOrder);
                    // db.Update(customer);
                    Console.WriteLine("an error occurred while saving your changes: " + e.Message + "\n" + e.StackTrace);
                }
                catch (System.InvalidOperationException e)
                {
                    Console.WriteLine("an error occurred while saving your changes: " + e.Message + "\n" + e.StackTrace);
                }
                return(db.SaveChanges() > 0);
            }
        }