示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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()));
            }
        }