示例#1
0
        public BaseResponse <GetOrderItemResponse> CreateOrderItem(string orderId, CreateOrderItemRequest request)
        {
            var method   = HttpMethod.Post;
            var endpoint = $"/orders/{orderId}/items";

            return(this.HttpClientUtil.SendRequest <GetOrderItemResponse>(method, endpoint, request));
        }
示例#2
0
        public async Task AddItemToOrder()
        {
            await RunInContext(nameof(AddItemToOrder), async (repository, context) =>
            {
                //arrange
                var orderId        = "orderId";
                string name        = "name";
                string description = "description";
                int quantity       = 10;

                await context.Orders.AddAsync(new OrderEntity {
                    UserId = UserId, Id = orderId
                });
                await context.SaveChangesAsync();
                var request = new CreateOrderItemRequest {
                    Description = description, Name = name, Quantity = quantity
                };

                //act
                var addedItem = await repository.AddItemToOrder(UserId, orderId, request);

                //assert
                var dbOrderItem = await context.OrderItems.FirstAsync();
                Assert.Equal(dbOrderItem.Id, addedItem);
                Assert.Equal(dbOrderItem.Name, name);
                Assert.Equal(dbOrderItem.Description, description);
                Assert.Equal(dbOrderItem.Quantity, quantity);
            });
        }
 public bool Validate(CreateOrderItemRequest requestToValidate)
 {
     return(!(string.IsNullOrEmpty(requestToValidate.ItemId.ToString()) ||
              string.IsNullOrEmpty(requestToValidate.OrderId.ToString()) ||
              string.IsNullOrEmpty(requestToValidate.Quantity.ToString()) ||
              string.IsNullOrEmpty(requestToValidate.UnitPrice.ToString())));
 }
示例#4
0
        public async Task <IActionResult> Create(CreateOrderItemRequest request)
        {
            var mapped   = request.MapToDomainRequest(_mapper);
            var response = await _service.Create(mapped);

            return(StatusCode(response.Code, response));
        }
        public void GivenTheUserCreatesARequestToAddACatalogueItemToTheOrderWithId(string catalogueItemId, int orderId, Table requestInfoTable)
        {
            requestInfoTable.RowCount.Should().Be(1);

            createOrderItemRequest = new CreateOrderItemRequest(
                orderId,
                catalogueItemId,
                requestInfoTable.CreateInstance <RequestInfo>(),
                settings);
        }
示例#6
0
        private async Task <OrderItem> GetOrderItem(CreateOrderItemRequest requestOrderDetail)
        {
            var productId = new ProductIdentity(requestOrderDetail.ProductId);
            var product   = await _productReadRepository.FindAsync(productId);

            if (product == null)
            {
                throw new InvalidRequestException($"Product id {requestOrderDetail.ProductId} is not valid because that product does not exist");
            }

            var quantity = requestOrderDetail.Quantity;

            return(_orderFactory.CreateNewOrderItem(product, quantity));
        }
        public async Task <string> AddItemToOrder(ulong userId, string orderId, CreateOrderItemRequest request)
        {
            var order = await GetOrder(userId, orderId);

            var orderItemId  = Guid.NewGuid().ToString();
            var newOrderItem = new OrderItemEntity
            {
                Id          = orderItemId,
                OrderId     = order.Id,
                Name        = request.Name,
                Description = request.Description,
                Quantity    = request.Quantity
            };
            await _ordersContext.OrderItems.AddAsync(newOrderItem);

            await _ordersContext.SaveChangesAsync();

            return(orderItemId);
        }
示例#8
0
        public async Task <Response> Create(CreateOrderItemRequest request)
        {
            try
            {
                var item = _mapper.Map <OrderItem>(request);

                _repository.Add(item);

                if (await _repository.SaveChangesAsync())
                {
                    var response = _mapper.Map <OrderItemResponse>(item);
                    return(OkResponse(null, response));
                }

                return(BadRequestResponse("Erro desconhecido."));
            }
            catch (Exception ex)
            {
                return(BadRequestResponse(ex.Message));
            }
        }
 public OrderItem AddOrderItem(CreateOrderItemRequest newOrderItemObj)
 {
     using (var db = new SqlConnection(ConnectionString))
     {
         var newOrderItemQuery = db.QueryFirstOrDefault <OrderItem>(
             @"Insert into OrderItem (orderId, itemId, quantity, unitPrice, specialRequest)
             Output inserted.*
             Values(@orderId,@itemId,@quantity,@unitPrice,@specialRequest)",
             new
         {
             newOrderItemObj.OrderId,
             newOrderItemObj.ItemId,
             newOrderItemObj.Quantity,
             newOrderItemObj.UnitPrice,
             newOrderItemObj.SpecialRequest
         });
         if (newOrderItemQuery != null)
         {
             return(newOrderItemQuery);
         }
         throw new Exception("No OrderItem Found");
     }
 }
示例#10
0
 public async Task <ActionResult <string> > AddItemToOrder(string orderId, [FromBody] CreateOrderItemRequest item) =>
 await _ordersRepository.AddItemToOrder(GetUserId(), orderId, item);
 public static DomainCreateOrderItemRequest MapToDomainRequest(
     this CreateOrderItemRequest request,
     IMapper mapper)
 {
     return(mapper.Map <DomainCreateOrderItemRequest>(request));
 }