public async Task <ActionResult> CreateOrder(ManufacturingOrderForCreationDto order) { try { ManufacturingOrder orderEntity = mapper.Map <ManufacturingOrder>(order); Product product = await dbContext.Products.FindAsync(orderEntity.ProductId); if (product == null) { return(NotFound("Provided product doesn't exists")); } dbContext.ManufacturingOrders.Add(orderEntity); await dbContext.SaveChangesAsync(); ManufacturingOrder orderToReturn = dbContext.ManufacturingOrders.Where(o => o.Id == orderEntity.Id).Include(oi => oi.Product).FirstOrDefault(); ManufacturingOrderDto orderDto = mapper.Map <ManufacturingOrderDto>(orderToReturn); return(CreatedAtAction(nameof(GetOrder), new { id = orderDto.Id }, orderDto)); } catch { return(StatusCode(StatusCodes.Status500InternalServerError)); } }
public async Task <ActionResult> UpdateOrder(int id, ManufacturingOrderForUpdateDto updates) { try { if (!Enum.IsDefined(typeof(ManufacturingOrderStatus), updates.Status)) { return(BadRequest("Status doesn't exist")); } ManufacturingOrder order = await dbContext.ManufacturingOrders.Where(co => co.Id == id) .Include(oi => oi.Product) .FirstOrDefaultAsync(); if (order == null) { return(NotFound($"Order with Id: {id} not found")); } order.Status = updates.Status; dbContext.ManufacturingOrders.Update(order); await dbContext.SaveChangesAsync(); return(Ok(new Response <ManufacturingOrderFullDto>(mapper.Map <ManufacturingOrderFullDto>(order)))); } catch { return(StatusCode(StatusCodes.Status500InternalServerError)); } }
public void Update(int manufacturingOrderId, ManufacturingOrder manufacturingOrder) { var id = new SqlParameter("id", manufacturingOrderId); var statusId = new SqlParameter("status_id", manufacturingOrder.StatusId); var factoryUnitId = new SqlParameter("factory_unit_id", manufacturingOrder.FactoryUnitId); var deadlineDate = new SqlParameter("deadline_date", manufacturingOrder.DeadlineDate); _context.Database.ExecuteSqlCommand(ManufacturingOrderUpdateSqlCommand, id, statusId, factoryUnitId, deadlineDate); _context.SaveChanges(); }
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)); } }
public async Task <ActionResult> GetOrder(int id) { try { ManufacturingOrder order = await dbContext.ManufacturingOrders.Where(co => co.Id == id) .Include(mo => mo.Product) .FirstOrDefaultAsync(); if (order == null) { return(NotFound($"Order with Id: {id} not found")); } return(Ok(new Response <ManufacturingOrderFullDto>(mapper.Map <ManufacturingOrderFullDto>(order)))); } catch { return(StatusCode(StatusCodes.Status500InternalServerError)); } }
public void UpdateManufacturingOrder([FromRoute] int manufacturingOrderId, [FromBody] ManufacturingOrder manufacturingOrder) { _service.Update(manufacturingOrderId, manufacturingOrder); }