Beispiel #1
0
        public Boolean edit(menu menu)
        {
            MenuIM im = new MenuIM(db);
            menu dbVersion = im.find(menu.id);
            if (dbVersion.version == menu.version)
            {
                //Activate / Deactivate the menu means changing the active feild to all menu categories inside it
                //if (dbVersion.is_active != menu.is_active)
                //{
                MenuCategoryOM om = new MenuCategoryOM(db);
                IList<menu_category> menu_category_list = menu.menu_category.ToList();
                for (int i = 0; i < menu_category_list.Count; i++)
                {
                    menu_category mc = menu_category_list.ElementAt(i);
                    mc.is_active = menu.is_active;
                    om.edit(mc);
                }
                // }
                ((IObjectContextAdapter)db).ObjectContext.Detach(dbVersion);
                db.Entry(menu).State = EntityState.Modified;
                menu.version = menu.version + 1;
                db.SaveChanges();
                return true;
            }

            return false;
        }
        public static void MyClassInitialize(TestContext testContext)
        {
            testDatabase = new TestDatabaseHelper();

            //Add test data (order specific)
            restaurant1 = testDatabase.AddRestaurant();
            menu1 = testDatabase.AddMenu(restaurant1);
        }
 public static void MyClassInitialize(TestContext testContext)
 {
     //Add test data (order specific)
     testDatabase = new TestDatabaseHelper();
     restaurant1 = testDatabase.AddRestaurant();
     menu1 = testDatabase.AddMenu(restaurant1);
     category1 = testDatabase.AddCategory();
     item1 = testDatabase.AddItem();
 }
Beispiel #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);
        }
Beispiel #5
0
        /**
         * Filters the categories and only returns those that are not already assigned to the menu
         * that is passed in.
         * */
        public static IList<category> filterListByMenu(menu menu,touch_for_foodEntities db)
        {
            List<category> filteredList = new List<category>();
            MenuCategoryIM im = new MenuCategoryIM(db);

            CategoryIM cim = new CategoryIM(db);
            int resto_id = menu.resto_id;

            bool reject = false;
            foreach (category cat in cim.find().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_category> usages = db.menu_category.Where(mc => mc.category_id == cat.id && mc.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;
                }

                //Check if the category is being used buy the current menu
                foreach (menu_category menu_cat in im.find(false, menu.id))
                {
                    if (cat.id == menu_cat.category_id)
                    {
                        reject = true;
                        break;
                    }
                }
                if (!reject)
                {
                    filteredList.Add(cat);
                }
            }
            return filteredList;
        }
Beispiel #6
0
        public ActionResult Create(menu menu)
        {
            user authUser = Util.User.UserUtil.getAuthenticatedUser(Request);
            if (authUser.restaurant_user.Count() != 0)
            {
                menu.resto_id = (int)authUser.restaurant_user.First().restaurant_id;
            }
            if (ModelState.IsValid)
            {
                try
                {
                    if (om.Create(menu))
                    {
                        return RedirectToAction("Details", menu);
                    }
                }
                catch (Exception) { }
            }

            ViewBag.Error = Global.ServerError;
            ViewBag.resto_id = new SelectList(db.restaurants, "id", "name", menu.resto_id);
            return View(menu);
        }
        public void MyTestInitialize()
        {
            //Add test data (order specific)
            restaurant1 = testDatabase.AddRestaurant();
            restaurant2 = new restaurant();
            table1 = testDatabase.AddTable(restaurant1);
            user1 = testDatabase.AddUser("*****@*****.**", table1, (int)SiteRoles.Admin);
            restaurantUser1 = testDatabase.AddRestaurantUser(user1, restaurant1);
            menu1 = testDatabase.AddMenu(restaurant1);
            order1 = testDatabase.AddOrder(table1);
            review1 = testDatabase.AddReview(restaurant1, order1, user1);

            //Session
            db = new touch_for_foodEntities();
            target = new RestaurantController();
            Session session = new Session(db, target);
            session.simulateLogin(user1.username, user1.password);
        }
Beispiel #8
0
 public ActionResult Edit(menu menu)
 {
     if (ModelState.IsValid)
     {
         try
         {
             if (om.edit(menu))
                 return RedirectToAction("Index");
             else
             {
                 ViewBag.Error =Global.VersioningError;
             }
         }
         catch (Exception)
         {
             ViewBag.Error = Global.ServerError;
         }
     }
     ViewBag.resto_id = new SelectList(db.restaurants, "id", "name", menu.resto_id);
     return View(menu);
 }
        public static void MyClassInitialize(TestContext testContext)
        {
            testDatabase = new TestDatabaseHelper();

            //Add test data (order specific)
            restaurant1 = testDatabase.AddRestaurant();
            table1 = testDatabase.AddTable(restaurant1);
            order1 = testDatabase.AddOrder(table1);
            item1 = testDatabase.AddItem();
            category1 = testDatabase.AddCategory();
            menu1 = testDatabase.AddMenu(restaurant1);
            menuCategory1 = testDatabase.AddMenuCategory(category1, menu1);
            menuItem1 = testDatabase.AddMenuItem(item1, menuCategory1);
        }
