public IActionResult Create(CreateItemViewModel model) { if (ModelState.IsValid) { string UniqueFileName = ProcessUploadedFile(model); PubItems newItem = _context.AddPubItem(new PubItems() { ItemName = model.ItemName, ItemType = model.ItemType, ItemPrice = model.ItemPrice, ItemImagePath = UniqueFileName, ItemDescription = model.ItemDescription, ItemOnSale = model.ItemOnSale, ItemStock = model.ItemStock, }); if (!(newItem == null)) { return(RedirectToAction("Details", new { id = newItem.ItemId })); } else { ModelState.AddModelError("", "An error occured, could not create a new item."); //ERROR: item was not added } } return(View(model)); }
public IActionResult RemoveBasketItem(int id) //add order using an ajax request and return a partial view with toast message { if (id > 0) { PubItems Item = _context.GetPubItem(id); if (Item != null) { string Session = HttpContext.Session.GetString("PubSession"); //store session id if (Session != null) //if a session has been created { PubSessions pubSession = _context.GetPubSession(Session); //get session info if (pubSession != null) //session exists { if (pubSession.OrderBasketId != 0) { //add item PubOrderBasketItems basketItem = _context.GetPubOrderBasketItem(pubSession.OrderBasketId, id); if (basketItem != null) { if (_context.RemoveOrderBasketItem(pubSession.OrderBasketId, basketItem.ItemId)) { TempData["ToastMessage"] = JsonSerializer.Serialize(ToastAlert.Toast("Item Removed", String.Format("{0}x {1} has been removed from your basket", basketItem.ItemQuantity, Item.ItemName), Item.ItemImagePath)); return(RedirectToAction("OrderBasket")); } } } } } } } TempData["ToastMessage"] = JsonSerializer.Serialize(ToastAlert.DefaultError()); return(RedirectToAction("OrderBasket")); }
public IActionResult Details(int?id) { if (id != null && id > 0) { PubItems Item = _context.GetPubItem((int)id); if (Item != null) { UserAccessRank userAccessRank = UserAccessRank.Customer; var Session = HttpContext.Session.GetString("PubSession"); //user must be logged in to view orders if (Session != null) { PubSessions pubSession = _context.GetPubSession(Session); //get session info if (pubSession != null) //session exists { if (pubSession.UserId > 0) //if a user is logged in... { PubUsers pubUser = _context.GetPubUser(pubSession.UserId); if (pubUser != null) //if user exists { userAccessRank = pubUser.UserAccessRank; } } } } if (Item.ItemOnSale || userAccessRank == UserAccessRank.Admin) { ViewBag.UserAccessRank = userAccessRank; //get access rank as admins will be able be able to press a button to go to edit item page. ViewBag.Item = Item; return(View(new AddOrderItemViewModel())); } } } return(RedirectToAction("Index")); }
public IActionResult Edit(EditItemViewModel model) { var Session = HttpContext.Session.GetString("PubSession"); //user must be logged in to view orders if (Session != null) { PubSessions pubSession = _context.GetPubSession(Session); //get session info if (pubSession != null) //session exists { if (pubSession.UserId > 0) //if a user is logged in... { PubUsers pubUser = _context.GetPubUser(pubSession.UserId); if (pubUser != null && pubUser.UserAccessRank == UserAccessRank.Admin) //if user exists { if (ModelState.IsValid) //user is an admin, allow access to editing. { PubItems EditedItem = new PubItems() { ItemId = model.ItemID, ItemDescription = model.ItemDescription, ItemName = model.ItemName, ItemOnSale = model.ItemOnSale, ItemPrice = model.ItemPrice, ItemStock = model.ItemStock, ItemType = model.ItemType, ItemImagePath = model.ItemExistingImagePath }; if (model.ItemImage != null) { if (model.ItemExistingImagePath != null) { string existingFilePath = Path.Combine(webHostEnvironment.WebRootPath, "images", model.ItemExistingImagePath); System.IO.File.Delete(existingFilePath); } EditedItem.ItemImagePath = ProcessUploadedFile(model); } //int result = _context.AddPubItem(); if (_context.EditPubItem(EditedItem) == true) { return(RedirectToAction("Details", new { id = EditedItem.ItemId })); } else { ModelState.AddModelError("", "An error occured, could not create a new item."); //ERROR: item was not added } } return(View(model)); } } } } return(RedirectToAction("Index", "Home")); }
public IActionResult EditOrderItem(int itemID, int itemQuantity) { if (itemID > 0 && itemQuantity > 0) { string Session = HttpContext.Session.GetString("PubSession"); //store session id if (Session != null) //if a session has been created { PubSessions pubSession = _context.GetPubSession(Session); //get session info if (pubSession != null && pubSession.OrderBasketId != 0) //session and basket exists { int OrderBasketID = pubSession.OrderBasketId; PubItems PubItem = _context.GetPubItem(itemID); PubOrderBasketItems item = _context.GetPubOrderBasketItem(pubSession.OrderBasketId, itemID); if (item != null && PubItem != null) { //edit item if (itemQuantity <= PubItem.ItemStock) { if (itemQuantity <= GlobalConstants.MaxItemsPerOrder) { //edit if (_context.EditPubOrderBasketItem(OrderBasketID, itemID, itemQuantity)) { return(PartialView("ToastMessage", ToastAlert.Toast("Item Updated", string.Format("Changed {0} quantity to: {1}.", PubItem.ItemName, itemQuantity), PubItem.ItemImagePath))); } else { return(PartialView("ToastMessage", ToastAlert.DefaultError())); //error item could not be updated } } else { //max items error return(PartialView("ToastMessage", ToastAlert.ItemQuantityMaxError(PubItem.ItemImagePath))); } } else { return(PartialView("ToastMessage", ToastAlert.ItemQuantityStockError(PubItem.ItemImagePath))); //not enoguh in stock error } } } } } return(null); }
public IActionResult Index() { List <PubItems> RandomItems; PubItems randomSnack = _context.GetRandomPubItem(Models.Enum.ItemTypes.Snack, true); //get random item of type drink that is on sale. PubItems randomDrink = _context.GetRandomPubItem(Models.Enum.ItemTypes.Drink, true); if (randomSnack != null || randomDrink != null) { RandomItems = new List <PubItems> { randomDrink, randomSnack }; } else { RandomItems = null; } ViewBag.ViewItems = RandomItems; return(View(new AddOrderItemViewModel())); }
public IActionResult Edit(int?id) { if (id != null) { var Session = HttpContext.Session.GetString("PubSession"); //user must be logged in to view orders if (Session != null) { PubSessions pubSession = _context.GetPubSession(Session); //get session info if (pubSession != null) //session exists { if (pubSession.UserId > 0) //if a user is logged in... { PubUsers pubUser = _context.GetPubUser(pubSession.UserId); if (pubUser != null && pubUser.UserAccessRank == UserAccessRank.Admin) //if user exists and is an admin then allow access to edit page. { int itemID = (int)id; PubItems item = _context.GetPubItem(itemID); if (item != null) { EditItemViewModel model = new EditItemViewModel { ItemID = itemID, ItemExistingImagePath = item.ItemImagePath, ItemDescription = item.ItemDescription, ItemName = item.ItemName, ItemOnSale = item.ItemOnSale, ItemPrice = item.ItemPrice, ItemStock = item.ItemStock, ItemType = item.ItemType, }; return(View(model)); } } } } } } return(RedirectToAction("Index", "Home")); }
public IActionResult AddOrderItemPartial(int id, int?itemQuantity) //add order using an ajax request and return a partial view with toast message { if (id > 0) { int quantity = itemQuantity ?? 1; if (quantity != 0) { PubItems Item = _context.GetPubItem(id); if (Item != null) { if (Item.ItemOnSale) { if (quantity <= Item.ItemStock) { if (quantity > 0 && quantity <= GlobalConstants.MaxItemsPerOrder) //compare against max items per order only rather than item stock as well as the item stock may change when the user actually makes their order. { string Session = HttpContext.Session.GetString("PubSession"); //store session id int OrderBasketID = 0; if (Session != null) //if a session has been created { PubSessions pubSession = _context.GetPubSession(Session); //get session info if (pubSession != null) //session exists { if (pubSession.OrderBasketId != 0) { //add item OrderBasketID = pubSession.OrderBasketId; PubOrderBasketItems item = _context.GetPubOrderBasketItem(pubSession.OrderBasketId, id); if (item != null) { //edit item int newQuantity = quantity + item.ItemQuantity; if (newQuantity <= Item.ItemStock) { if (newQuantity <= GlobalConstants.MaxItemsPerOrder) { //edit if (_context.EditPubOrderBasketItem(OrderBasketID, id, newQuantity)) { return(PartialView("ToastMessage", ToastAlert.Toast("Item Added", String.Format("{0}x {1} was added to your basket. Total Quantity: {2}", quantity, Item.ItemName, newQuantity), Item.ItemImagePath))); } else { return(PartialView("ToastMessage", ToastAlert.DefaultError())); //error item could not be updated } } else { //max items error return(PartialView("ToastMessage", ToastAlert.ItemQuantityMaxError(Item.ItemImagePath))); } } else { return(PartialView("ToastMessage", ToastAlert.ItemQuantityStockError(Item.ItemImagePath))); //not enoguh in stock error } } } else { //create new orderbasket and add item OrderBasketID = _context.CreatePubSessionOrderBasket(Session, null); if (pubSession.UserId != 0) { if (_context.GetPubUser(pubSession.UserId) != null) { _context.UpdatePubUserOrderBasket(pubSession.UserId, OrderBasketID); } } } } else { //create a new session and orderbasket and add item Session = _context.AddPubSession(null, null); if (Session != null) { HttpContext.Session.SetString("PubSession", Session); OrderBasketID = _context.CreatePubSessionOrderBasket(Session, null); } } } else //create a new session and orderbasket and add item { Session = _context.AddPubSession(null, null); if (Session != null) { HttpContext.Session.SetString("PubSession", Session); OrderBasketID = _context.CreatePubSessionOrderBasket(Session, null); } } if (OrderBasketID != 0) { if (_context.AddPubOrderBasketItem(OrderBasketID, id, quantity)) { return(PartialView("ToastMessage", ToastAlert.Toast("Item Added", String.Format("{0}x {1} was added to your basket", quantity, Item.ItemName), Item.ItemImagePath))); } } } else { return(PartialView("ToastMessage", ToastAlert.ItemQuantityMaxError(Item.ItemImagePath))); } } else { return(PartialView("ToastMessage", ToastAlert.ItemQuantityStockError(Item.ItemImagePath))); } } else { //error item not on sale } } } } return(PartialView("ToastMessage", ToastAlert.DefaultError())); }
public IActionResult AddOrderItem(AddOrderItemViewModel model) //add order using view model request and redirect to index page of items with a toast message { if (ModelState.IsValid) { PubItems Item = _context.GetPubItem(model.ItemId); if (Item != null) { //Item exists in database. if (Item.ItemOnSale) { if (model.ItemQuantity <= Item.ItemStock) { if (model.ItemQuantity > 0 && model.ItemQuantity <= GlobalConstants.MaxItemsPerOrder) //compare against max items per order only rather than item stock as well as the item stock may change when the user actually makes their order. { string Session = HttpContext.Session.GetString("PubSession"); //store session id int OrderBasketID = 0; if (Session != null) //if a session has been created { PubSessions pubSession = _context.GetPubSession(Session); //get session info if (pubSession != null) //session exists { if (pubSession.OrderBasketId != 0) { //add item OrderBasketID = pubSession.OrderBasketId; PubOrderBasketItems item = _context.GetPubOrderBasketItem(pubSession.OrderBasketId, model.ItemId); if (item != null) { //edit item int newQuantity = model.ItemQuantity + item.ItemQuantity; if (newQuantity <= Item.ItemStock) { if (newQuantity <= GlobalConstants.MaxItemsPerOrder) { //edit if (_context.EditPubOrderBasketItem(OrderBasketID, model.ItemId, newQuantity)) { TempData["ToastMessage"] = JsonSerializer.Serialize(ToastAlert.Toast("Item Added", String.Format("{0}x {1} was added to your basket. Total Quantity: {2}", model.ItemQuantity, Item.ItemName, newQuantity), Item.ItemImagePath)); return(RedirectToAction("Index")); } else { TempData["ToastMessage"] = JsonSerializer.Serialize(ToastAlert.DefaultError()); return(RedirectToAction("Index")); //error item could not be updated } } else { //max items error TempData["ToastMessage"] = JsonSerializer.Serialize(ToastAlert.ItemQuantityMaxError(Item.ItemImagePath)); return(RedirectToAction("Index")); } } else { TempData["ToastMessage"] = JsonSerializer.Serialize(ToastAlert.ItemQuantityStockError(Item.ItemImagePath)); return(RedirectToAction("Index")); //not enoguh in stock error } } } else { //create new orderbasket and add item OrderBasketID = _context.CreatePubSessionOrderBasket(Session, null); if (pubSession.UserId != 0) { if (_context.GetPubUser(pubSession.UserId) != null) { _context.UpdatePubUserOrderBasket(pubSession.UserId, OrderBasketID); } } } } else { //create a new session and orderbasket and add item Session = _context.AddPubSession(null, null); if (Session != null) { HttpContext.Session.SetString("PubSession", Session); OrderBasketID = _context.CreatePubSessionOrderBasket(Session, null); } } } else //create a new session and orderbasket and add item { Session = _context.AddPubSession(null, null); if (Session != null) { HttpContext.Session.SetString("PubSession", Session); OrderBasketID = _context.CreatePubSessionOrderBasket(Session, null); } } if (OrderBasketID != 0) { if (_context.AddPubOrderBasketItem(OrderBasketID, model.ItemId, model.ItemQuantity)) { TempData["ToastMessage"] = JsonSerializer.Serialize(ToastAlert.Toast("Item Added", String.Format("{0}x {1} was added to your basket", model.ItemQuantity, Item.ItemName), Item.ItemImagePath)); return(RedirectToAction("Index")); } } } else { TempData["ToastMessage"] = JsonSerializer.Serialize(ToastAlert.ItemQuantityMaxError(Item.ItemImagePath)); return(RedirectToAction("Index")); } } else { TempData["ToastMessage"] = JsonSerializer.Serialize(ToastAlert.ItemQuantityStockError(Item.ItemImagePath)); return(RedirectToAction("Index")); } } else { //error item not on sale } } } TempData["ToastMessage"] = JsonSerializer.Serialize(ToastAlert.DefaultError()); return(RedirectToAction("Index")); }