public ActionResult Edit(int id)
 {
     Fruit targetFruit = null;
     using (FarmstoreEntities dbContext = new FarmstoreEntities())
     {
         targetFruit = dbContext.Fruits.SingleOrDefault(m => m.Id == id);
     }
     return View(targetFruit);
 }
        public ActionResult Index()
        {
            List<Fruit> allFruits = null;

            using (FarmstoreEntities dbContext=new FarmstoreEntities ())
            {
                allFruits = dbContext.Fruits.ToList();
            }
            return View(allFruits);
        }
 public ActionResult Create(Fruit fruit)
 {
      using (FarmstoreEntities dbContext = new FarmstoreEntities())
     {
         
         dbContext.Fruits.Attach(fruit);
         dbContext.Entry(fruit).State = System.Data.Entity.EntityState.Added;
         dbContext.SaveChanges();
     }
     return RedirectToAction("Index", new { pageNumber = 1 });  
 }
 public RedirectToRouteResult RemoveFromCart(Cart cart, int fruitId, string returnUrl)
 {
     Fruit fruit = null;
     using (FarmstoreEntities dbContext = new FarmstoreEntities())
     {
         fruit = dbContext.Fruits.SingleOrDefault(f => f.Id == fruitId);
     }
     if (fruit != null)
     {
         cart.RemoveLine(fruit);
     }
     return RedirectToAction("Index", new { returnUrl });
 }
        public RedirectToRouteResult UpdateCart(Cart cart, int id, int quantity, string returnUrl)
        {
            Fruit fruit = null;
            using (FarmstoreEntities dbContext = new FarmstoreEntities())
            {
                fruit = dbContext.Fruits.SingleOrDefault(f => f.Id == id);

                if (quantity>0)
                {
                    cart.UpdateItem(fruit, quantity);
                }
                else 
                {
                    cart.RemoveLine(fruit);   
                }
            }
            
            return RedirectToAction("Index", new { returnUrl });
        }
        public ActionResult Edit(Fruit fruit)
        {

            using (FarmstoreEntities dbContext = new FarmstoreEntities())
            {
                if (this.Request.Files != null && this.Request.Files.Count > 0 &&  //4 for upload file
                    this.Request.Files[0].ContentLength > 0 &&
                    this.Request.Files[0].ContentLength < 1024 * 120)  //file size less than 120K
                {

                    string fileName = Path.GetFileName(this.Request.Files[0].FileName);
                    string pathOfWebsite = "~/Images/Fruits/" + fileName;
                    fruit.FruitImagePath = pathOfWebsite;
                    this.Request.Files[0].SaveAs(this.Server.MapPath(pathOfWebsite));

                }
               
                    dbContext.Fruits.Attach(fruit);
                    dbContext.Entry(fruit).State = System.Data.Entity.EntityState.Modified;
                    dbContext.SaveChanges();
               
            }
            return RedirectToAction("Index", new { pageNumber = 1 });  //4 for paging
        }
 public ActionResult Delete(int id)
 {
     Fruit fruit = null;
     using (FarmstoreEntities dbContext = new FarmstoreEntities())
     {
         fruit = dbContext.Fruits.SingleOrDefault(f => f.Id == id);
         dbContext.Fruits.Remove(fruit);
         dbContext.SaveChanges();
     }
     return RedirectToAction("Index", new { pageNumber = 1 });
 }