private bool SearchEmpty(JsonSearchView filter) { bool _empty = false; if (string.IsNullOrEmpty(filter.Warehouse) && string.IsNullOrEmpty(filter.Category) && string.IsNullOrEmpty(filter.Status)) { _empty = true; } return(_empty); }
private SearchView ParseJsonToSearch(JsonSearchView json) { SearchView search = new SearchView(); if (!string.IsNullOrEmpty(json.Category)) { search.Category = Convert.ToInt32(json.Category); } if (!string.IsNullOrEmpty(json.Warehouse)) { search.Warehouse = Convert.ToInt32(json.Warehouse); } if (!string.IsNullOrEmpty(json.Status)) { search.Status = Convert.ToInt32(json.Status); } return(search); }
public ActionResult Search(JsonSearchView search) { if (search == null) { RedirectToAction("RenderTable"); } SearchView _search = ParseJsonToSearch(search); var products = from p in db.Products.Include(p => p.Description).Include(p => p.Category).Include(p => p.Category.Parent).Include(p => p.Warehouse).ToList() where Category(p) && Warehouse(p) && Status(p) select p; bool Category(Product p) { if (_search.Category != null) { if (p.Category == null) { return(false); } else { if (p.Category.Id == _search.Category || (p.Category.Parent != null && p.Category.Parent.Id == _search.Category)) { return(true); } else { return(false); } } } else { return(true); } } bool Warehouse(Product p) { if (_search.Warehouse != null) { if (p.Warehouse == null) { return(false); } else { return(p.Warehouse.Id == _search.Warehouse); } } else { return(true); } } bool Status(Product p) { if (_search.Status != null) { if (p.Description == null) { return(false); } else { return(p.Description.StatusId == _search.Status); } } else { return(true); } } string id = String.Empty; if (!SearchEmpty(search)) { foreach (var item in products) { id += item.Id + " "; } if (id == "") { Session["filteredValue"] = "NotFound"; } else { Session["filteredValue"] = id; } } else { Session["filteredValue"] = string.Empty; } var roles = GetCurrentUserRoles(); if (roles.Contains("Moderator") || roles.Contains("Admin")) { return(PartialView("_TablePartial", GetList())); } else if (roles.Contains("Rater")) { return(PartialView("_TableRater", GetList())); } else if (roles.Contains("Client")) { return(PartialView("_TableClient", GetList().Where(p => string.IsNullOrEmpty(p.Reserved)))); } else if (roles.Contains("Partner")) { return(PartialView("_TablePartner", GetList().Where(p => string.IsNullOrEmpty(p.Reserved) || p.Reserved == User.Identity.Name))); } else { return(PartialView("_TableDefault", GetList())); } }