Ejemplo n.º 1
0
 protected override void OnInitialized()
 {
     Order = new CustomerOrderForCreationDto()
     {
         Customer   = new CustomerForCreationDto(),
         OrderItems = new List <CustomerOrderItemForCreationDto>()
     };
 }
Ejemplo n.º 2
0
 public async Task <CustomerOrderFullDto> CreateOrder(CustomerOrderForCreationDto order)
 {
     try
     {
         return(await httpClient.PostJsonAsync <CustomerOrderFullDto>("api/customerorders", order));
     }
     catch
     {
         return(null);
     }
 }
Ejemplo n.º 3
0
        public async Task <ActionResult> CreateOrder(CustomerOrderForCreationDto order)
        {
            try
            {
                CustomerOrder orderEntity = mapper.Map <CustomerOrder>(order);

                foreach (CustomerOrderItem orderItem in orderEntity.OrderItems)
                {
                    if (!(orderItem.ProductId == 0 ^ orderItem.Product == null))
                    {
                        return(BadRequest("Must provide existing or new product"));
                    }

                    if (orderItem.ProductId != 0)
                    {
                        Product product = await dbContext.Products.FindAsync(orderItem.ProductId);

                        if (product == null)
                        {
                            return(NotFound("Provided product doesn't exists"));
                        }
                    }
                    else
                    {
                        ManufacturingOrder manufacturingOrder = new ManufacturingOrder()
                        {
                            Quantity = orderItem.Quantity,
                        };
                        orderItem.Product.ManufacturingOrders.Add(manufacturingOrder);
                        orderItem.Product.Type = ProductType.Custom;
                    }
                }

                bool isOrderProduced = !orderEntity.OrderItems.Exists(orderItem => orderItem.Product != null);
                orderEntity.Status = isOrderProduced ? CustomerOrderStatus.Ruošiama : CustomerOrderStatus.Gaminama;

                await dbContext.AddAsync(orderEntity);

                await dbContext.SaveChangesAsync();

                CustomerOrderFullDto orderToReturn = mapper.Map <CustomerOrderFullDto>(orderEntity);

                return(CreatedAtAction(nameof(GetOrder), new { id = orderToReturn.Id }, orderToReturn));
            }
            catch
            {
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
        }