public async Task <IActionResult> GetOrderItems(int orderId, OrderItemsParametersModel parameters) { if (parameters.Limit < Constants.Configurations.MinLimit || parameters.Limit > Constants.Configurations.MaxLimit) { return(Error(HttpStatusCode.BadRequest, "limit", "Invalid limit parameter")); } if (parameters.Page < Constants.Configurations.DefaultPageValue) { return(Error(HttpStatusCode.BadRequest, "page", "Invalid request parameters")); } var order = _orderApiService.GetOrderById(orderId); if (order == null) { return(Error(HttpStatusCode.NotFound, "order", "not found")); } var allOrderItemsForOrder = await _orderItemApiService.GetOrderItemsForOrderAsync(order, parameters.Limit, parameters.Page, parameters.SinceId); var orderItemsRootObject = new OrderItemsRootObject { OrderItems = await allOrderItemsForOrder.SelectAwait(async item => await _dtoHelper.PrepareOrderItemDTOAsync(item)).ToListAsync() }; var json = JsonFieldsSerializer.Serialize(orderItemsRootObject, parameters.Fields); return(new RawJsonActionResult(json)); }
public IHttpActionResult GetOrderItems(int orderId, OrderItemsParametersModel parameters) { if (parameters.Limit < Configurations.MinLimit || parameters.Limit > Configurations.MaxLimit) { return(Error(HttpStatusCode.BadRequest, "limit", "Invalid limit parameter")); } if (parameters.Page < Configurations.DefaultPageValue) { return(Error(HttpStatusCode.BadRequest, "page", "Invalid request parameters")); } Order order = _orderApiService.GetOrderById(orderId); if (order == null) { return(Error(HttpStatusCode.NotFound, "order", "not found")); } IList <OrderItem> allOrderItemsForOrder = _orderItemApiService.GetOrderItemsForOrder(order, parameters.Limit, parameters.Page, parameters.SinceId); var orderItemsRootObject = new OrderItemsRootObject() { OrderItems = allOrderItemsForOrder.Select(item => _dtoHelper.PrepareOrderItemDTO(item)).ToList() }; var json = _jsonFieldsSerializer.Serialize(orderItemsRootObject, parameters.Fields); return(new RawJsonActionResult(json)); }