Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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));
        }