public async Task <IActionResult> PutToOrderDetails([FromODataUri] int orderID, [FromODataUri] int productID,
                                                            [FromBody] OrderDetail orderDetail)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            if (orderID != orderDetail.OrderID || productID != orderDetail.ProductID)
            {
                return(BadRequest());
            }

            var repository = new OrderDetailsRepository(_context);
            await repository.Update(orderDetail);

            try
            {
                repository.Save();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!OrderDetailExists(orderID, productID))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }
            return(Updated(orderDetail));
        }
        public async Task <IActionResult> PostToOrderDetails([FromODataUri] int keyOrderID, [FromBody] OrderDetail orderdetail)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (orderdetail == null)
            {
                return(BadRequest());
            }

            var repository = new OrderDetailsRepository(_context);

            try
            {
                await repository.Insert(orderdetail);

                repository.Save();

                return(Created(orderdetail));
            }
            catch (Exception e)
            {
                return(BadRequest(new
                {
                    message = e.Message.Replace('{', '(').Replace('}', ')')
                }));
            }
        }
        public async Task <IActionResult> PatchToOrderDetails([FromODataUri] int orderID, [FromODataUri] int productID,
                                                              [FromBody] Delta <OrderDetail> orderDetail)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var         repository = new OrderDetailsRepository(_context);
            OrderDetail entity     = await repository.GetById(new { OrderID = orderID, ProductID = productID });

            if (entity == null)
            {
                return(NotFound());
            }
            orderDetail.Patch(entity);
            try
            {
                repository.Save();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!OrderDetailExists(orderID, productID))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(Updated(entity));
        }
        public async Task <ActionResult> Create([FromBody] OrderDetail orderDetail)
        {
            if (ModelState.IsValid)
            {
                if (orderDetail == null)
                {
                    return(BadRequest());
                }

                var repository = new OrderDetailsRepository(_context);
                try
                {
                    await repository.Insert(orderDetail);

                    repository.Save();

                    return(NoContent());
                }
                catch (Exception e)
                {
                    return(BadRequest(new
                    {
                        message = e.Message.Replace('{', '(').Replace('}', ')')
                    }));
                }
            }
            return(BadRequest(new
            {
                message = "ModelState is not valid"
            }));
        }
        public async Task <ActionResult> UpdateOrderDetail(int orderId, int productId, [FromBody] OrderDetail orderDetail)
        {
            if (ModelState.IsValid)
            {
                if (orderDetail == null || orderDetail.OrderID != orderId || orderDetail.ProductID != productId)
                {
                    return(BadRequest());
                }

                var repository = new OrderDetailsRepository(_context);
                try
                {
                    await repository.Update(orderDetail);

                    repository.Save();

                    return(NoContent());
                }
                catch (Exception e)
                {
                    return(BadRequest(new
                    {
                        message = e.Message.Replace('{', '(').Replace('}', ')')
                    }));
                }
            }
            return(BadRequest(new
            {
                message = "ModelState is not valid"
            }));
        }
        public async Task <ActionResult> Delete(int orderId, int productId)
        {
            var         repository  = new OrderDetailsRepository(_context);
            OrderDetail orderDetail = await repository.GetById(new { OrderID = orderId, ProductID = productId });

            if (orderDetail == null)
            {
                return(NotFound());
            }

            try
            {
                repository.Delete(orderDetail);
                repository.Save();

                return(NoContent());
            }
            catch (Exception e)
            {
                return(BadRequest(new
                {
                    message = e.Message.Replace('{', '(').Replace('}', ')')
                }));
            }
        }
Esempio n. 7
0
        public ActionResult CreateOrderDetail(int id, CreateOrderDetail orderDetail)
        {
            if (ModelState.IsValid)
            {
                using (MySqlConnection conn = DBUtils.GetConnection())
                {
                    OrderDetails orderdet = new OrderDetails();

                    orderdet.OrderID   = orderDetail.OrderID;
                    orderdet.ProductID = orderDetail.ProductID;
                    orderdet.Quantity  = orderDetail.Quantity;
                    orderdet.UnitPrice = orderDetail.UnitPrice;
                    orderdet.Discount  = 0;

                    OrderDetailsRepository orderRepo = new OrderDetailsRepository(conn);
                    orderRepo.Save(orderdet);
                }

                return(RedirectToAction("OrderDetails", new { id = orderDetail.OrderID }));
            }

            using (MySqlConnection conn = DBUtils.GetConnection())
            {
                DisplayProductRepository product = new DisplayProductRepository(conn);
                orderDetail.ProductList = product.GetAll().ToList <DisplayProduct>();
            }

            return(View(orderDetail));
        }
        public async Task Update(OrderDetail item)
        {
            using (var context = new NorthwindDbContext(_options))
            {
                var repository = new OrderDetailsRepository(context);
                await repository.Update(item);

                repository.Save();
            }
        }
        public async Task Delete(params object[] keys)
        {
            using (var context = new NorthwindDbContext(_options))
            {
                var order = await Get(keys);

                var repository = new OrderDetailsRepository(context);
                repository.Delete(order);
                repository.Save();
            }
        }
Esempio n. 10
0
        public async Task <ActionResult> DeleteToOrderDetails([FromODataUri] int orderID, [FromODataUri] int productID)
        {
            var         repository  = new OrderDetailsRepository(_context);
            OrderDetail orderDetail = await repository.GetById(new { OrderID = orderID, ProductID = productID });

            if (orderDetail == null)
            {
                return(NotFound());
            }
            repository.Delete(orderDetail);
            repository.Save();
            return(StatusCode((int)HttpStatusCode.NoContent));
        }
        public async Task Update(OrderDetail item)
        {
            using (var context = new NorthwindDbContext(_options))
            {
                try
                {
                    var repository = new OrderDetailsRepository(context);
                    await repository.Update(item);

                    repository.Save();
                }
                catch (Exception e)
                {
                    throw new GridException(e);
                }
            }
        }
        public async Task Delete(params object[] keys)
        {
            using (var context = new NorthwindDbContext(_options))
            {
                try
                {
                    var order = await Get(keys);

                    var repository = new OrderDetailsRepository(context);
                    repository.Delete(order);
                    repository.Save();
                }
                catch (Exception)
                {
                    throw new GridException("Error deleting the order detail");
                }
            }
        }
        public void GetById()
        {
            try
            {
                var   options = CreateNewContextOptions();
                Order order;
                var   obj = new
                {
                    Id    = 1,
                    Name  = "Hat",
                    Price = 200
                };
                using (var db = new OrderContext(options))
                {
                    var contact = ProcessingTestHelper.GenerateContact();
                    ProcessingTestHelper.PopulateDefaultOrderCtx(db);
                    var orderState = db.OrderStates.First();
                    var payment    = db.PaymentMethods.First();
                    var delivery   = db.DeliveryMethods.First();
                    var zone       = db.DeliveryZones.First();
                    order = ProcessingTestHelper.GenerateOrder(contact, orderState, payment, delivery, zone);
                    db.Orders.Add(order);
                    db.SaveChanges();
                }
                using (var db = new OrderContext(options))
                {
                    var repository = new OrderDetailsRepository(db);

                    var item = ProcessingTestHelper.GenerateOrderDetail(order, obj);
                    Assert.DoesNotThrow(() => repository.Save(item));

                    Assert.DoesNotThrow(() => item = repository.GetById(item.Id));
                    Assert.DoesNotThrow(() => repository.Delete(item));
                    Assert.NotNull(item);
                    Assert.Greater(item.Id, 0);
                }
            }
            catch (Exception ex)
            {
                LogEventManager.Logger.Error(ex);
                throw;
            }
        }