public async Task <IActionResult> Edit(int id, [Bind("Product,Categories,Suppliers")] ProductCreationViewModel productCreationViewModel)
        {
            if (id != productCreationViewModel.Product.ProductId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(productCreationViewModel.Product);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ProductsExists(productCreationViewModel.Product.ProductId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(Products));
        }
Exemple #2
0
        public async Task <IActionResult> Post([FromBody] ProductCreationViewModel productVm)
        {
            if (productVm == null)
            {
                return(BadRequest());
            }

            if (!ModelState.IsValid)
            {
                return(UnprocessableEntity(ModelState));
            }

            var newItem = Mapper.Map <Product>(productVm);

            _productRepository.Add(newItem);
            if (!await UnitOfWork.SaveAsync())
            {
                return(StatusCode(500, "保存时出错"));
            }

            var vm = Mapper.Map <ProductViewModel>(newItem);

            var links         = CreateLinksForProduct(vm.Id);
            var dynamicObject = productVm.ToDynamic() as IDictionary <string, object>;

            dynamicObject.Add("links", links);

            return(CreatedAtRoute("GetProduct", new { id = dynamicObject["id"] }, dynamicObject));
        }
        // GET: Products/Create
        public async Task <IActionResult> Create()
        {
            var productCreationVM = new ProductCreationViewModel()
            {
                Product    = new Products(),
                Categories = CategoryList,
                Suppliers  = SupplierList
            };

            return(View(productCreationVM));
        }
        public async Task <IActionResult> Create([Bind("Product,Categories,Suppliers")] ProductCreationViewModel productCreationViewModel)
        {
            var productAdding = productCreationViewModel.Product;

            if (ModelState.IsValid)
            {
                _context.Add(productAdding);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(productAdding));
        }
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var products = await _context.Products.FindAsync(id);

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

            var productCreationVM = new ProductCreationViewModel()
            {
                Product    = products,
                Categories = CategoryList,
                Suppliers  = SupplierList
            };

            return(View(productCreationVM));
        }
        public async Task <IActionResult> Post([FromBody] ProductCreationViewModel productVm)
        {
            if (productVm == null)
            {
                return(BadRequest());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var newItem = Mapper.Map <Product>(productVm);

            _productRepository.Add(newItem);
            if (!await UnitOfWork.SaveAsync())
            {
                return(StatusCode(500, "保存时出错"));
            }

            var vm = Mapper.Map <ProductViewModel>(newItem);

            return(CreatedAtRoute("GetProduct", new { id = vm.Id }, vm));
        }