Пример #1
0
 public OrderItemVM(order_item oi, menu_item mi, side si)
 {
     id = oi.id;
     this.order_item = oi;
     this.menu_item = mi;
     order_item_status = (int)oi.order_item_status;
     this.side = si;
 }
Пример #2
0
 /// <summary>
 /// Is responsible for handling any modifications to side items
 /// </summary>
 /// <param name="side">Edited side</param>
 /// <returns>Boolean indicating whether the modification took effect</returns>
 /// <exception cref="ArgumentNullException"></exception>
 /// <exception cref="InvalidOperationException"></exception>
 public Boolean Edit(side side)
 {
     side dbVersion = db.sides.Find(side.id);
     if (dbVersion.version == side.version)
     {
         ((IObjectContextAdapter)db).ObjectContext.Detach(dbVersion);
         db.Entry(side).State = EntityState.Modified;
         side.version = side.version + 1;
         db.SaveChanges();
         return true;
     }
     return false;
 }
Пример #3
0
        public void AddMenuItem(menu_item mi, side si, OrderStatusHelper.OrderItemStatusEnum orderItemStatus)
        {
            order_item oi = new order_item();
            oi.menu_item_id = mi.id;
            if (si.id == -1)
            {
                oi.sides_id = null;
            }
            else
            {
                oi.sides_id = si.id;
            }
            oi.id = uniqueId--;
            oi.order_id = this.id;
            oi.order_item_status = (int)orderItemStatus;

            this.order_item.Add(oi);

            if (this.total == null) this.total = (decimal)0.0;
            this.total += mi.price;
        }
Пример #4
0
 public void AddSide(side side)
 {
     sides.Add(side);
 }
Пример #5
0
        public int SetActive(side side, bool isActive)
        {
            side dbVersion = db.sides.Find(side.id);

            int result = 0;
            if (dbVersion.version == side.version && side.is_active == dbVersion.is_active)
            {
                ((IObjectContextAdapter)db).ObjectContext.Detach(dbVersion);
                db.Entry(side).State = EntityState.Modified;
                side.is_active = isActive;
                side.version = side.version + 1;
                result = db.SaveChanges();
            }

            return result;
        }
Пример #6
0
 /// <summary>
 /// Write a side object to the database
 /// </summary>
 /// <param name="side"></param>
 /// <returns>true if successful, false otherwise.</returns>
 /// <exception cref="InvalidOperationException"></exception>
 public bool Create(side side)
 {
     db.sides.Add(side);
     return (db.SaveChanges() == 1);
 }
Пример #7
0
 public ActionResult Edit(side side)
 {
     if (ModelState.IsValid)
     {
         try
         {
             if (om.Edit(side))
             {
                 return RedirectToAction("Index");
             }
             else
             {
                 ViewBag.Error = Global.VersioningError;
             }
         }
         catch (InvalidOperationException)
         {
             ViewBag.Error = Global.VersioningError;
         }
     }
     ViewBag.menu_category_id = new SelectList(db.menu_category, "id", "id", side.menu_category_id);
     return View(side);
 }
Пример #8
0
        public int AddMenuItem(int id, int side_id)
        {
            user authUser = Util.User.UserUtil.getAuthenticatedUser(Request);
            if (authUser == null) return -1;
            order currentOrder = (order)Session["ORDER"];

            if (currentOrder == null)
            {
                currentOrder = Util.Session.SessionUtil.getOpenOrder(authUser);
                if (currentOrder == null)
                {
                    currentOrder = new order();
                    currentOrder.order_status = (int)OrderStatusHelper.OrderStatusEnum.OPEN;
                    currentOrder.user_id = authUser.id;
                    currentOrder.table_id = authUser.current_table_id;
                }
                else
                {
                    if (currentOrder.order_status == (int)OrderStatusHelper.OrderStatusEnum.PLACED || currentOrder.order_status == (int)OrderStatusHelper.OrderStatusEnum.OPEN)
                    {
                        currentOrder.order_status = (int)OrderStatusHelper.OrderStatusEnum.EDITING;
                        db.orders.Find(currentOrder.id).order_status = currentOrder.order_status;
                        om.edit(currentOrder);
                    }
                    else
                    {
                        ViewBag.error = "Your order cannot be editied because it is already being processed";
                        return -1;
                    }
                }
                Session["ORDER"] = currentOrder;
            }

            menu_item mi = db.menu_item.Find(id);
            if (mi == null)
            {
                return -1; // failure;
            }

            side si;
            if (side_id == -1)
            {
                si = new side();
                si.id = side_id;
            }
            else
            {
                 si = db.sides.Find(side_id);
                 if (si == null)
                 {
                     return -1;
                 }
            }

            const OrderStatusHelper.OrderItemStatusEnum status = OrderStatusHelper.OrderItemStatusEnum.PENDING;
            currentOrder.AddMenuItem(mi, si, status);

            Session["ORDER"] = currentOrder;
            return currentOrder.id;
        }
