/*
        Colocar el mensaje de error para cada campo
        Poner en true el argumento del Summary para que solo muestre errores del modelo
         */
        private void ValidarModelo(Libro libro)
        {
            //  Usamos validacion explicita
              //
              if (string.IsNullOrWhiteSpace(libro.ISBN13))
            ModelState.AddModelError("ISBN13", "El campo ISBN nuevo no puede dejarse vacio!!");
              else
              {
            if (libro.ISBN13.Length != 13)
              ModelState.AddModelError("ISBN13", "El numero de identificacion ISBN debe tener exactamente 13 caracteres!!");
              }

              if (string.IsNullOrWhiteSpace(libro.Editorial))
            ModelState.AddModelError("Editorial", "Debe completar el campo Editorial");

              if (string.IsNullOrWhiteSpace(libro.Autores))
            ModelState.AddModelError("Autores", "El libro debe tener al menos un autor. Coloque un autor por cada linea");

              if (string.IsNullOrWhiteSpace(libro.Titulo))
            ModelState.AddModelError("Titulo", "Alguna vez alguien vio un libro sin titulo??");
              else
              {
            //  agregamos un error de modelo "puro" --> seria una violacion a las reglas de negocio
            //
            if (libro.Titulo.ToUpper().Contains("XXX"))
              ModelState.AddModelError("", "El titulo del libro no respeta las normas de la empresa");
              }

              if (ModelState.IsValidField("Precio"))
              {
            if (libro.Precio.HasValue && libro.Precio <= 0)
              ModelState.AddModelError("Precio", "El valor del precio debe ser un numero mayor a cero!!");
              }
        }
        // GET: Ingresos
        public ActionResult Nuevo()
        {
            Libro nuevoLibro = new Libro();

            //le pasamos el modelo a la vista llamada NUEVO
            return View(nuevoLibro);
        }
示例#3
0
 private void ValidarModeloSolo(Libro libro)
 {
     if (ModelState.IsValidField("Titulo"))
       {
     if (libro.Titulo.ToUpper().Contains("XXX"))
       ModelState.AddModelError("", "Esta libreria es bastante decente!!!");
       }
 }
        public ActionResult Agregar(Libro newLibro, HttpPostedFileBase imagen)
        {
            OMBContext ctx = DB.Contexto;
              string imgPathFisica = null;

              //  ValidarModelo(newLibro);

              ValidarSoloModelo(newLibro);

              if (ModelState.IsValid)
              {
            try
            {
              if (imagen != null)
              {
            //  seteamos una imagen de no mas de 200K...
            //
            if (imagen.ContentLength > 200000)
              return new HttpStatusCodeResult(HttpStatusCode.NotAcceptable, "El tamaño del archivo no debe superar los 200K");

            //  obtenemos la imagen y la guardamos en el directorio fisico del servidor
            //  tambien guardamos la ruta virtual para almacenarla en la DB
            //  MapPath() obtiene una ruta fisica a partir de una virtual
            //
            string fileName = Path.GetFileName(imagen.FileName);      //  el nombre del archivo del cliente

            imgPathFisica = Path.Combine(Server.MapPath("/Imagenes"), fileName);

            imagen.SaveAs(imgPathFisica);

            newLibro.PathImagen = Path.Combine("/Imagenes", fileName);
              }
              ctx.Libros.Add(newLibro);
              ctx.SaveChanges();
            }
            catch (Exception)
            {
              //  si hubo algun error borramos la imagen
              //
              if (imgPathFisica != null)
            System.IO.File.Delete(imgPathFisica);

              return new HttpUnauthorizedResult();
            }
            //  Descomentar para probar la validacion, sin tener que guardar en DB. Comentar SaveChanges()
            //  return View("NewLibro", newLibro);

            return View();
              }
              ViewData.Model = newLibro;
              return View("NewLibro");
        }
示例#5
0
        private void ValidarModelo(Libro libro)
        {
            if (string.IsNullOrEmpty(libro.ISBN13))
            ModelState.AddModelError("ISBN13", "El campo ISBN debe estar completo");

              if (string.IsNullOrEmpty(libro.Titulo))
            ModelState.AddModelError("Titulo", "Alguna vez viste un libro sin titulo???");
              else
              {
            if (libro.Titulo.ToUpper().Contains("XXX"))
              ModelState.AddModelError("", "Esta libreria es bastante decente!!!");
              }
        }
示例#6
0
        public PartialViewResult EditarLibro(Libro entidad)
        {
            Sesion ses = Session["SESION_USER"] as Sesion;

              ViewBag.Habilitar = false;

              if (ses != null)
              {
            if (ses.Perfil.Nombre.Contains("Admin") && entidad.Precio.Value < 30)
              ViewBag.Habilitar = true;
              }
              return PartialView();
        }
