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() })); }
public ActionResult Index(PagerRequest request, UserAuthSearchOption search) { return(List(request, search)); }