예제 #1
0
파일: SideUtil.cs 프로젝트: pmoda/TFFCode
        /**
         * Filters the sides and only returns those that are not already assigned to the menu
         * that is passed in.
         * */
        public static IList<side> FilterListBySide(menu_category menu_category)
        {
            touch_for_foodEntities db = new touch_for_foodEntities();
            List<side> filteredList = new List<side>();

            int resto_id = menu_category.menu.resto_id;
            //  We want all sides that do not exist in this menu_category and that belong to this restaurant.
            //  is_deleted and is_active need to be considered too. Show only sides where is_active is false
            //  if side is_deleted is true, then there should be another page to revert that. the side functionality
            //  I'm putting should only set a side to is_active is true or false
            List<side> restaurantSides = db.sides.Where
                (
                    si =>
                        si.menu_category.menu.resto_id == resto_id
                        && si.is_active == false
                        && si.is_deleted == false
                ).ToList();

            foreach (var side in restaurantSides)
            {
                if (side.menu_category_id.Equals(menu_category.id))
                {
                    filteredList.Add(side);
                }
            }
            db.Dispose();
            return filteredList;
        }
예제 #2
0
 public Boolean edit(menu_category menu_category)
 {
     MenuCategoryIM im = new MenuCategoryIM(db);
     menu_category dbVersion = im.find(menu_category.id);
     if (dbVersion.version == menu_category.version)
     {
         //Activate / Deactivate the menu category means changing the active feild to all menu items inside it
         //if (dbVersion.is_active != menu_category.is_active)
         //{
         MenuItemOM om = new MenuItemOM(db);
         IList<menu_item> menu_item_list = menu_category.menu_item.ToList();
         for (int i = 0; i < menu_item_list.Count; i++)
         {
             menu_item mi = menu_item_list.ElementAt(i);
             mi.is_active = menu_category.is_active;
             om.edit(mi);
         }
         //}
         ((IObjectContextAdapter)db).ObjectContext.Detach(dbVersion);
         db.Entry(menu_category).State = EntityState.Modified;
         menu_category.version = menu_category.version + 1;
         db.SaveChanges();
         return true;
     }
     return false;
 }
예제 #3
0
파일: ItemOMTest.cs 프로젝트: pmoda/TFFCode
 public static void MyClassInitialize(TestContext testContext)
 {
     //Add test data (order specific)
     testDatabase = new TestDatabaseHelper();
     item1 = testDatabase.AddItem();
     item2 = testDatabase.AddItem();
     category1 = testDatabase.AddCategory();
     restaurant1 = testDatabase.AddRestaurant();
     menu1 = testDatabase.AddMenu(restaurant1);
     menuCategory1 = testDatabase.AddMenuCategory(category1, menu1);
     menuItem1 = testDatabase.AddMenuItem(item2, menuCategory1);
 }
예제 #4
0
        public static void MyClassInitialize(TestContext testContext)
        {
            //Add test data (order specific)
            testDatabase = new TestDatabaseHelper();
            restaurant1 = testDatabase.AddRestaurant();
            table1 = testDatabase.AddTable(restaurant1);
            user1 = testDatabase.AddUser("*****@*****.**", table1, (int)SiteRoles.Customer);
            order1 = testDatabase.AddOrder(table1);
            item1 = testDatabase.AddItem();
            category1 = testDatabase.AddCategory();
            menu1 = testDatabase.AddMenu(restaurant1);
            menuCategory1 = testDatabase.AddMenuCategory(category1, menu1);
            menuItem1 = testDatabase.AddMenuItem(item1, menuCategory1);
            orderItem1 = testDatabase.AddOrderItem(order1, menuItem1);

            //Session
            db = new touch_for_foodEntities();
            ReviewController target = new ReviewController();
            Session session = new Session(db, target);
            session.simulateLogin(user1.username, user1.password);
        }
