public async Task <IActionResult> GetTousistRoutsAsync( [FromQuery] TouristRouteRequestParam param, [FromQuery] PagingRequestParam pagingRequestParam, [FromHeader(Name = "Accept")] string mediaTypeStr ) { if (!propertyMappingServer.ExistPropertys <TouristRoutDTO, TouristRout>(pagingRequestParam.OrderBy)) { return(BadRequest("排序参数设置错误!")); } if (!propertyMappingServer.ExistShapeFields <TouristRoutDTO>(param.Fields)) { return(BadRequest($"指定字段查询参数错误:{param.Fields}")); } var data = await TouristRoutRepo.GetTourisRoutsAsync(param, pagingRequestParam); if (data == null || data.Count() <= 0) { return(NotFound("没有找到旅游路线列表")); } else { var previousPageLink = data.HasPrevious ? CreateTousitRouteUrl(param, pagingRequestParam, ResourceUrlEnum.PreviousPage) : null; var nextPageLink = data.HasNextPage ? CreateTousitRouteUrl(param, pagingRequestParam, ResourceUrlEnum.NextPage) : null; //添加自定义分页导航信息(返回的头部信息) Response.Headers.Add("x-pagination", JsonConvert.SerializeObject(new { previousPageLink, nextPageLink, totalCount = data.TotalCount, pageSize = data.PageSize, pageNumber = data.CurrentPageNu, totalPages = data.TotalPage, })); var dataDto = _autoMapper.Map <IEnumerable <TouristRoutDTO> >(data); var shapeDataDtoList = dataDto.ShapeData(param.Fields); if (this.localConfigMedia == mediaTypeStr.Trim().ToLowerInvariant()) { var touristLinks = CreateLinkDtosForGetTourisRouts(param, pagingRequestParam); //函数式写法 int idx = 0; var shapeDataDtoListToList = shapeDataDtoList.ToList(); var shapeDataDtoLinqList = dataDto.Select(xt => { var toursitDic = shapeDataDtoListToList[idx] as IDictionary <string, object>; var links = CreateTouristRouteLinks(xt.ID, null); toursitDic.Add("links", links); idx++; return(toursitDic); }); var result = new { value = shapeDataDtoLinqList, links = touristLinks, }; return(Ok(result)); } return(Ok(shapeDataDtoList)); } }
public async Task <IActionResult> Get([FromQuery] PagingRequestParam param) { var result = await _examCourseService.GetAsync(pageIndex : param.PageIndex, pageSize : param.PageSize); if (result == null) { return(NotFound()); } return(Ok(result)); }
public async Task <IActionResult> Get([FromQuery] PagingRequestParam param) { var result = await _employeeService.GetAsync(pageIndex : param.PageIndex, pageSize : param.PageSize, filter : el => el.DelFlg != 1); if (result == null) { return(NotFound()); } return(Ok(result)); }
public async Task <IActionResult> GetFakeXiechenOrders([FromQuery] PagingRequestParam pagingRequestParam) { var userId = httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value; var orders = await routeRepository.GetUserOrdersByUidAsync(userId, pagingRequestParam); if (orders == null) { return(NotFound($"用户{userId}的订单信息不存在")); } return(Ok(mapper.Map <IEnumerable <UserOrderDto> >(orders))); }
private string CreateTousitRouteUrl( TouristRouteRequestParam param, PagingRequestParam pagingRequestParam, ResourceUrlEnum urlEnum ) { string url = string.Empty; switch (urlEnum) { case ResourceUrlEnum.PreviousPage: url = urlHelper.Link("GetTousistRoutsAsync", new { fields = param.Fields, orderBy = pagingRequestParam.OrderBy, keyWord = param.TitleKeyWord, rating = param.Rating, pageNumber = pagingRequestParam.PageNumber - 1, pageSize = pagingRequestParam.PageSize, }); break; case ResourceUrlEnum.NextPage: url = urlHelper.Link("GetTousistRoutsAsync", new { fields = param.Fields, orderBy = pagingRequestParam.OrderBy, keyWord = param.TitleKeyWord, rating = param.Rating, pageNumber = pagingRequestParam.PageNumber + 1, pageSize = pagingRequestParam.PageSize, }); break; case ResourceUrlEnum.CurrentPage: url = urlHelper.Link("GetTousistRoutsAsync", new { fields = param.Fields, orderBy = pagingRequestParam.OrderBy, keyWord = param.TitleKeyWord, rating = param.Rating, pageNumber = pagingRequestParam.PageNumber, pageSize = pagingRequestParam.PageSize, }); break; default: break; } return(url); }
//为多个类创建Linkdto资源 private IEnumerable <LinkDto> CreateLinkDtosForGetTourisRouts( TouristRouteRequestParam param, PagingRequestParam pagingRequestParam ) { List <LinkDto> touristLinkDtos = new List <LinkDto>(); touristLinkDtos.Add(new LinkDto( CreateTousitRouteUrl(param, pagingRequestParam, ResourceUrlEnum.CurrentPage), "self", "Get" )); //创建旅游资源链接 touristLinkDtos.Add(new LinkDto( Url.Link("CreateTouristRouteAsync", null), "Create_touristRoute", "Post" )); return(touristLinkDtos); }
public async Task <PagingList <TouristRout> > GetTourisRoutsAsync(TouristRouteRequestParam touristRouteParam, PagingRequestParam pagingRequestParam) { IQueryable <TouristRout> resultQueryable = FakeContext.TouristRout .Include(xt => xt.Pictures); if (!string.IsNullOrEmpty(touristRouteParam.TitleKeyWord)) { resultQueryable = resultQueryable.Where(xt => xt.Title.Contains(touristRouteParam.TitleKeyWord)); } if (touristRouteParam.RatingLogicType != LogicType.Null) { switch (touristRouteParam.RatingLogicType) { case LogicType.Null: break; case LogicType.LessThen: resultQueryable = resultQueryable.Where(xt => xt.Rating < touristRouteParam.RatingValue); break; case LogicType.EqualTo: resultQueryable = resultQueryable.Where(xt => xt.Rating == touristRouteParam.RatingValue); break; case LogicType.LargeThen: resultQueryable = resultQueryable.Where(xt => xt.Rating > touristRouteParam.RatingValue); break; case LogicType.LessAndEqual: resultQueryable = resultQueryable.Where(xt => xt.Rating <= touristRouteParam.RatingValue); break; case LogicType.LargeAndEqual: resultQueryable = resultQueryable.Where(xt => xt.Rating >= touristRouteParam.RatingValue); break; default: break; } } if (!string.IsNullOrEmpty(pagingRequestParam.OrderBy)) { //if (pagingRequestParam.OrderBy.ToLowerInvariant()== "OriginalPrice".ToLowerInvariant()) //{ // resultQueryable=resultQueryable.OrderBy(xt => xt.OriginalPrice); //} var touristRouteDic = propertyMappingServer.GetPropertyMapping <TouristRoutDTO, TouristRout>(); resultQueryable = resultQueryable.ApplySort(pagingRequestParam.OrderBy, touristRouteDic); } return(await PagingList <TouristRout> .CreatePagelistAsync(pagingRequestParam.PageNumber, pagingRequestParam.PageSize, resultQueryable)); }
public async Task <PagingList <UserOrder> > GetUserOrdersByUidAsync(string uid, PagingRequestParam pagingRequestParam) { var queryable = FakeContext.userOrders .Where(xt => xt.UserID == uid); return(await PagingList <UserOrder> .CreatePagelistAsync(pagingRequestParam.PageNumber, pagingRequestParam.PageSize, queryable)); }