public ActionResult Index(string SearchString) { string currentUser = User.Identity.GetUserId(); string currentUserEmail = User.Identity.GetUserName(); var owned = db.Inventories.Where(s => s.UserId == currentUser).Select(InventoryViewModel.GetInstantiator(currentUser, currentUserEmail)); var shared = db.Inventories.Where(inv => inv.SharedUsers.Where(e => e.Email == currentUserEmail).Any()).Select(InventoryViewModel.GetInstantiator(currentUser, currentUserEmail)); if (!String.IsNullOrEmpty(SearchString)) { owned = owned.Where(s => s.Name.ToLower().Contains(SearchString.ToLower())); shared = shared.Where(s => s.Name.ToLower().Contains(SearchString.ToLower())); } return(View(new InventoryListViewModel { Owned = owned.ToList(), Shared = shared.ToList() })); }
public ActionResult Edit(int?id) { string currentUser = User.Identity.GetUserId(); string currentUserEmail = User.Identity.GetUserName(); if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } InventoryViewModel inventory = db.Inventories.Where(e => e.Id == id).Select(InventoryViewModel.GetInstantiator(currentUser, currentUserEmail)).SingleOrDefault(); if (inventory == null) { return(HttpNotFound()); } return(View(inventory)); }
public ActionResult Open(int id, string searchString, string itemCategory, string itemType, string itemSize) { string currentUser = User.Identity.GetUserId(); string currentUserEmail = User.Identity.GetUserName(); InventoryViewModel inventory = db.Inventories.Include(inv => inv.Items).Where(inv => inv.Id == id && (inv.UserId == currentUser || inv.SharedUsers.Any(s => s.Email == currentUserEmail))).Select(InventoryViewModel.GetInstantiator(currentUser, currentUserEmail)).SingleOrDefault(); var categories = inventory.Items.Select(e => e.Category).Distinct().OrderBy(e => e); ViewBag.itemCategory = new SelectList(categories); var types = inventory.Items.Select(e => e.Type).Distinct().OrderBy(e => e); ViewBag.itemType = new SelectList(types); var size = inventory.Items.Select(e => e.Size == null ? "N/A" : e.Size).Distinct().OrderBy(e => e); ViewBag.itemSize = new SelectList(size); if (inventory == null || inventory.Permission == null) { return(HttpNotFound()); } if (!String.IsNullOrEmpty(searchString)) { inventory.Items = inventory.Items.Where(s => s.Name.ToLower().Contains(searchString.ToLower())).ToList(); } if (!string.IsNullOrEmpty(itemCategory)) { inventory.Items = inventory.Items.Where(s => s.Category.Trim().Equals(itemCategory.Trim(), StringComparison.InvariantCultureIgnoreCase)).ToList(); } if (!string.IsNullOrEmpty(itemType)) { inventory.Items = inventory.Items.Where(s => s.Type.Trim().Equals(itemType.Trim(), StringComparison.InvariantCultureIgnoreCase)).ToList(); } if (!string.IsNullOrWhiteSpace(itemSize)) { inventory.Items = inventory.Items.Where(s => itemSize == "N/A" && s.Size == null || s.Size.Trim().Equals(itemSize.Trim(), StringComparison.InvariantCultureIgnoreCase)).ToList(); } return(View(inventory)); }