示例#7
0
        public bool ActualizarLibro(Libro libro)
        {
            OMBContext ctx = DB.Contexto;

              try
              {
            ctx.MostrarCambios();
            ctx.Entry(libro).State = EntityState.Modified;
            ctx.SaveChanges();
              }
              catch (Exception)
              {
            return false;
              }
              return true;
        }
        public ActionResult AddNew(Libro nuevoLibro)
        {
            OMBContext ctx = DB.Contexto;

            //VALIDACIONES, ESTA BUENISIMO COMO SE HACEN
            //manejamos las validaciones de cada campo
            if (String.IsNullOrEmpty(nuevoLibro.ISBN13))
            {
            ModelState.AddModelError("ISBN13", "El campo debe estar completo");
            }
            if (String.IsNullOrEmpty(nuevoLibro.ISBN10))
            {
            ModelState.AddModelError("ISBN10", "El campo debe estar completo");
            }
            if (String.IsNullOrEmpty(nuevoLibro.Titulo))
            {
            ModelState.AddModelError("Titulo", "El campo debe estar completo");
            }
            else
            {
            //cuando no le pones el atributo de la PROPIEDAd, se consideran que son errores del MODELO
            if (nuevoLibro.Titulo.Contains("xxx"))
            {
                ModelState.AddModelError("", "Esta Librerìa es porno");
            }
            }

            //SI EL MODELO ES VALIDO
            if (ModelState.IsValid)
            {
            try
            {
                ctx.Libros.Add(nuevoLibro);
                ctx.SaveChanges();
                return View("Resultado");
            }
            catch
            {
                return new HttpUnauthorizedResult();
            }
            }
            else
            {
            return View("Nuevo", nuevoLibro);
            }
        }
示例#9
0
        public ActionResult AddNew(Libro nuevoLibro, HttpPostedFileBase imagen)
        {
            OMBContext ctx = DB.Contexto;
              string imgFileDestino = null;

              //  ValidarModelo(nuevoLibro);

              ValidarModeloSolo(nuevoLibro);

              if (ModelState.IsValid)
              {
            try
            {
              if (imagen != null)
              {
            imgFileDestino = Path.Combine(Server.MapPath("/Imagenes"),
              Path.GetFileName(imagen.FileName));

            //FileStream dest = System.IO.File.Create(imgFileDestino);

            imagen.SaveAs(imgFileDestino);

            nuevoLibro.PathImagen = Path.Combine("/Imagenes",
              Path.GetFileName(imagen.FileName));
              }

              ctx.Libros.Add(nuevoLibro);
              ctx.SaveChanges();

              return View("Resultado");
            }
            catch (Exception ex)
            {
              if (imgFileDestino != null)
            System.IO.File.Delete(imgFileDestino);

              return new HttpUnauthorizedResult();
            }
              }
              else
            return View("Nuevo", nuevoLibro);
        }
示例#10
0
        public ActionResult EditarLibro(Libro libro, string isbn13)
        {
            ProductServices serv = new ProductServices();
              Libro libroDominio;

              libroDominio = serv.GetLibroFromIsbn(isbn13);

              if (libroDominio != null)
              {
            if (TryUpdateModel(libroDominio, new string[]
                          {
                            nameof(libro.ISBN10), nameof(libro.Titulo),
                            "Autores", "Editorial", "Precio"
                          }))
            {
              if (!serv.ActualizarLibro(libroDominio))
            return new HttpStatusCodeResult(500);
            }
              }

              return View(libroDominio);
        }
        public ActionResult Agregar(Libro newLibro)
        {
            OMBContext ctx = DB.Contexto;

              if (string.IsNullOrEmpty(newLibro.ISBN13))
            ModelState.AddModelError("ISBN13", "El campo ISBN nuevo no puede dejarse vacio!!");

              if (ModelState.IsValid)
              {
            try
            {
              ctx.Libros.Add(newLibro);
              ctx.SaveChanges();
            }
            catch (Exception)
            {
              return new HttpUnauthorizedResult();
            }
            return View();
              }
              return View("NewLibro", newLibro);
        }
示例#12
0
        // GET: Ingresos
        public ActionResult Nuevo()
        {
            Libro nuevoLibro = new Libro();

              return View(nuevoLibro);
        }
示例#13
0
        /// <summary>
        /// Aunque el nombre del metodo diga esto, tambien validamos el precio, dentro del rango (0, 2000]
        /// </summary>
        /// <param name="libro"></param>
        private void ValidarSoloModelo(Libro libro)
        {
            if (libro.Precio.HasValue)
              {
            if (libro.Precio <= 0 || libro.Precio > 2000)
              ModelState.AddModelError("Precio", "El valor del libro debe ser positivo y menor a $2000");
              }

              if (ModelState.IsValidField("Titulo"))
              {
            if (libro.Titulo.ToUpper().Contains("XXX"))
              ModelState.AddModelError("", "El titulo del libro no respeta las normas de la empresa");
              }
        }
示例#14
0
 public LibrosLectores(string isbn, int nCarnet, DateTime?fechaPrestamo, DateTime?fechaDevolucion, Lector lectores, Libro libro)
 {
     Isbn            = isbn;
     NCarnet         = nCarnet;
     FechaPrestamo   = fechaPrestamo;
     FechaDevolucion = fechaDevolucion;
     Lectores        = lectores;
     Libro           = libro;
 }