示例#1
0
        public async Task <IActionResult> PutOrderMaster([FromRoute] int id, [FromBody] OrderMaster orderMaster)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != orderMaster.OrderId)
            {
                return(BadRequest());
            }

            _context.Entry(orderMaster).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!OrderMasterExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
示例#2
0
        public async Task <int> CreateOrder(Order order, ICollection <OrderItem> orderItems)
        {
            using (var context = new OrderManagementDBContext())
            {
                using (var transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        context.Orders.Add(order);
                        await context.SaveChangesAsync();

                        foreach (var item in orderItems)
                        {
                            item.OrderId = order.Id;
                        }

                        context.OrderItems.AddRange(orderItems);
                        await context.SaveChangesAsync();

                        transaction.Commit();
                        return(order.Id);
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        throw;
                    }
                }
            }
        }
示例#3
0
        public async Task UpdateOrder(int orderId, int status)
        {
            using (var context = new OrderManagementDBContext())
            {
                var order = await context.Orders.FirstOrDefaultAsync(x => x.Id == orderId);

                if (order == null)
                {
                    throw new KeyNotFoundException($"{orderId} not found.");
                }

                order.OrderStatusId = status;
                await context.SaveChangesAsync();
            }
        }