public ActionResult List(PagerRequest request,BrandListSearchOption search, int? sort) { int totalCount; var linq = _brandRepository.Get(e => (!search.PId.HasValue || e.Id == search.PId.Value) && (string.IsNullOrEmpty(search.Name) || e.Name.ToLower().StartsWith(search.Name.ToLower())) && e.Status != (int)DataStatus.Deleted , out totalCount , request.PageIndex , request.PageSize , e => { if (!search.OrderBy.HasValue) return e.OrderByDescending(o => o.CreatedDate); else { switch (search.OrderBy.Value) { case GenericOrder.OrderByCreateUser: return e.OrderByDescending(o => o.CreatedUser); case GenericOrder.OrderByName: return e.OrderByDescending(o => o.Name); case GenericOrder.OrderByCreateDate: default: return e.OrderByDescending(o => o.CreatedDate); } } }); var data = linq.GroupJoin(_resourceRepository.Get(r => r.SourceType == (int)SourceType.BrandLogo), o => o.Id, i => i.SourceId, (o, i) => new { S = o,R = i}); var brands = from s in data.ToList() select new BrandViewModel().FromEntity<BrandViewModel>(s.S, b => (b as BrandViewModel).Resource= new ResourceViewModel().FromEntity<ResourceViewModel>(s.R.FirstOrDefault())); var v = new BrandCollectionViewModel(request, totalCount) { Brands = brands.ToList() }; return View("List", v); }
public ActionResult Index(PagerRequest request, BrandListSearchOption search, int? sort) { return List(request,search, sort); }