public ActionResult Edit(int productId)
 {
     using (var entities = new EntityModel.DatabaseContext())
     {
         var model     = entities.Products.SingleOrDefault(x => x.Id == productId);
         var viewmodel = new ViewModels.ProductViewModels.EditProductViewModel()
         {
             Id          = model.Id,
             Name        = model.Name,
             Description = model.Description,
             Price       = model.Price,
             AvaiableProductCategories = Management.ActionHandler.SetupAvaiableCategoryTypes(entities.ProductCategorys.ToList()),
             ProductCategoryName       = entities.ProductCategorys.SingleOrDefault(x => x.Id == model.ProductCategoryId).Name
         };
         return(View(viewmodel));
     }
 }
        public ActionResult Edit(ViewModels.ProductViewModels.EditProductViewModel viewmodel)
        {
            if (!ModelState.IsValid)
            {
                return(View(viewmodel));
            }
            using (var entities = new EntityModel.DatabaseContext())
            {
                viewmodel.AvaiableProductCategories = Management.ActionHandler.SetupAvaiableCategoryTypes(entities.ProductCategorys.ToList());

                var model = entities.Products.SingleOrDefault(x => x.Id == viewmodel.Id);
                model.Name              = viewmodel.Name;
                model.Description       = viewmodel.Description;
                model.Price             = viewmodel.Price;
                model.ProductCategoryId = entities.ProductCategorys.SingleOrDefault(x => x.Name == viewmodel.ProductCategoryName).Id;

                entities.SaveChanges();
                return(RedirectToAction("ShowProduct", new { productId = model.Id }));
            }
        }