public Producto buscarPorSku(Producto sku)
        {
            ModelosContext mc = new ModelosContext();
            // List<Producto> list = new List<Producto>();
            Producto p = mc.Productos.Where(pr => pr.Sku == sku.Sku).FirstOrDefault();

            //Include(m => m.Marca).Include(ca => ca.Categoria).Include(su => su.Sucursal)
            //foreach (Producto dt  in li)
            //{
            //Producto p = new Producto();
            //p.Nombre = li.Nombre;
            //p.Imagen = li.Imagen;
            //p.Cantidad = li.Cantidad;
            //p.Sku = li.Sku;
            //p.Promocion = li.Promocion;
            //p.Detalle = li.Detalle;
            //p.Marca = new Marca();
            //p.Marca.Nombre = dt.Marca.Nombre;
            //p.Sucursal = new Sucursal();
            //p.Sucursal.Nombre = dt.Sucursal.Nombre;
            //p.Categoria = new Categoria();
            //p.Categoria.Nombre = dt.Nombre;


            //    list.Add(p);
            //}
            mc.Dispose();
            return(p);
        }
        public bool agregarProducto(Producto json)
        {
            try
            {
                ModelosContext mc = new ModelosContext();

                Categoria idCat = mc.Categorias.Where(ap => ap.Nombre == json.Categoria.Nombre).FirstOrDefault();
                Marca     idMar = mc.Marcas.Where(app => app.Nombre == json.Marca.Nombre).FirstOrDefault();
                Sucursal  idSuc = mc.Sucursales.Where(appp => appp.Nombre == json.Sucursal.Nombre).FirstOrDefault();
                Producto  p     = new Producto();
                p.Nombre      = json.Nombre;
                p.Imagen      = json.Imagen;
                p.Cantidad    = json.Cantidad;
                p.Sku         = json.Sku;
                p.Promocion   = json.Promocion;
                p.Detalle     = json.Detalle;
                p.idCategoria = idCat.Id;
                p.idMarca     = idMar.Id;
                p.idSucursal  = idSuc.Id;

                mc.Productos.Add(p);
                mc.SaveChanges();
                mc.Dispose();
                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
        public bool editarProducto(Producto json)
        {
            try
            {
                ModelosContext mc = new ModelosContext();


                Producto p = mc.Productos.Where(d => d.Id == json.Id).FirstOrDefault();

                p.Nombre    = json.Nombre;
                p.Imagen    = json.Imagen;
                p.Cantidad  = json.Cantidad;
                p.Sku       = json.Sku;
                p.Promocion = json.Promocion;
                p.Detalle   = json.Detalle;
                //if (json.Categoria.Nombre != null)
                //{
                //    Categoria idCat = mc.Categorias.Where(ap => ap.Nombre == json.Categoria.Nombre).FirstOrDefault();
                //    p.idCategoria = idCat.Id;
                //}
                //else
                //{
                p.idCategoria = json.idCategoria;
                //}
                //if (json.Marca.Nombre!=null)
                //{
                //    Marca idMar = mc.Marcas.Where(app => app.Nombre == json.Marca.Nombre).FirstOrDefault();
                //    p.idMarca = idMar.Id;
                //}
                //else
                //{
                p.idMarca = json.idMarca;
                //}
                //if (json.Sucursal.Nombre != null)
                //{
                //    Sucursal idSuc = mc.Sucursales.Where(appp => appp.Nombre == json.Sucursal.Nombre).FirstOrDefault();
                //    p.idSucursal = idSuc.Id;
                //}
                //else
                //{
                p.idSucursal = json.idSucursal;
                //}


                mc.SaveChanges();
                mc.Dispose();
                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
        public Sucursal obtenerSucursalByNombre(Sucursal nombre)
        {
            ModelosContext mc = new ModelosContext();

            try
            {
                Sucursal ma = mc.Sucursales.Where(d => d.Nombre == nombre.Nombre).FirstOrDefault();
                mc.Dispose();
                return(ma);
            }
            catch (Exception)
            {
                return(null);
            }
        }
        public Marca obtenerMarcaByNombre(Marca nombre)
        {
            ModelosContext mc = new ModelosContext();

            try
            {
                Marca ma = mc.Marcas.Where(d => d.Nombre == nombre.Nombre).FirstOrDefault();
                mc.Dispose();
                return(ma);
            }
            catch (Exception)
            {
                return(null);
            }
        }
        public Categoria obtenerCategoriaByNombre(Categoria nombre)
        {
            ModelosContext mc = new ModelosContext();

            try
            {
                Categoria ma = mc.Categorias.Where(d => d.Nombre == nombre.Nombre).FirstOrDefault();
                mc.Dispose();
                return(ma);
            }
            catch (Exception)
            {
                return(null);
            }
        }
        public Categoria traerSucursal(string id)
        {
            ModelosContext mc = new ModelosContext();

            try
            {
                int       sid = Convert.ToInt32(id);
                Categoria ma  = mc.Categorias.Find(sid);
                mc.Dispose();
                return(ma);
            }
            catch (Exception)
            {
                return(null);
            }
        }
        public Marca traerMarca(string id)
        {
            ModelosContext mc = new ModelosContext();

            try
            {
                int   sid = Convert.ToInt32(id);
                Marca ma  = mc.Marcas.Find(sid);
                mc.Dispose();
                return(ma);
            }
            catch (Exception)
            {
                return(null);
            }
        }
 public bool editarCategoria(Categoria json)
 {
     try
     {
         ModelosContext mc = new ModelosContext();
         Categoria      a  = mc.Categorias.Where(sd => sd.Id == json.Id).FirstOrDefault();
         a.Nombre = json.Nombre;
         mc.SaveChanges();
         mc.Dispose();
         return(true);
     }
     catch (Exception)
     {
         return(false);
     }
 }
        public List <Categoria> listarCategoria()
        {
            ModelosContext   mc   = new ModelosContext();
            List <Categoria> list = new List <Categoria>();
            var li = mc.Categorias.ToList();

            foreach (Categoria dt in li)
            {
                Categoria p = new Categoria();
                p.Id     = dt.Id;
                p.Nombre = dt.Nombre;

                list.Add(p);
            }
            mc.Dispose();
            return(list);
        }
 public bool eliminarSucursal(string id)
 {
     try
     {
         ModelosContext mc    = new ModelosContext();
         int            sId   = Convert.ToInt32(id);
         Sucursal       datos = mc.Sucursales.Where(sd => sd.Id == sId).FirstOrDefault();
         mc.Sucursales.Remove(datos);
         mc.SaveChanges();
         mc.Dispose();
         return(true);
     }
     catch (Exception)
     {
         return(false);
     }
 }
        public List <Marca> listarMarca()
        {
            ModelosContext mc   = new ModelosContext();
            List <Marca>   list = new List <Marca>();
            var            li   = mc.Marcas.ToList();

            foreach (Marca dt in li)
            {
                Marca p = new Marca();
                p.Id     = dt.Id;
                p.Nombre = dt.Nombre;
                p.Imagen = dt.Imagen;

                list.Add(p);
            }
            mc.Dispose();
            return(list);
        }
        public bool eliminarMarca(string id)
        {
            ModelosContext mc = new ModelosContext();

            try
            {
                int   oid   = Convert.ToInt32(id);
                Marca datos = mc.Marcas.Where(s => s.Id == oid).FirstOrDefault();
                mc.Marcas.Remove(datos);
                mc.SaveChanges();
                mc.Dispose();
                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
        public bool editarMarca(Marca json)
        {
            ModelosContext mc = new ModelosContext();

            try
            {
                Marca m = mc.Marcas.Where(s => s.Id == json.Id).FirstOrDefault();
                m.Nombre = json.Nombre;
                m.Imagen = json.Imagen;

                mc.SaveChanges();
                mc.Dispose();
                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
        public bool agregarCategoria(Categoria json)
        {
            ModelosContext mc = new ModelosContext();

            try
            {
                Categoria a = new Categoria();
                a.Nombre = json.Nombre;

                mc.Categorias.Add(a);
                mc.SaveChanges();
                mc.Dispose();
                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
        public bool agregarMarca(Marca json)
        {
            ModelosContext mc = new ModelosContext();

            try
            {
                Marca m = new Marca();
                m.Nombre = json.Nombre;
                m.Imagen = json.Imagen;

                mc.Marcas.Add(m);
                mc.SaveChanges();
                mc.Dispose();
                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
 public bool editarSucursal(Sucursal json)
 {
     try
     {
         ModelosContext mc = new ModelosContext();
         Sucursal       a  = mc.Sucursales.Where(sd => sd.Id == json.Id).FirstOrDefault();
         a.Nombre    = json.Nombre;
         a.Telefono  = json.Telefono;
         a.Direccion = json.Direccion;
         a.CodPostal = json.CodPostal;
         a.Correo    = json.Correo;
         a.Telefono  = json.Telefono;
         mc.SaveChanges();
         mc.Dispose();
         return(true);
     }
     catch (Exception)
     {
         return(false);
     }
 }
        public List <Sucursal> listarSucursal()
        {
            ModelosContext  mc   = new ModelosContext();
            List <Sucursal> list = new List <Sucursal>();
            var             li   = mc.Sucursales.ToList();

            foreach (Sucursal dt in li)
            {
                Sucursal a = new Sucursal();
                a.Id        = dt.Id;
                a.Nombre    = dt.Nombre;
                a.Telefono  = dt.Telefono;
                a.Direccion = dt.Direccion;
                a.CodPostal = dt.CodPostal;
                a.Correo    = dt.Correo;
                a.Telefono  = dt.Telefono;

                list.Add(a);
            }
            mc.Dispose();
            return(list);
        }
        public List <Producto> listarProductoCategoria(string nombreCategoria)
        {
            ModelosContext  mc   = new ModelosContext();
            List <Producto> list = new List <Producto>();
            var             li   = mc.Productos.Include(m => m.Marca).Include(c => c.Categoria).Where(s => s.Categoria.Nombre == nombreCategoria).ToList();

            foreach (Producto dt in li)
            {
                Producto p = new Producto();
                p.Nombre       = dt.Nombre;
                p.Imagen       = dt.Imagen;
                p.Cantidad     = dt.Cantidad;
                p.Sku          = dt.Sku;
                p.Promocion    = dt.Promocion;
                p.Detalle      = dt.Detalle;
                p.Marca        = new Marca();
                p.Marca.Nombre = dt.Marca.Nombre;
                p.Marca.Imagen = dt.Imagen;

                list.Add(p);
            }
            mc.Dispose();
            return(list);
        }
        public bool agregarSucursal(Sucursal json)
        {
            ModelosContext mc = new ModelosContext();

            try
            {
                Sucursal a = new Sucursal();
                a.Nombre    = json.Nombre;
                a.Telefono  = json.Telefono;
                a.Direccion = json.Direccion;
                a.CodPostal = json.CodPostal;
                a.Correo    = json.Correo;
                a.Telefono  = json.Telefono;

                mc.Sucursales.Add(a);
                mc.SaveChanges();
                mc.Dispose();
                return(true);
            }
            catch (Exception r)
            {
                return(false);
            }
        }