public async Task <IActionResult> GetOrders([FromQuery] OrdersResourceParameters orderParams) { // Check that a valid OrderStatus Value was supplied. if (!Enum.TryParse(typeof(DateRange), orderParams.DateRange, out object dateRange)) { return(BadRequest(new { Error = "Invalid date range." })); } if (orderParams.RestId < 1 && orderParams.UserId < 1) { return(NotFound(new { Error = "Please make sure you have specified a valid " + "restaurant or user Id e.g. (restId = 10 or userId = 10)." })); } if (orderParams.RestId > 0) { var orderEnts = await _ordService.GetOrdersForRestaurantAsync(orderParams.RestId, orderParams, (DateRange)dateRange); var orderMods = _ordMapper.OrderEntitiesToModels(orderEnts); var paginationMetadata = new { totalCount = orderEnts.TotalCount, pageSize = orderEnts.PageSize, currentPage = orderEnts.CurrentPage, totalPages = orderEnts.TotalPages }; return(Ok(new { Values = orderMods, PagingInfo = paginationMetadata })); } if (orderParams.UserId > 0) { var orderEnts = await _ordService.GetOrdersForUserAsync(orderParams.UserId, orderParams, (DateRange)dateRange); var orderMods = _ordMapper.OrderEntitiesToModels(orderEnts); var paginationMetadata = new { totalCount = orderEnts.TotalCount, pageSize = orderEnts.PageSize, currentPage = orderEnts.CurrentPage, totalPages = orderEnts.TotalPages }; return(Ok(new { Values = orderMods, PagingInfo = paginationMetadata })); } return(NotFound(new { Warning = "You most likely did not specify a restaurantId or userId query parameter." })); }
public async Task <IActionResult> GetOrderItems(int orderId, OrdersResourceParameters orderParams) { var orderItemEnts = await _ordService.GetOrderItemsAsync(orderId, orderParams); var orderItemMods = _ordMapper.OrderItemEntitiesToModels(orderItemEnts); return(Ok(orderItemMods)); }
public async Task <IActionResult> GetOrdersAsync([FromQuery] OrdersResourceParameters ordersResourceParameters) { if (!_propertyMappingService.ValidMappingExistsFor <OrderUiModel, Order> (ordersResourceParameters.OrderBy)) { return(BadRequest()); } if (!_typeHelperService.TypeHasProperties <OrderUiModel> (ordersResourceParameters.Fields)) { return(BadRequest()); } //var ordersQueryable = ////await _inquiryAllOrdersProcessor.GetOrdersAsync(ordersResourceParameters); //var orders = Mapper.Map<IEnumerable<OrderUiModel>>(ordersQueryable); //var previousPageLink = ordersQueryable.HasPrevious // ? CreateOrdersResourceUri(ordersResourceParameters, // ResourceUriType.PreviousPage) // : null; //var nextPageLink = ordersQueryable.HasNext // ? CreateOrdersResourceUri(ordersResourceParameters, ResourceUriType.NextPage) // : null; //var paginationMetadata = new //{ // previousPageLink = previousPageLink, // nextPageLink = nextPageLink, // totalCount = ordersQueryable.TotalCount, // pageSize = ordersQueryable.PageSize, // currentPage = ordersQueryable.CurrentPage, // totalPages = ordersQueryable.TotalPages //}; //Response.Headers.Add("X-Pagination", // JsonConvert.SerializeObject(paginationMetadata)); //return Ok(orders.ShapeData(ordersResourceParameters.Fields)); return(Ok()); }