public async Task <IActionResult> Edit(int?id) { if (id == null) { return(NotFound()); } var libro = await _context.Libros.FindAsync(id); if (libro == null) { return(NotFound()); } var lvm = new EdicionLibroViewModel { ISBN = libro.ISBN, Id = libro.Id, Portada = null, Titulo = libro.Titulo, Contenido = null, Descripcion = libro.Descripcion, AutorId = libro.AutorId, EditorialId = libro.EditorialId, GeneroId = libro.GeneroId }; ViewData["AutorId"] = new SelectList(_context.Autores, "Id", "Apellido", libro.AutorId); ViewData["EditorialId"] = new SelectList(_context.Editoriales, "Id", "Nombre", libro.EditorialId); ViewData["GeneroId"] = new SelectList(_context.Generos, "Id", "Nombre", libro.GeneroId); return(View(lvm)); }
public async Task <IActionResult> EditConCapitulos(int id, [Bind("Id,ISBN,Portada,Contenido,Titulo,Descripcion,AutorId,GeneroId,EditorialId")] EdicionLibroViewModel l) { if (id != l.Id) { return(NotFound()); } var libro = _context.Libros.FirstOrDefault(v => v.Id == id); if (this.existeLibro(l.ISBN, l.Id)) { ModelState.AddModelError("ISBN", "Este ISBN ya se encuentra en uso para otro libro"); } if (ModelState.IsValid && (!this.existeLibro(l.ISBN, l.Id) || isbnEditable(l.ISBN, l.Id))) { try { libro.ISBN = l.ISBN; libro.Id = l.Id; libro.Portada = checkearPorNull(l.Portada, libro.Portada, "Images"); libro.Titulo = l.Titulo; libro.Contenido = null; libro.Descripcion = l.Descripcion; libro.AutorId = l.AutorId; libro.EditorialId = l.EditorialId; libro.GeneroId = l.GeneroId; _context.Update(libro); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!LibroExists(l.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } l.Capitulos = _context.Capitulos .Where(c => c.LibroId == libro.Id) .OrderBy(c => c.NumeroCapitulo) .ToList(); ViewData["AutorId"] = new SelectList(_context.Autores, "Id", "Apellido", l.AutorId); ViewData["EditorialId"] = new SelectList(_context.Editoriales, "Id", "Nombre", l.EditorialId); ViewData["GeneroId"] = new SelectList(_context.Generos, "Id", "Nombre", l.GeneroId); return(View(l)); }
public async Task <IActionResult> Edit(int id, [Bind("Id,ISBN,Portada,Titulo,Contenido,Descripcion,AutorId,GeneroId,EditorialId")] EdicionLibroViewModel l) { if (id != l.Id) { return(NotFound()); } if (isbnEditable(l.ISBN, l.Id) && (l.Portada == null || l.Contenido == null)) { var libro = _context.Libros.FirstOrDefault(v => v.Id == id); libro.ISBN = l.ISBN; libro.Id = l.Id; libro.Portada = checkearPorNull(l.Portada, libro.Portada, "Images"); libro.Titulo = l.Titulo; libro.Contenido = checkearPorNull(l.Contenido, libro.Contenido, "Libros"); libro.Descripcion = l.Descripcion; libro.AutorId = l.AutorId; libro.EditorialId = l.EditorialId; libro.GeneroId = l.GeneroId; await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } if (ModelState.IsValid && isbnEditable(l.ISBN, l.Id)) { try { string stringFileNamePortada = this.UploadFile(l.Portada, "Images"); string stringFileNameContenido = this.UploadFile(l.Contenido, "Libros"); var libro = new Libro { Id = l.Id, ISBN = l.ISBN, Portada = stringFileNamePortada, Titulo = l.Titulo, Contenido = stringFileNameContenido, Descripcion = l.Descripcion }; _context.Update(libro); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!LibroExists(l.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["AutorId"] = new SelectList(_context.Autores, "Id", "Apellido", l.AutorId); ViewData["EditorialId"] = new SelectList(_context.Editoriales, "Id", "Nombre", l.EditorialId); ViewData["GeneroId"] = new SelectList(_context.Generos, "Id", "Nombre", l.GeneroId); return(View(l)); }