Exemple #1
0
        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)));
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        //为多个类创建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));
        }