예제 #5
0
파일: ItemUtil.cs 프로젝트: pmoda/TFFCode
        /**
            * Filters the categories and only returns those that are not already assigned to the menu
            * that is passed in.
        * */
        public static IList<item> filterListByItem(menu_category menu_category,touch_for_foodEntities db)
        {
            List<item> filteredList = new List<item>();
            MenuItemIM im = new MenuItemIM(db);
            int resto_id = menu_category.menu.resto_id;
            bool reject = false;

            foreach (item i in db.items.ToList())
            {
                reject = false;
                //First check that the category does belong to the restaurant
                //Find all usages of the category in question in the current restaurant
                List<menu_item> usages = db.menu_item.Where(mi => mi.item_id == i.id && mi.menu_category.menu.resto_id == resto_id).ToList();

                //If it was never used by this restaurant, then the restaurant could not have created it
                // because create automatically adds the created item to the menu
                if (usages.Count == 0)
                {
                    reject = true;
                }

                if (menu_category.category.id == i.category_id)
                {
                    foreach (menu_item m_i in im.find(false, menu_category.id))
                    {
                        if (i.id == m_i.item_id)
                        {
                            reject = true;
                            break;
                        }
                    }
                    if (!reject)
                    {
                        filteredList.Add(i);
                    }
                }
            }
            db.Dispose();
            return filteredList;
        }
예제 #6
0
        public bool addCategoryToMenu(int menu_id, CategoryFilterVM cat_filter)
        {
            bool isSuccess = false;
            category category = cat_filter.m_category.First();

            if (ValidateCategory(category))
            {

                menu menu = db.menus.Find(menu_id);

                menu_category mc = new menu_category();
                mc.category_id = category.id;
                mc.menu_id = menu_id;
                //Inherit parent active status
                mc.is_active = menu.is_active;

                if (category.name != "" && menu_id != 0)
                {
                    db.categories.Add(category);
                    db.menu_category.Add(mc);
                    db.SaveChanges();
                    isSuccess = true;
                }
            }

            if (isSuccess)
            {
                HttpContext.Session["message"] = category.name + " successfuly added.";
            }
            else
            {
                HttpContext.Session["error"] = category.name + " could not be added -  " + ViewBag.Error;
            }

            return isSuccess;
        }
예제 #7
0
        public void CreateTest()
        {
            //Arrange
            db = new touch_for_foodEntities();
            Menu_CategoryController target = new Menu_CategoryController(db);
            int numberOfMenuCategoriesBefore = db.categories.Find(category1.id).menu_category.ToList<menu_category>().Count();
            menu_category menuCategory2 = new menu_category();
            menuCategory2.is_active = false;
            menuCategory2.category_id = category1.id;
            menuCategory2.menu_id = menu1.id;

            //Act
            target.Create(menuCategory2);

            //Assert
            db = new touch_for_foodEntities();
            int numberOfMenuCategoriesAfter = db.categories.Find(category1.id).menu_category.ToList<menu_category>().Count();
            Assert.AreEqual((numberOfMenuCategoriesBefore + 1), numberOfMenuCategoriesAfter);
        }
예제 #8
0
 public ItemFilterVM()
 {
     items = new List<item>();
     menu_cat = new menu_category();
 }
예제 #9
0
 public SideFilterVM()
 {
     sides = new List<side>();
     menu_cat = new menu_category();
 }
예제 #10
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);
 }
예제 #11
0
        public void MyTestInitialize()
        {
            //Add test data (order specific)
            category1 = testDatabase.AddCategory();
            category2 = testDatabase.AddCategory();
            category3 = new category();
            category3.name = "CategoryUnitTest";
            category3.version = 1;
            menuCategory1 = testDatabase.AddMenuCategory(category2, menu1);

            //Session
            target = new CategoryController();
            Session session = new Session(db, target);
        }
