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));
            }
        }
Ejemplo n.º 3
0
        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();
        }
Ejemplo n.º 4
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));
            }
        }
        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));
            }
        }
Ejemplo n.º 6
0
 public void UpdateManufacturingOrder([FromRoute] int manufacturingOrderId,
                                      [FromBody] ManufacturingOrder manufacturingOrder)
 {
     _service.Update(manufacturingOrderId, manufacturingOrder);
 }