public PagedActionResult <MemberCardType> Search([FromUri] MemberCardTypeFilter filter) { return(SafeGetPagedData <MemberCardType>((result) => { if (!ModelState.IsValid)//表示没有过滤参数成功匹配,判定为错误请求。 { throw new DomainException("查询参数错误。"); } int totalCount = 0; var pagedData = this.MemberCardTypeService.Search(filter, out totalCount); result.Data = pagedData; result.TotalCount = totalCount; })); }
/// <summary> /// 查询卡片类型 /// </summary> /// <param name="filter">过滤条件</param> /// <param name="totalCount">总记录数</param> /// <returns></returns> /// <exception cref="System.NotImplementedException"></exception> public IEnumerable <MemberCardType> Search(MemberCardTypeFilter filter, out int totalCount) { IEnumerable <MemberCardType> pagedData = null; var queryable = this.Repository.GetQueryable(false); if (filter != null) { if (!string.IsNullOrEmpty(filter.Name)) { queryable = queryable.Where(t => t.Name.Contains(filter.Name)); } if (filter.AllowStoreActivate.HasValue) { queryable = queryable.Where(t => t.AllowStoreActivate == filter.AllowStoreActivate.Value); } if (filter.AllowDiscount.HasValue) { queryable = queryable.Where(t => t.AllowDiscount == filter.AllowDiscount.Value); } if (filter.AllowRecharge.HasValue) { queryable = queryable.Where(t => t.AllowRecharge == filter.AllowRecharge.Value); } } queryable = queryable.OrderBy(t => t.CreatedDate); if (filter != null && filter.Start.HasValue && filter.Limit.HasValue) { totalCount = queryable.Count(); pagedData = queryable.Skip(filter.Start.Value).Take(filter.Limit.Value).ToArray(); } else { pagedData = queryable.ToArray(); totalCount = pagedData.Count(); } return(pagedData); }