/* 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); }
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"); }
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!!!"); } }
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(); }
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); } }
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); }
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); }
// GET: Ingresos public ActionResult Nuevo() { Libro nuevoLibro = new Libro(); return View(nuevoLibro); }
/// <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"); } }
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; }