0
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Net;
using System.Web;
using System.Web.Mvc;
using LiqourStore.Entities;
using LiqourStore.Persistence;
using LiqourStore.Persistence.Repositories;

namespace LiquorStore.MVC.Controllers {
    public class ProductoController: Controller {
        // private LiqourStoreDbContext db = new LiqourStoreDbContext();
        private UnityOfWork unityOfwork = UnityOfWork.Instance;

        // GET: Productoes
        public ActionResult Index() {
            // var productos = db.Productos.Include(p => p.Marca);
            // return View(productos.ToList());
            return View(unityOfwork.Producto.GetAll());
        }


        // GET: Productoes/Details/5
        public ActionResult Details(int ? id) {
            if (id == null) {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            //Producto producto = db.Productos.Find(id);
            Producto producto = unityOfwork.Producto.Get(id);
            if (producto == null) {
                return HttpNotFound();
            }
            return View(producto);
        }

        // GET: Productoes/Create
        public ActionResult Create() {
            // ViewBag.MarcaId = new SelectList(db.Marcas, "MarcaId", "NombreMarca");
            return View();
        }

        // POST: Productoes/Create
        // Para protegerse de ataques de publicación excesiva, habilite las propiedades específicas a las que desea enlazarse. Para obtener 
        // más información vea https://go.microsoft.com/fwlink/?LinkId=317598.
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create([Bind(Include = "ProductoId,NombreCliente,DescripcionProducto,StockProducto,MarcaId")] Producto producto) {
            if (ModelState.IsValid) {
                // db.Productos.Add(producto);
                unityOfwork.Producto.Add(producto);
                // db.SaveChanges();
                unityOfwork.SaveChanges();
                return RedirectToAction("Index");
            }

            //  ViewBag.MarcaId = new SelectList(db.Marcas, "MarcaId", "NombreMarca", producto.MarcaId);
            return View(producto);
        }

        // GET: Productoes/Edit/5
        public ActionResult Edit(int ? id) {
            if (id == null) {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            // Producto producto = db.Productos.Find(id);
            Producto producto = unityOfwork.Producto.Get(id);
            if (producto == null) {
                return HttpNotFound();
            }
            // ViewBag.MarcaId = new SelectList(db.Marcas, "MarcaId", "NombreMarca", producto.MarcaId);
            return View(producto);
        }

        // POST: Productoes/Edit/5
        // Para protegerse de ataques de publicación excesiva, habilite las propiedades específicas a las que desea enlazarse. Para obtener 
        // más información vea https://go.microsoft.com/fwlink/?LinkId=317598.
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Edit([Bind(Include = "ProductoId,NombreCliente,DescripcionProducto,StockProducto,MarcaId")] Producto producto) {
            if (ModelState.IsValid) {
                // db.Entry(producto).State = EntityState.Modified;
                unityOfwork.StateModified(producto);
                // db.SaveChanges();
                unityOfwork.SaveChanges();
                return RedirectToAction("Index");
            }
            // ViewBag.MarcaId = new SelectList(db.Marcas, "MarcaId", "NombreMarca", producto.MarcaId);
            return View(producto);
        }

        // GET: Productoes/Delete/5
        public ActionResult Delete(int ? id) {
            if (id == null) {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            //  Producto producto = db.Productos.Find(id);
            Producto producto = unityOfwork.Producto.Get(id);
            if (producto == null) {
                return HttpNotFound();
            }
            return View(producto);
        }

        // POST: Productoes/Delete/5
        [HttpPost, ActionName("Delete")]
        [ValidateAntiForgeryToken]
        public ActionResult DeleteConfirmed(int id) {
            //  Producto producto = db.Productos.Find(id);
            Producto producto = unityOfwork.Producto.Get(id);
            //  db.Productos.Remove(producto);
            unityOfwork.Producto.Delete(producto);
            // db.SaveChanges();
            unityOfwork.SaveChanges();
            return RedirectToAction("Index");
        }

        protected override void Dispose(bool disposing) {
            if (disposing) {
                // db.Dispose();
                unityOfwork.Dispose();
            }
            base.Dispose(disposing);
        }
    }
}
sioesi
  • 11,365
  • 5
  • 20
  • 55
  • 1
    Hola Luis bienvenido a Stack Over Flow en español, para hacer una pregunta debes explicar mejor tu problema. Logs, lineas de errores, etc. – sioesi May 25 '17 at 15:38
  • Se que es ASP.Net y no Java, pero suena a que [Ésto](https://es.stackoverflow.com/questions/42977/cu%c3%a1l-es-la-soluci%c3%b3n-a-todos-los-errores-nullpointerexception-presentes-pasados) te va a servir – FederHico May 25 '17 at 15:48

0 Answers0