public bool UpdateRelatingFilters(ScrollLineDTO scroll, ref IList <CheckListFilter> filters, EnumTypeFilterMenu typeFilter)
        {
            if (scroll == null)
            {
                return(false);
            }

            //build lambda expression basic on active filter(linqKit)
            var finalPredicate = filters.Where(x => x.ActiveFilter).Aggregate(
                PredicateBuilder.New <krt_Naftan_orc_sapod>().And(x => x.keykrt == scroll.KEYKRT),
                (current, innerItemMode) => current.And(innerItemMode.FilterByField <krt_Naftan_orc_sapod>())
                );

            foreach (var item in filters)
            {
                item.CheckedValues = this._engage.GetGroup(PredicateExtensions.GroupPredicate <krt_Naftan_orc_sapod>(item.FieldName).Expand(), finalPredicate.Expand()).Select(x => x.ToString());
            }

            return(true);
        }
Exemple #2
0
        public ActionResult FilterMenu(int numberScroll, int reportYear, IList <CheckListFilter> filters, EnumTypeFilterMenu typeFilter)
        {
            var findKrt = this._bussinesEngage.GetNomenclatureByNumber(numberScroll, reportYear);

            //update filters base on active filter new values
            if (this.Request.IsAjaxRequest() && this._bussinesEngage.UpdateRelatingFilters(findKrt, ref filters, typeFilter))
            {
                //return Json(filters, JsonRequestBehavior.DenyGet);
                return(this.PartialView("_FilterMenu", filters));
            }

            this.ModelState.AddModelError("Menu", @"Ошибка в работе фильтров!");
            this.TempData["message"] = @"Ошибка возникла в работе фильтров!";

            return(this.RedirectToAction("Index", "Scroll", new RouteValueDictionary()
            {
                { "page", 1 }
            }));
        }