Пример #9
0
        public ActionResult Create(side side)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    if (om.Create(side))
                    {
                        return RedirectToAction("Index");
                    }
                }
                catch (Exception) { }
            }

            ViewBag.Error = Global.ServerError;
            ViewBag.menu_category_id = new SelectList(db.menu_category, "id", "id", side.menu_category_id);
            return View(side);
        }
Пример #10
0
        public void MyTestInitialize()
        {
            //Add test data (order specific)
            db = new touch_for_foodEntities();
            side1 = testDatabase.AddSide(menuCategory1);
            orderItem1 = testDatabase.AddOrderItem(order1, menuItem1);

            //set parameters for menuItem2
            side2 = new side();
            //side2.menu_category = menuCategory1; // This breaks CreateTest
            side2.menu_category_id = menuCategory1.id;
            side2.name = "TestingSide";
            side2.is_active = false;
            side2.is_deleted = false;
        }
Пример #11
0
        public void DeleteConfirmedTestItemActiveException()
        {
            // Arrange
            db = new touch_for_foodEntities();
            SideController target = new SideController();
            int expectedSides = db.sides.ToList<side>().Count();
            side1 = db.sides.Find(side1.id);
            side1.is_active = true;
            db.Entry(side1).State = EntityState.Modified;
            db.SaveChanges();

            // Act
            var actualResult = target.DeleteConfirmed(side1.id) as RedirectToRouteResult;

            // Assertions
            db = new touch_for_foodEntities();
            var actualResultURI = actualResult.RouteValues["action"];
            int actualSides = db.sides.ToList<side>().Count();

            Assert.AreEqual(expectedSides, actualSides);
            Assert.IsFalse(db.sides.Find(side1.id).is_deleted);
            Assert.AreEqual("Index", actualResultURI);
        }
Пример #12
0
 /// <summary>
 /// Removes a side item from the database.
 /// </summary>
 /// <param name="testSide">The side to be removed.</param>
 public void RemoveSide(side testSide)
 {
     db = new touch_for_foodEntities();
     if (db.sides.Find(testSide.id) != null)
     {
         db.sides.Remove(db.sides.Find(testSide.id));
         db.SaveChanges();
     }
     db.Dispose();
 }
Пример #13
0
        /// <summary>
        /// Creates an entry of type side in the database.
        /// </summary>
        /// <param name="menuCategory">The menu category associated to the side</param>
        /// <returns>The created side entity.</returns>
        public side AddSide(menu_category menuCategory)
        {
            //Initialise
            db = new touch_for_foodEntities();
            side testSide = new side();

            //Set Attributes
            testSide.name = "UnitTest";
            testSide.price = new decimal(2.99);
            testSide.version = 1;
            testSide.menu_category_id = menuCategory.id;
            testSide.is_active = false;
            testSide.is_deleted = false;

            //Save
            db.sides.Add(testSide);
            db.SaveChanges();
            db.Dispose();

            return testSide;
        }
Пример #14
0
 public void MyTestInitialize()
 {
     //Add test data (order specific)
     category1 = testDatabase.AddCategory();
     restaurant1 = testDatabase.AddRestaurant();
     menu1 = testDatabase.AddMenu(restaurant1);
     menuCategory1 = testDatabase.AddMenuCategory(category1, menu1);
     table1 = testDatabase.AddTable(restaurant1);
     order1 = testDatabase.AddOrder(table1);
     item1 = testDatabase.AddItem(category1);
     menuItem1 = testDatabase.AddMenuItem(item1, menuCategory1);
     orderItem1 = testDatabase.AddOrderItem(order1, menuItem1);
     side1 = testDatabase.AddSide(menuCategory1);
 }