public void UpdateProduct(ProductView pv)
        {
            using (SampleEntities db = new SampleEntities())
            {
                using (var dbContextTransaction = db.Database.BeginTransaction())
                {
                    try
                    {
                        Product _product = db.Products.Find(pv.Id);

                        if(_product!=null)
                        {
                            _product.ProductDescription = pv.ProductDescription;
                            _product.ProductName = pv.ProductName;
                            _product.ProductProce = pv.ProductProce;
                            _product.UpdateBy = pv.UpdateBy;
                            _product.UpdatedDate = pv.UpdatedDate;
                            db.SaveChanges();   
                        }
                        dbContextTransaction.Commit();
                    }
                    catch(Exception ex)
                    {
                        dbContextTransaction.Rollback();    
                    }
                }
            }
        }
 public void AddProduct(ProductView pv)
 {
     using (SampleEntities db = new SampleEntities())
     {
         Product p = new Product();
         p.ProductName = pv.ProductName;
         p.ProductProce = pv.ProductProce;
         p.ProductDescription = pv.ProductDescription;
         p.CreatedBy = pv.CreatedBy;
         p.CreatedDate = pv.CreatedDate;
         p.UpdateBy = pv.UpdateBy;
         p.UpdatedDate = pv.UpdatedDate;
         db.Products.Add(p);
         db.SaveChanges();
     }
 }
        public ActionResult AddProduct(ProductView pv)
        {
            if (ModelState.IsValid)
            {
                //ProductView pv = new ProductView() { ProudctName = _pname, ProductPrice = Convert.ToDecimal(_price), ProductDescription = _pdescription, CreatedBy = User.Identity.Name, CreatedDate = DateTime.Now, ModifiedBy = User.Identity.Name, ModifiedDate = DateTime.Now };
                pv.CreatedBy = User.Identity.Name;
                pv.CreatedDate = DateTime.Now;
                pv.UpdateBy = User.Identity.Name;
                pv.UpdatedDate = DateTime.Now;

                ProductManager _manager = new ProductManager();

                _manager.AddProduct(pv);
                return RedirectToAction("ListProducts");                
            }
            return View();

        }
        public ProductView SelectProduct(int id)
        {
            ProductView _pv = null;
            using (SampleEntities db = new SampleEntities())
            {
                Product _product = db.Products.Find(id);

                if (_product != null)
                {
                    _pv = new ProductView();
                    _pv.ProductDescription = _product.ProductDescription;
                    _pv.ProductName = _product.ProductName;
                    _pv.ProductProce = _product.ProductProce;
                    _pv.UpdateBy = _product.UpdateBy;
                    _pv.UpdatedDate = _product.UpdatedDate;
                }
            }
            return _pv;
        }
        public ActionResult UpdateProduct(ProductView pv)
        {
            if (ModelState.IsValid)
            {

                //ProductView pv = new ProductView() { Id = int.Parse(_id), ProductName = _pname, ProductProce = Convert.ToDecimal(_price), ProductDescription = _pdescription, UpdateBy = User.Identity.Name, UpdatedDate = DateTime.Now };
                pv.UpdateBy = User.Identity.ToString();
                pv.UpdatedDate = DateTime.Now;
                ProductManager _manager = new ProductManager();


                _manager.UpdateProduct(pv);
                return RedirectToAction("ListProducts");
                //return Json(new { success = true });
            }
            return View();

        }
        public List<ProductView> SelectAllListProducts()
        {
            List<ProductView> products = new List<ProductView>();
            using (SampleEntities db = new SampleEntities())
            {
                
                var _products = db.Products.ToList();
                foreach(Product _p in _products)
                {
                    ProductView pv = new ProductView();
                    pv.Id = _p.Id;
                    pv.ProductName = _p.ProductName;
                    pv.ProductProce = _p.ProductProce;
                    pv.ProductDescription = _p.ProductDescription;
                    products.Add(pv);
                }
                     
            }

            return products;
        }