Example #1
0
        public IActionResult Put(int id, [FromBody] Product product)
        {
            if (product == null || id != product.Id)
            {
                return(BadRequest());
            }
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            if (!ProductExists(id))
            {
                return(NotFound());
            }

            var existing = ECommDataContext.Products.SingleOrDefault(p => p.Id == id);

            try
            {
                existing.ProductName    = product.ProductName;
                existing.UnitPrice      = product.UnitPrice;
                existing.Package        = product.Package;
                existing.IsDiscontinued = product.IsDiscontinued;
                existing.SupplierId     = product.SupplierId;
                ECommDataContext.SaveChanges();
            }
            catch (DbUpdateException) { return(StatusCode(StatusCodes.Status409Conflict)); }
            catch (Exception) { return(StatusCode(StatusCodes.Status500InternalServerError)); }

            return(Ok(existing));
        }
Example #2
0
        public IActionResult Post([FromBody] Product product)
        {
            if (product == null)
            {
                return(BadRequest());
            }
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            if (ProductExists(product.Id))
            {
                return(StatusCode(StatusCodes.Status409Conflict));
            }

            try
            {
                ECommDataContext.Products.Add(product);
                ECommDataContext.SaveChanges();
            }
            catch (DbUpdateException) { return(StatusCode(StatusCodes.Status409Conflict)); }
            catch (Exception) { return(StatusCode(StatusCodes.Status500InternalServerError)); }

            return(CreatedAtAction("Get", new { id = product.Id }, product));
        }
Example #3
0
        private ECommDataContext CreateStubContext()
        {
            var optionsBuilder = new DbContextOptionsBuilder <ECommDataContext>();

            optionsBuilder.UseInMemoryDatabase("TestDb");
            var context = new ECommDataContext(optionsBuilder.Options);

            // Add sample data
            context.Products.Add(new Product
            {
                Id          = 1,
                ProductName = "Milk",
                UnitPrice   = 2.50M
            });
            context.Products.Add(new Product
            {
                Id          = 2,
                ProductName = "Bread",
                UnitPrice   = 3.25M,
                SupplierId  = 1
            });
            context.Products.Add(new Product
            {
                Id          = 3,
                ProductName = "Juice",
                UnitPrice   = 5.75M
            });
            context.Suppliers.Add(new Supplier {
                Id = 1, CompanyName = "Acme"
            });

            context.SaveChanges();
            return(context);
        }
Example #4
0
        public IActionResult Delete(int id)
        {
            if (!ProductExists(id))
            {
                return(NotFound());
            }
            var existing = ECommDataContext.Products.SingleOrDefault(p => p.Id == id);

            try
            {
                ECommDataContext.Remove(existing);
                ECommDataContext.SaveChanges();
            }
            catch (DbUpdateException) { return(StatusCode(StatusCodes.Status409Conflict)); }
            catch (Exception) { return(StatusCode(StatusCodes.Status500InternalServerError)); }

            return(Ok(existing));
        }
Example #5
0
 public HomeController(ECommDataContext dataContext)
 {
     _dataContext = dataContext;
 }
Example #6
0
 public ProductController(ECommDataContext dataContext)
 {
     _dataContext = dataContext;
 }
Example #7
0
 public ProductList(ECommDataContext dataContext)
 {
     _dataContext = dataContext;
 }