public ActionResult Index(MaterialRequest request,int? id)
 {
     this.ViewData["BasisDataService"] = this.BasisDataService;
     if (id > 0)
     {
         return View(this.BasisDataService.GetMaterialList(new MaterialRequest(){ ClassificationID=id}));
     }
     else {
     //var materialList = this.BasisDataService.GetMaterialList(new MaterialRequest());
     //this.ViewBag.ChannelId = new SelectList(classList, "ID", "Name");
     var result = this.BasisDataService.GetMaterialList(request);
     return View(result);
     }
 }
        public IEnumerable<Material> GetMaterialList(MaterialRequest request = null)
        {
            request = request ?? new MaterialRequest();
            using (var dbContext = new BasisDataDbContext())
            {
                IQueryable<Material> material = dbContext.Materials;

                if (!string.IsNullOrEmpty(request.Name))
                    material = material.Where(u => u.Name.Contains(request.Name));

                if (request.ClassificationID > 0)
                    material = material.Where(u => u.ClassificationID == request.ClassificationID);
                if (request.IsAvailability != null)
                {
                    material = material.Where(u => u.IsAvailability == request.IsAvailability);
                }

                return material.OrderByDescending(u => u.ID).ToPagedList(request.PageIndex, request.PageSize);
            }
        }