private Category GetCategory(string CategoryName)
        {
            Category category = null;

            using (var ctx = new ProductStoreDB())
            {
                category = ctx.Categories
                           .Where(c => c.CategoryName.ToLower() == CategoryName.ToLower())
                           .FirstOrDefault();
            }
            return(category);
        }
Example #2
0
        public IHttpActionResult GetAllCategoryName()
        {
            IList <string> categoryNames = null;

            using (var ctx = new ProductStoreDB())
            {
                categoryNames = ctx.Categories
                                .Select(c => c.CategoryName).ToList <string>();
            }
            if (categoryNames.Count == 0)
            {
                return(NotFound());
            }
            return(Ok(categoryNames));
        }
 public IHttpActionResult Delete(int id)
 {
     if (id <= 0)
     {
         return(BadRequest("Not a valid student id"));
     }
     using (var ctx = new ProductStoreDB())
     {
         var product = ctx.Products
                       .Where(p => p.ProductID == id)
                       .FirstOrDefault();
         ctx.Entry(product).State = System.Data.Entity.EntityState.Deleted;
         ctx.SaveChanges();
     }
     return(Ok());
 }
 public IHttpActionResult PostNewProduct(ProductDTO productDTO)
 {
     if (!ModelState.IsValid)
     {
         return(BadRequest("Invalid data."));
     }
     using (var ctx = new ProductStoreDB())
     {   //get new product form productDTO
         Product product = GetNewProduct(productDTO);
         if (product != null)
         {
             ctx.Products.Add(product);
             ctx.SaveChanges();
             return(Ok());
         }
         return(BadRequest("Invalid data."));
     }
 }
        public IHttpActionResult GetAllProducts(string CategoryName)
        {
            IList <ProductDTO> producs = null;

            using (var ctx = new ProductStoreDB())
            {
                producs = ctx.Products.Include("Category")
                          .Where(p => p.Category.CategoryName.ToLower() == CategoryName.ToLower())
                          .Select(p => new ProductDTO()
                {
                    Name         = p.Name,
                    CategoryName = p.Category.CategoryName,
                    Price        = p.Price
                }).ToList <ProductDTO>();
            }
            if (producs.Count == 0)
            {
                return(NotFound());
            }
            return(Ok(producs));
        }
 public IHttpActionResult PutProduct(ProductDTO product)
 {
     if (!ModelState.IsValid)
     {
         return(BadRequest("Not a valid model"));
     }
     using (var ctx = new ProductStoreDB())
     {
         var existingProduct = ctx.Products
                               .Where(p => p.ProductID == product.ProductID)
                               .FirstOrDefault <Product>();
         if (existingProduct != null)
         {
             if (UpdateProduct(existingProduct, product))
             {
                 ctx.SaveChanges();
                 return(Ok());
             }
             return(BadRequest("Not a valid model")); //CategoryName Invalid
         }
         return(NotFound());                          //Product not found
     }
 }
        public IHttpActionResult GetProductById(int id)
        {
            ProductDTO productDTO = null;

            using (var ctx = new ProductStoreDB())
            {
                productDTO = ctx.Products.Include("Category")
                             .Where(p => p.ProductID == id)
                             .Select(p => new ProductDTO()
                {
                    ProductID    = p.ProductID,
                    Name         = p.Name,
                    CategoryName = p.Category.CategoryName,
                    Price        = p.Price
                }).FirstOrDefault <ProductDTO>();
            }

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

            return(Ok(productDTO));
        }