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 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 })); }