protected override void OnInitialized() { Order = new CustomerOrderForCreationDto() { Customer = new CustomerForCreationDto(), OrderItems = new List <CustomerOrderItemForCreationDto>() }; }
public async Task <CustomerOrderFullDto> CreateOrder(CustomerOrderForCreationDto order) { try { return(await httpClient.PostJsonAsync <CustomerOrderFullDto>("api/customerorders", order)); } catch { return(null); } }
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)); } }