예제 #12
0
 /// <summary>
 /// Remove menu item from database.
 /// </summary>
 /// <param name="menuCategoryEntity">Menu Category item to be removed.</param>
 public void RemoveMenuCategory(menu_category menuCategoryEntity)
 {
     db = new touch_for_foodEntities();
     if (db.menu_category.Find(menuCategoryEntity.id) != null)
     {
         db.menu_category.Remove(db.menu_category.Find(menuCategoryEntity.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
        /// <summary>
        /// Creates an entry of type menu itemin the database.
        /// </summary>
        /// <param name="itemEntity">The item the menu item represents.</param>
        /// <param name="menuCategory">Category the menu item belongs to</param>
        /// <returns>The created menu item entry.</returns>
        public menu_item AddMenuItem(item itemEntity, menu_category menuCategory)
        {
            //Initialise
            db = new touch_for_foodEntities();
            menu_item testMenuItem = new menu_item();

            //Set Attributes
            testMenuItem.item_id = itemEntity.id;
            testMenuItem.menu_category_id = menuCategory.id;
            testMenuItem.price = new decimal(10.99);
            testMenuItem.is_active = false;

            //Save
            db.menu_item.Add(testMenuItem);
            db.SaveChanges();
            db.Dispose();

            return testMenuItem;
        }
예제 #15
0
        /// <summary>
        /// Creates an entry of type menu category in the database.
        /// </summary>
        /// <param name="categoryEntity">The category the menu category is an extension of</param>
        /// <param name="menuEntity">The menu the category belongs to</param>
        /// <returns>The created menu category</returns>
        public menu_category AddMenuCategory(category categoryEntity, menu menuEntity)
        {
            //Initialise
            db = new touch_for_foodEntities();
            menu_category testMenuCategory = new menu_category();

            //Set Attributes
            testMenuCategory.category_id = categoryEntity.id;
            testMenuCategory.menu_id = menuEntity.id;
            testMenuCategory.is_active = false;

            //Save
            db.menu_category.Add(testMenuCategory);
            db.SaveChanges();
            db.Dispose();

            return testMenuCategory;
        }
예제 #16
0
 public void MyTestInitialize()
 {
     //Add test data (order specific)
     menuCategory1 = testDatabase.AddMenuCategory(category1, menu1);
     menuItem1 = testDatabase.AddMenuItem(item1, menuCategory1);
 }
예제 #17
0
 public PartialViewResult FilterSides(menu_category menu_cat)
 {
     SideFilterVM iFilter = new SideFilterVM(menu_cat, SideUtil.FilterListBySide(menu_cat)); //(menu_cat, SideUtil.FilterListBySide(menu_cat));
     return PartialView("_SideTable", iFilter);
 }
예제 #18
0
 public ActionResult Edit(menu_category menu_category)
 {
     if (ModelState.IsValid)
     {
         try
         {
             if (om.edit(menu_category))
                 return RedirectToAction("Index");
             else
             {
                 ViewBag.Error = Global.VersioningError;
             }
         }
         catch (Exception)
         {
             ViewBag.Error = Global.ServerError;
         }
     }
     ViewBag.category_id = new SelectList(db.categories, "id", "name", menu_category.category_id);
     ViewBag.menu_id = new SelectList(db.menus, "id", "name", menu_category.menu_id);
     return View(menu_category);
 }
예제 #19
0
 public PartialViewResult FilterItems(menu_category menu_cat)
 {
     ItemFilterVM iFilter = new ItemFilterVM(menu_cat, ItemUtil.filterListByItem(menu_cat,db));
     return PartialView("_ItemTable", iFilter);
 }
예제 #20
0
        public void MyTestInitialize()
        {
            //Add test data (order specific)
            item1 = testDatabase.AddItem(category1);
            menu1 = testDatabase.AddMenu(restaurant1);
            menuCategory1 = testDatabase.AddMenuCategory(category1, menu1);

            //Session
            db = new touch_for_foodEntities();
            target = new ItemController(db);
            Session session = new Session(db, target);
            session.simulateLogin(user1.username, user1.password);
        }
예제 #21
0
 public SideFilterVM(menu_category category, IList<side> sides_list)
 {
     menu_cat = category;
     sides = sides_list;
 }
예제 #22
0
 /// <summary>
 /// Writes  a menu_category object to the database
 /// </summary>
 /// <param name="mc">The menu_category object to write</param>
 /// <returns>True if successful, false otherwise</returns>
 public bool Create(menu_category mc)
 {
     db.menu_category.Add(mc);
     return (db.SaveChanges() == 1);
 }
예제 #23
0
        public static void MyClassInitialize(TestContext testContext)
        {
            testDatabase = new TestDatabaseHelper();

            //Add test data (order specific)
            item1 = testDatabase.AddItem();
            category1 = testDatabase.AddCategory();
            restaurant1 = testDatabase.AddRestaurant();
            menu1 = testDatabase.AddMenu(restaurant1);
            menuCategory1 = testDatabase.AddMenuCategory(category1, menu1);
            table1 = testDatabase.AddTable(restaurant1);
            order1 = testDatabase.AddOrder(table1);
            user1 = testDatabase.AddUser("*****@*****.**", table1, (int)SiteRoles.Admin);
            review1 = testDatabase.AddReview(restaurant1, order1, user1);
        }
예제 #24
0
 public ItemFilterVM(menu_category category, IList<item> items_list)
 {
     menu_cat = category;
     items = items_list;
 }