// Method that handles the errors and returns Test Items //
        private List <MenuProduct> ErrorHandling(Exception e)
        {
            StreamWriter writer = new StreamWriter("errorLog");

            writer.Write(e);
            writer.Close();

            List <MenuProduct> menuItem = new List <MenuProduct>();
            MenuProduct        a        = new MenuProduct
            {
                Name         = "Test menu item 1",
                MenuItemCode = 999
            };

            menuItem.Add(a);
            MenuProduct b = new MenuProduct
            {
                Name         = "Test menu item 2",
                MenuItemCode = 998
            };

            menuItem.Add(b);

            MessageBox.Show("Requesting products from database failed.", "Connection Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            return(menuItem);
        }
 private void buttonEditSelectedProductMenu_Click(object sender, EventArgs e)
 {
     if ((_currentTable == "menuproducts") && (dataGridViewRestaurantManagementSystem.SelectedRows.Count > 0))
     {
         var menuProductId = dataGridViewRestaurantManagementSystem.SelectedRows[0].Cells["ID"].Value.ToString();
         try
         {
             MenuProduct menuProduct = new MenuProduct()
             {
                 ID               = int.Parse(menuProductId),
                 Category         = comboBoxMenuProductCategory.Text,
                 Name             = textBoxMenuProductName.Text,
                 AmountOfCalories = int.Parse(textBoxMenuProductAmountOfCalories.Text),
                 Price            = int.Parse(textBoxMenuProductPrice.Text)
             };
             _writeMenuProductRepository.Edit(_readMenuProductRepository.GetByID(int.Parse(menuProductId)), menuProduct);
             ShowMenuProducts();
         }
         catch (Exception)
         {
             MessageBox.Show(@"Błędne/niepełne dane dla edytowanego dostawcy!");
         }
         ClearTextBoxes();
     }
     else
     {
         MessageBox.Show(@"Aby edytowac dane produktu menu w pierwszej kolejności musisz jakiś wybrać!");
     }
 }
示例#3
0
        // Button for confirmed menu product deletion from database
        private void btnOkRemoveProduct_Click(object sender, EventArgs e)
        {
            try
            {
                List <MenuProduct> productList = menuProduct_Service.GetAllProducts();

                // Edits product in the database
                MenuProduct mp = (MenuProduct)listViewChangeMenu.SelectedItems[0].Tag;

                menuProduct_Service.RemoveMenuProduct(mp.MenuItemCode);
                // Updates listview
                if (kitchenMenuButtonClicked)
                {
                    AddKitchenMenuToList("listViewChangeMenu");
                    kitchenStockButtonClicked = false;
                }
                else if (barMenuButtonClicked)
                {
                    AddBarMenuToList("listViewChangeMenu");
                    barStockButtonClicked = false;
                }
                else
                {
                    AddMenuToList("listViewChangeMenu");
                }

                // Goes back to Change Menu panel
                ShowPanel("ChangeMenu");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
示例#4
0
        public List <MenuProduct> Db_Get_Food_MenuProducts()
        {
            List <MenuProduct> menuProducts = new List <MenuProduct>();

            string query = "SELECT m.MenuItem_ID, m.Name, m.Description, m.stock, m.Category FROM MenuItem m WHERE Category NOT IN ('Alcoholisch', 'nietAlcoholisch');";

            SqlParameter[] sqlParameters = new SqlParameter[0];

            DataTable dataTable = ExecuteSelectQuery(query, sqlParameters);

            foreach (DataRow dr in dataTable.Rows)
            {
                MenuProduct product = new MenuProduct();

                product.MenuItemCode = (int)(dr["MenuItem_ID"]);
                product.Name         = (String)(dr["Name"]);
                product.Description  = (String)(dr["Description"]);
                product.Stock        = (int)(dr["stock"]);
                product.Category     = (String)(dr["Category"]);

                menuProducts.Add(product);
            }

            return(menuProducts);
        }
示例#5
0
        // Gets either alcholic or non alcoholic drinks from database
        public List <MenuProduct> Db_Get_Drink_MenuProducts(string category)
        {
            List <MenuProduct> menuProducts = new List <MenuProduct>();

            string query = "SELECT m.MenuItem_ID, m.Name, m.Description, m.stock FROM MenuItem m WHERE Category = @Category;";

            SqlParameter[] sqlParameters = new SqlParameter[1];
            sqlParameters[0] = new SqlParameter("@Category", category);

            DataTable dataTable = ExecuteSelectQuery(query, sqlParameters);

            foreach (DataRow dr in dataTable.Rows)
            {
                MenuProduct product = new MenuProduct();

                product.MenuItemCode = (int)(dr["MenuItem_ID"]);
                product.Name         = (String)(dr["Name"]);
                if (dr.IsNull("Description"))
                {
                    product.Description = " ";
                }
                else
                {
                    product.Description = (String)(dr["Description"]);
                }
                product.Stock = (int)(dr["stock"]);

                menuProducts.Add(product);
            }

            return(menuProducts);
        }
示例#6
0
        public ActionResult DeleteConfirmed(int id)
        {
            MenuProduct menuProduct = db.MenuProducts.Find(id);

            db.MenuProducts.Remove(menuProduct);
            db.SaveChanges();
            return(RedirectToAction("Details", "Menus", new { Id = menuProduct.MenuId }));
        }
示例#7
0
 private void PopulateMenu(CreateMenuItemViewModel createMenuItemViewModel, MenuProduct menuProduct)
 {
     menuProduct.Name            = createMenuItemViewModel.Name;
     menuProduct.PreparationTime = createMenuItemViewModel.PreparationTime;
     menuProduct.Price           = createMenuItemViewModel.Price;
     menuProduct.CategoryId      = createMenuItemViewModel.CategoryId;
     menuProduct.ProductCodeId   = createMenuItemViewModel.ProductCodeId;
 }
示例#8
0
 public static int AddProduct(MenuProduct menuProduct)
 {
     using (var entities = new ITowerCafeDBEntities())
     {
         entities.MenuProducts.Add(menuProduct);
         entities.SaveChanges();
         return(menuProduct.Id);
     }
 }
示例#9
0
        private void btnUpdateStock_Click(object sender, EventArgs e)
        {
            try
            {
                if (txtNewStockValue.Text == "" || (listViewStock.SelectedItems.Count == 0 && listViewStock.CheckedItems.Count == 0))
                {
                    return;
                }
                else if (!double.TryParse(txtNewStockValue.Text, out double parsedValue))
                {
                    MessageBox.Show("Voer alleen nummers in voor voorraad!", "Foutmelding");
                }
                else
                {
                    MenuProduct_Service stockService = new MenuProduct_Service();

                    // Update stock with the new data
                    foreach (ListViewItem selectedItem in listViewStock.SelectedItems)
                    {
                        MenuProduct p = (MenuProduct)selectedItem.Tag;

                        stockService.EditStock(p.MenuItemCode, int.Parse(txtNewStockValue.Text));
                    }
                    foreach (ListViewItem selectedItem in listViewStock.CheckedItems)
                    {
                        MenuProduct p = (MenuProduct)selectedItem.Tag;
                        stockService.EditStock(p.MenuItemCode, int.Parse(txtNewStockValue.Text));
                    }

                    // Notify user if adding product was succesful
                    //MessageBox.Show("Editing stock completed!");

                    // Updates listview
                    if (kitchenStockButtonClicked)
                    {
                        AddKitchenStockToList("listViewStock");
                        kitchenStockButtonClicked = false;
                    }
                    else if (barStockButtonClicked)
                    {
                        AddBarStockToList("listViewStock");
                        barStockButtonClicked = false;
                    }
                    else
                    {
                        AddStockToList("listViewStock");
                    }
                    txtNewStockValue.Clear();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
示例#10
0
        public void addMenuProduct()
        {
            decimal expectedMenuProductPrice = 6;
            Product p = new Product {
                Description = "Latte"
            };
            Menu        m  = new Menu();
            MenuProduct mp = m.AddMenuProduct(p, expectedMenuProductPrice);

            Assert.AreEqual(expectedMenuProductPrice, mp.Price);
        }
示例#11
0
        public async Task AddAsync(ProductInputViewModel model)
        {
            var product = new MenuProduct()
            {
                Name        = model.Name,
                CategoryId  = model.CategoryId,
                Description = model.Description,
                HasExtras   = model.HasExtras,
                Sizes       = new List <ProductSize>()
                {
                },
            };

            foreach (var item in model.Allergens)
            {
                product.Allergens.Add(new AllergensProducts()
                {
                    ProductId  = product.Id,
                    AllergenId = item,
                });
            }

            foreach (var size in model.Sizes)
            {
                if (string.IsNullOrEmpty(size.SizeName))
                {
                    continue;
                }

                product.Sizes.Add(
                    new ProductSize()
                {
                    SizeName             = size.SizeName,
                    PackageId            = size.PackageId,
                    Price                = size.Price,
                    Weight               = size.Weight,
                    MaxProductsInPackage = size.MaxProductsInPackage,
                    MenuProductId        = product.Id,
                    MistralCode          = size.MistralCode,
                    MistralName          = size.MistralName,
                });
            }

            if (model.Image != null)
            {
                product.ImageUrl = await this.cloudService.UploadImageFromForm(model.Image);

                //await this.imageService.AddImage(model.Image, this.categoriesRepository.All().Where(c => c.Id == model.CategoryId).FirstOrDefault()?.Name);
            }

            await this.productsRepo.AddAsync(product);

            await this.productsRepo.SaveChangesAsync();
        }
示例#12
0
        public MenuProduct AddMenuProduct(Guid categoryId, Guid pdId)
        {
            var productDesciprtion = FetchCategoryProductDescription(categoryId, pdId);

            if (productDesciprtion == null)
            {
                throw new Exception("invalid product description");
            }

            var menuProduct = new MenuProduct(this.Id, pdId);
            MenuProducts.Add(menuProduct);
            return menuProduct;
        }
示例#13
0
        public void increseQuentity()
        {
            decimal     expectedQty = 2;
            Sale        s           = new OTCSale();
            MenuProduct m1          = new MenuProduct {
                Price = 3
            };

            s.AddSaleLineItem(m1);
            SaleLineItem sli = s.AddSaleLineItem(m1);

            Assert.AreEqual(expectedQty, sli.Quantity);
        }
示例#14
0
        public ActionResult Create([Bind(Include = "MenuProductId,ProductId,cookingTime,MenuId,ProductPrice")] MenuProduct menuProduct)
        {
            if (ModelState.IsValid)
            {
                db.MenuProducts.Add(menuProduct);
                db.SaveChanges();
                return(RedirectToAction("Details", "Menus", new { Id = menuProduct.MenuId }));
            }

            ViewBag.MenuId    = new SelectList(db.Menus, "MenuId", "Name", menuProduct.MenuId);
            ViewBag.ProductId = new SelectList(db.Products, "ProductId", "ProductName", menuProduct.ProductId);
            return(View(menuProduct));
        }
示例#15
0
        // Edits selected existing menu product on button click
        private void btnEditExistingProduct_Click(object sender, EventArgs e)
        {
            try
            {
                if (txtEditProductName.Text == "" || txtEditProductPrice.Text == "" || cmBxEditMenuCategory.Text == "")
                {
                    MessageBox.Show("Vul a.u.b alle velden in.", "Foutmelding");
                }
                else if (listViewEmployees.CheckedItems.Count > 1 || listViewEmployees.SelectedItems.Count > 1)
                {
                    MessageBox.Show("Selecteer één product.", "Foutmelding");
                }
                else
                {
                    List <MenuProduct> productList = menuProduct_Service.GetAllProducts();

                    // Edits product in the database
                    MenuProduct mp = (MenuProduct)listViewChangeMenu.SelectedItems[0].Tag;

                    menuProduct_Service.EditMenuProduct(mp.MenuItemCode, txtEditProductName.Text, txtEditProductDescription.Text, double.Parse(txtEditProductPrice.Text), cmBxEditMenuCategory.Text);

                    // Clears textboxes
                    txtEditProductName.Clear();
                    txtEditProductDescription.Clear();
                    txtEditProductPrice.Clear();
                    cmBxEditMenuCategory.ResetText();

                    // Refreshes listview
                    // Updates listview
                    if (kitchenMenuButtonClicked)
                    {
                        AddKitchenMenuToList("listViewChangeMenu");
                        kitchenStockButtonClicked = false;
                    }
                    else if (barMenuButtonClicked)
                    {
                        AddBarMenuToList("listViewChangeMenu");
                        barStockButtonClicked = false;
                    }
                    else
                    {
                        AddMenuToList("listViewChangeMenu");
                    }
                    ShowPanel("ChangeMenu");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
示例#16
0
 public ActionResult Edit([Bind(Include = "MenuProductId,ProductId,cookingTime,MenuId,ProductPrice")] MenuProduct menuProduct)
 {
     if (ModelState.IsValid)
     {
         db.Entry(menuProduct).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Details", "Menus", new { Id = menuProduct.MenuId }));
     }
     menuProduct.Menu         = db.Menus.Find(menuProduct.MenuId);
     menuProduct.Menu.Company = db.Companies.Find(menuProduct.Menu.CompanyId);
     ViewBag.MenuId           = new SelectList(db.Menus, "MenuId", "Name", menuProduct.MenuId);
     ViewBag.ProductId        = new SelectList(db.Products, "ProductId", "ProductName", menuProduct.ProductId);
     return(View(menuProduct));
 }
示例#17
0
        public void saleTotal()
        {
            decimal     expectedTotal = 8;
            Sale        s             = new OTCSale();
            MenuProduct m1            = new MenuProduct {
                Price = 3
            };
            MenuProduct m2 = new MenuProduct {
                Price = 5
            };

            s.AddSaleLineItem(m1);
            s.AddSaleLineItem(m2);
            Assert.AreEqual(expectedTotal, s.SaleTotal);
        }
示例#18
0
        public void saleChange()
        {
            decimal     expectedChange = 2;
            Sale        s  = new OTCSale();
            MenuProduct m1 = new MenuProduct {
                Price = 3
            };
            MenuProduct m2 = new MenuProduct {
                Price = 5
            };

            s.AddSaleLineItem(m1);
            s.AddSaleLineItem(m2);
            s.AddCashPayment(10);
            Assert.AreEqual(expectedChange, s.Change);
        }
示例#19
0
        // GET: MenuProducts/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            MenuProduct menuProduct = db.MenuProducts.Find(id);

            if (menuProduct == null)
            {
                return(HttpNotFound());
            }
            menuProduct.Menu         = db.Menus.Find(menuProduct.MenuId);
            menuProduct.Menu.Company = db.Companies.Find(menuProduct.Menu.CompanyId);
            menuProduct.Product      = db.Products.Find(menuProduct.ProductId);
            return(View(menuProduct));
        }
示例#20
0
        // GET: MenuProducts/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            MenuProduct menuProduct = db.MenuProducts.Find(id);

            if (menuProduct == null)
            {
                return(HttpNotFound());
            }
            menuProduct.Menu         = db.Menus.Find(menuProduct.MenuId);
            menuProduct.Menu.Company = db.Companies.Find(menuProduct.Menu.CompanyId);
            ViewBag.ProductId        = new SelectList(db.Products, "ProductId", "ProductName", menuProduct.ProductId);
            return(View(menuProduct));
        }
示例#21
0
        // Adds current menuproduct to a class
        private MenuProduct ReadTableRow(DataTable dataTable)
        {
            MenuProduct menuproduct = new MenuProduct();

            foreach (DataRow dr in dataTable.Rows)
            {
                menuproduct = new MenuProduct()
                {
                    MenuItemCode = (int)dr["MenuItem_ID"],
                    Name         = (string)(dr["Name"].ToString()),
                    Description  = (string)(dr["Description"].ToString()),
                    Stock        = (int)dr["Stock"],
                    Price        = (double)dr["Price"],
                    Category     = (string)(dr["Category"].ToString())
                };
            }
            return(menuproduct);
        }
示例#22
0
        // Adds all of stock to a list
        private List <MenuProduct> ReadTables(DataTable dataTable)
        {
            List <MenuProduct> stock = new List <MenuProduct>();

            foreach (DataRow dr in dataTable.Rows)
            {
                MenuProduct menuItem = new MenuProduct()
                {
                    MenuItemCode = (int)dr["MenuItem_ID"],
                    Name         = (String)(dr["Name"].ToString()),
                    Description  = (String)(dr["Description"].ToString()),
                    Stock        = (int)dr["Stock"],
                    Price        = (double)dr["Price"],
                    Category     = (String)(dr["Category"].ToString())
                };
                stock.Add(menuItem);
            }
            return(stock);
        }
 private void buttonAddProductMenu_Click(object sender, EventArgs e)
 {
     try
     {
         var menuProduct = new MenuProduct()
         {
             Category         = comboBoxMenuProductCategory.Text,
             Name             = textBoxMenuProductName.Text,
             AmountOfCalories = int.Parse(textBoxMenuProductAmountOfCalories.Text),
             Price            = int.Parse(textBoxMenuProductPrice.Text)
         };
         _writeMenuProductRepository.Create(menuProduct);
         ShowMenuProducts();
     }
     catch (Exception)
     {
         MessageBox.Show(@"Błędne/niepełne dane produktu menu!");
     }
     ClearTextBoxes();
 }
        private int CheckCompany(Company c, List <MenuProduct> products)
        {
            MenuProduct[] myProducts = new MenuProduct[products.Count];
            products.CopyTo(myProducts);
            var myProdsList = myProducts.ToList();
            int sum         = 0;

            foreach (var menu in c.Menus)
            {
                for (var i = myProdsList.Count - 1; i >= 0; i--)
                {
                    var p = myProdsList[i];
                    if (menu.MenuProducts.Any(innerP => innerP.ProductId == p.ProductId))
                    {
                        myProdsList.Remove(p);
                        sum += menu.MenuProducts.Where(innerP => innerP.ProductId == p.ProductId).FirstOrDefault().ProductPrice;
                    }
                }
            }
            return(sum);
        }
示例#25
0
        public ActionResult Create(int menuId, int companyId, CreateMenuItemViewModel createMenuItemViewModel)
        {
            if (ModelState.IsValid)
            {
                var menuProduct = new MenuProduct();
                PopulateMenu(createMenuItemViewModel, menuProduct);

                int productId = MenuService.AddProduct(menuProduct);

                MenuService.AddMenuMapping(new MenuProductsMap
                {
                    MenuId        = menuId,
                    MenuProductId = productId
                });
                return(RedirectToAction("Details", "Company", new { id = companyId }));
            }

            ViewBag.MenuId = menuId;

            PopulateSelectLists(createMenuItemViewModel);

            return(View(createMenuItemViewModel));
        }
 public SaleLineItem(Sale sale, MenuProduct menuProduct)
 {
     Sale = sale;
     Quantity = 1;
     MenuProduct = menuProduct;
 }