public IActionResult Register(RegisterViewModel model) { if (ModelState.IsValid) { PubUsers user = _context.AddPubUser(new PubUsers { UserFirstName = model.UserFirstName, UserLastName = model.UserLastName, UserPassword = model.UserPassword, UserAccessRank = UserAccessRank.Customer }); if (!(user == null)) { //User created, ID stored in result ViewBag.LogInError = false; //---------LOG IN USER--------- if (LogInUser(user) == false) { ViewBag.LogInError = true; } ViewBag.User = user; return(View("RegistrationSuccess")); } else { ModelState.AddModelError("", "An error occured, could not create a new account."); //ERROR, user not created } } return(View(model)); }
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")); }
private bool LogInUser(PubUsers User) { //string UniqueFileName = Guid.NewGuid().ToString(); string SessionString = HttpContext.Session.GetString("PubSession"); if (SessionString != null) //session already exists, put user in existing session { PubSessions Session = _context.GetPubSession(SessionString); if (Session != null) { int OrderBasketID; if (User.UserOrderBasketID > 0) { OrderBasketID = User.UserOrderBasketID; } else { OrderBasketID = Session.OrderBasketId; if (_context.UpdatePubUserOrderBasket(User.UserId, OrderBasketID) == false) { return(false); } } if (_context.UpdatePubSession(SessionString, User.UserId, OrderBasketID)) { return(true); } else { //error return(false); } } } //create session with user SessionString = _context.AddPubSession(User.UserId, User.UserOrderBasketID); if (SessionString != null) { HttpContext.Session.SetString("PubSession", SessionString); return(true); } else { ModelState.AddModelError("ERROR", "An Error has occoured, you could not be logged in."); return(false); } }
public IActionResult Index(int?UserID, int?PageNumber) //get user id { 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 { int?ID; if (pubUser.UserAccessRank == Models.Enum.UserAccessRank.Admin) { if (UserID != null && UserID > 0) { ID = UserID; } else { ID = null; } } else { ID = pubUser.UserId; } int pageNumber = PageNumber ?? 0; ViewBag.UserAccessRank = pubUser.UserAccessRank; ViewBag.PubOrdersViewModel = _context.GetPubOrders(ID, pageNumber); return(View(new FilterOrdersViewModel { UserID = ID, PageNumber = pageNumber })); } } } } return(RedirectToAction("Index", "Home")); }
public IActionResult Order(int?id) { object data; TempData.TryGetValue("ToastMessage", out data); if (data != null) { ViewBag.Toast = JsonSerializer.Deserialize <ToastAlertViewModel>(data as string); } if (id != null && id > 0) //check that user has given an id and that the ID given is bigger than 0 (all ids are bigger than 0) { var Session = HttpContext.Session.GetString("PubSession"); //user must be logged in to view an order 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 pubUsers = _context.GetPubUser(pubSession.UserId); if (pubUsers != null) { Get_PubOrderViewModel OrderDetails = _context.GetPubOrder((int)id); if (OrderDetails != null && (OrderDetails.UserId == pubUsers.UserId || pubUsers.UserAccessRank == Models.Enum.UserAccessRank.Admin)) //only logged in user and admins are allowed to view. { OrderViewModel orderViewModel = new OrderViewModel { OrderDetails = OrderDetails, OrderItems = _context.GetPubOrderItems((int)id) }; ViewBag.LoggedInUserID = pubUsers.UserId; ViewBag.UserAccessRank = pubUsers.UserAccessRank; return(View(orderViewModel)); } } } } } } return(RedirectToAction("Index", "Home")); }
public IActionResult Create() { 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 { return(View(new CreateItemViewModel())); } } } } return(RedirectToAction("Index", "Home")); }
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 CancelOrder(int id) { if (id > 0) //all ids are bigger than 0 { var Session = HttpContext.Session.GetString("PubSession"); //user must be logged in to view an order 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 pubUsers = _context.GetPubUser(pubSession.UserId); //fetch logged in user.... if (pubUsers != null) //if user exists... { Get_PubOrderViewModel Order = _context.GetPubOrder(id); if (Order != null) { if (Order.UserId == pubUsers.UserId) { if (_context.RemovePubOrder(id)) { ViewBag.RemovedOrderID = id; return(View()); } } TempData["ToastMessage"] = JsonSerializer.Serialize(ToastAlert.Toast("Error", "Error: Could not cancel order.")); return(RedirectToAction("Order", new { id })); } } } } } } TempData["ToastMessage"] = JsonSerializer.Serialize(ToastAlert.DefaultError()); return(RedirectToAction("Index", "Home")); }
public IActionResult Index(string ItemName, ItemTypes?ItemType, bool?ItemOnSale, int?PageNumber) //as this is the default view, only show items on sale { 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; } } } } ViewBag.UserAccessRank = userAccessRank; PubItemsViewModel model; if (userAccessRank == UserAccessRank.Admin) //if admin then admin can specify if items are on sale or not. { if (ItemType == null) { model = _context.GetPubItems(ItemName, ItemOnSale ?? true, PageNumber ?? 0); //true - get only items on sale } else { model = _context.GetPubItems(ItemName, ItemOnSale ?? true, PageNumber ?? 0, (ItemTypes)ItemType); //true - get only items on sale } if (model != null) { ViewBag.PubItemsViewModel = model; } } else //if not admin items will always be on sale { if (ItemType == null) { model = _context.GetPubItems(ItemName, true, PageNumber ?? 0); //true - get only items on sale } else { model = _context.GetPubItems(ItemName, true, PageNumber ?? 0, (ItemTypes)ItemType); //true - get only items on sale } if (model != null) { ViewBag.PubItemsViewModel = model; } } TempData.TryGetValue("ToastMessage", out object data); if (data != null) { ViewBag.Toast = JsonSerializer.Deserialize <ToastAlertViewModel>(data as string); } return(View(new FilterItemsViewModel() { ItemName = ItemName, ItemOnSale = ItemOnSale ?? true, ItemType = ItemType ?? null, PageNumber = PageNumber ?? 0 })); }