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));
 }