Beispiel #10
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;
        }
Beispiel #11
0
 /// <summary>
 /// Writes a menu object to the database
 /// </summary>
 /// <param name="menu">The menu object to write</param>
 /// <returns>True if successful, false otherwise</returns>
 public bool Create(menu menu)
 {
     db.menus.Add(menu);
     return (db.SaveChanges() == 1);
 }
Beispiel #12
0
 /// <summary>
 /// Remove menu item from database.
 /// </summary>
 /// <param name="menuEntity">Menu item to be removed.</param>
 public void RemoveMenu(menu menuEntity)
 {
     db = new touch_for_foodEntities();
     if (menuEntity != null)
     {
         db.menus.Remove(db.menus.Find(menuEntity.id));
         db.SaveChanges();
     }
     db.Dispose();
 }
Beispiel #13
0
        /// <summary>
        /// Creates an entry of type menu in the database.
        /// </summary>
        /// <param name="restaurantEntity">The restaurant the menu belongs to</param>
        /// <returns>The created menu entry.</returns>
        public menu AddMenu(restaurant restaurantEntity)
        {
            //Initialise
            db = new touch_for_foodEntities();
            menu testMenu = new menu();

            //Set Attributes
            testMenu.resto_id = restaurantEntity.id;
            testMenu.name = "UnitTest";
            testMenu.is_active = false;
            testMenu.is_deleted = false;

            //Save
            db.menus.Add(testMenu);
            db.SaveChanges();
            db.Dispose();

            return testMenu;
        }
Beispiel #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);
 }
Beispiel #15
0
 public CategoryFilterVM(menu menu, IList<category> category)
 {
     m_category = category;
     m_menu = menu;
 }
Beispiel #16
0
 public PartialViewResult FilterCategories(menu menu)
 {
     CategoryFilterVM catFilter = new CategoryFilterVM(menu, CategoryUtil.filterListByMenu(menu,db));
     return PartialView("_CategoryTable", catFilter);
 }
Beispiel #17
0
        public void CreateTest()
        {
            //Arrange
            db = new touch_for_foodEntities();
            int numberOfMenusBefore = db.restaurants.Find(restaurant1.id).menus.ToList<menu>().Count();

            //Menu object that will be added.
            menu menu2 = new menu();
            menu2.resto_id = restaurant1.id;
            menu2.name = "UnitTest";
            menu2.is_active = false;
            menu2.is_deleted = false;

            //Act
            var actual = (RedirectToRouteResult)target.Create(menu2);

            //Assert
            db = new touch_for_foodEntities();
            int numberOfMenusAfter = db.restaurants.Find(restaurant1.id).menus.ToList<menu>().Count();
            Assert.AreEqual((numberOfMenusBefore + 1), numberOfMenusAfter);
        }
Beispiel #18
0
 public CategoryFilterVM()
 {
     m_category = new List<category>();
     m_menu = new menu();
 }
Beispiel #19
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);
        }
        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);
        }
Beispiel #21
0
        public ViewResult PopularItemsByRating(menu menu)
        {
            UserIM uim = new UserIM(db);
            TableIM im = new TableIM(db);
            ReportsIM rim = new ReportsIM(db);
            MenuItemIM miIM = new MenuItemIM(db);

            user authUser = Util.User.UserUtil.getAuthenticatedUser(Request);
            if (authUser == null)
            {
                return View("LogOn", "User");
            }
            user dbUser = uim.find(authUser.id);
            int t_id = (int)dbUser.current_table_id;
            restaurant r = db.tables.Find(t_id).restaurant;

            IEnumerable<MostPopularDishViewModel> mostPopular = rim.findMostPopularCustomer(r);
            List<KeyValuePair<TouchForFood.Models.menu_item, double>> list = new List<KeyValuePair<TouchForFood.Models.menu_item, double>>();
            foreach(var dish in mostPopular){
                menu_item mi = miIM.find(dish.menuItemId);

                list.Add(new KeyValuePair<menu_item,double>(mi,ItemUtil.getAverageRating(mi)));
            }

            list.Sort((firstPair, nextPair) =>
            {
                return nextPair.Value.CompareTo(firstPair.Value);
            }
            );

            ViewBag.Suggest = "Items are ranked according to rating.";

            return View("SuggestedByRating", list);
        }