Пример #1
0
        public ActionResult List(PagerRequest request, UserAuthSearchOption search)
        {
            int totalCount;
            var data = _authRepo.Get(e => (!search.Type.HasValue || e.Type == search.Type.Value)
                                            && (!search.BrandId.HasValue || e.BrandId == search.BrandId.Value)
                                            && (!search.StoreId.HasValue || e.StoreId == search.StoreId.Value)
                                            && (!search.UserId.HasValue || e.UserId == search.UserId.Value)
                                               && 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:
                                                         case GenericOrder.OrderByCreateDate:
                                                         default:
                                                             return e.OrderByDescending(o => o.CreatedDate);

                                                     }
                                                 }
                                                
                                             });

            var models =  data.Join(_customerRepo.GetAll(),o=>o.UserId,i=>i.Id,(o,i)=>new {UA=o,U=i})
                           .GroupJoin(_storeRepo.GetAll(),o=>o.UA.StoreId,i=>i.Id,(o,i)=>new {UA=o.UA,U=o.U,S=i.FirstOrDefault()})
                           .GroupJoin(_brandRep.GetAll(),o=>o.UA.BrandId,i=>i.Id,(o,i)=>new {UA=o.UA,U=o.U,S=o.S,B=i.FirstOrDefault()})
                           .ToList()
                           .Select(o=>new UserAuthViewModel(){
                             Id = o.UA.Id
                             , BrandId = o.UA.BrandId
                             , StoreId = o.UA.StoreId
                             , Type = o.UA.Type
                             , BrandName = o.B==null?"所有":o.B.Name
                             , UserId = o.UA.UserId
                             ,UserNick = o.U.Nickname
                             , StoreName = o.S == null ? "所有" : o.S.Name
                             ,Status = o.UA.Status.Value
                           });
                              

            return View("List", new Pager<UserAuthViewModel>(request, totalCount) { Data=models.ToList()});
        }
Пример #2
0
 public ActionResult Index(PagerRequest request,UserAuthSearchOption search)
 {
     return List(request,search);
 }