public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            // TODO Get the comic book.
            var comicBook = _comicBooksRepository.Get((int)id,
                                                      includeRelatedEntities: false);

            if (comicBook == null)
            {
                return(HttpNotFound());
            }

            // if a comicbook is found
            var viewModel = new ComicBooksEditViewModel()
            {
                ComicBook = comicBook
            };

            viewModel.Init(Repository, _seriesRepository, _artistsRepository);

            return(View(viewModel));
        }
Ejemplo n.º 2
0
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var comicBook = Context.ComicBooks
                            .Where(cb => cb.Id == id)
                            .SingleOrDefault();

            if (comicBook == null)
            {
                return(HttpNotFound());
            }

            var viewModel = new ComicBooksEditViewModel()
            {
                ComicBook = comicBook
            };

            viewModel.Init(Context);

            return(View(viewModel));
        }
Ejemplo n.º 3
0
        public ActionResult Edit(ComicBooksEditViewModel viewModel)
        {
            ValidateComicBook(viewModel.ComicBook);

            if (ModelState.IsValid)
            {
                var comicBook = viewModel.ComicBook;

                // Variant 1: updates all fields, regardless of which ones were modified
                _comicBooksRepository.Update(comicBook);

                // Variant 2: fetch current values from DB and update only changed fields via additional model binding pass
                // Create an anonymous object in order to keep the shape of the model the same as the incoming form post data.
                //var comicBookToUpdate = new
                //{
                //    ComicBook = Repository.GetComicBook(comicBook.Id, false)
                //};
                //UpdateModel(comicBookToUpdate); // or TryUpdateModel()
                //Repository.SaveChanges();

                TempData["Message"] = "Your comic book was successfully updated!";

                return(RedirectToAction("Detail", new { id = comicBook.Id }));
            }

            viewModel.Init(Repository);

            return(View(viewModel));
        }
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var comicBook = _comicBooksRepository.Get((int)id, false);

            if (comicBook == null)
            {
                return(HttpNotFound());
            }

            var viewModel = new ComicBooksEditViewModel()
            {
                ComicBook = comicBook
            };

            viewModel.Init(SeriesRepository, ArtistRepository, RoleRepository);
            if (TempData["EditErrors"] != null)
            {
                ModelState.AddModelError(string.Empty, TempData["EditErrors"].ToString());
            }

            return(View(viewModel));
        }
        public ActionResult Edit(ComicBooksEditViewModel viewModel)
        {
            ValidateComicBook(viewModel.ComicBook);

            if (ModelState.IsValid)
            {
                try
                {
                    _comicBooksRepository.Update(viewModel.ComicBook);

                    TempData["Message"] = "Your comic book was successfully updated!";

                    return(RedirectToAction("Detail", new { id = viewModel.ComicBook.Id }));
                }
                catch (DbUpdateConcurrencyException ex)
                {
                    var entityProperty = ex.Entries.Single().GetDatabaseValues();
                    if (entityProperty != null)
                    {
                        TempData["EditErrors"] = "Your loaded comic was changed by another user";
                        return(RedirectToAction("Edit", new { id = ((ComicBook)entityProperty.ToObject()).Id }));
                    }
                    else
                    {
                        TempData["Error"] = "Your changed comic was already delete by some else";
                        return(RedirectToAction("Index"));
                    }
                }
            }

            viewModel.Init(SeriesRepository, ArtistRepository, RoleRepository);

            return(View(viewModel));
        }
Ejemplo n.º 6
0
        public ActionResult Edit(ComicBooksEditViewModel viewModel)
        {
            ValidateComicBook(viewModel.ComicBook);

            if (ModelState.IsValid)
            {
                var comicBook = viewModel.ComicBook;
                _comicBooksRepository.Update(comicBook);
                TempData["Message"] = "Your comic book was successfully updated!";

                return(RedirectToAction("Detail", new { id = comicBook.Id }));
            }

            viewModel.Init(Repository);

            return(View(viewModel));
        }
Ejemplo n.º 7
0
        public ActionResult Edit(ComicBooksEditViewModel viewModel)
        {
            ValidateComicBook(viewModel.ComicBook);

            if (ModelState.IsValid)
            {
                var comicBook = viewModel.ComicBook;

                try
                {
                    _comicBooksRepository.Update(comicBook);

                    TempData["Message"] = "Your comic book was successfully updated!";

                    return(RedirectToAction("Detail", new { id = comicBook.Id }));
                }
                catch (DbUpdateConcurrencyException ex)
                {
                    string message = null;
                    var    entityPropertyValues = ex.Entries.Single().GetDatabaseValues();


                    if (entityPropertyValues == null)
                    {
                        message = "The comicbook being updated has been deleted by another user. click the 'Cancel' to return to home.";

                        viewModel.ComicBookHasBeenDeleted = true;
                    }
                    else
                    {
                        message = "The comicbook being updated has already been updated by another user. If you still want to make your change click the 'Save' button again. Otherwise click the 'Cancel' button to discard your changes.";

                        comicBook.RowVersion = ((ComicBook)entityPropertyValues.ToObject()).RowVersion;
                    }


                    ModelState.AddModelError(string.Empty, message);
                }
            }

            viewModel.Init(Repository);

            return(View(viewModel));
        }
Ejemplo n.º 8
0
        public ActionResult Edit(ComicBooksEditViewModel viewModel)
        {
            ValidateComicBook(viewModel.ComicBook);

            if (ModelState.IsValid)
            {
                var comicBook = viewModel.ComicBook;

                Context.Entry(comicBook).State = EntityState.Modified;
                Context.SaveChanges();

                TempData["Message"] = "Your comic book was successfully updated!";

                return(RedirectToAction("Detail", new { id = comicBook.Id }));
            }

            viewModel.Init(Context);

            return(View(viewModel));
        }
        public ActionResult Edit(ComicBooksEditViewModel viewModel)
        {
            ValidateComicBook(viewModel.ComicBook);

            if (ModelState.IsValid)
            {
                var comicBook = viewModel.ComicBook;
                try
                {
                    _comicBooksRepository.Update(comicBook);

                    TempData["Message"] = "Your comic book was successfully updated!";
                    return(RedirectToAction("Detail", new { id = comicBook.Id }));
                }
                catch (DbUpdateConcurrencyException e)
                {
                    string message = null;

                    var entityPropertyValues = e.Entries.Single().GetDatabaseValues();

                    if (entityPropertyValues == null)
                    {
                        message = "Another user deleted this comicbook while you were attempting to edit. Click 'Cancel' to return to the list.";

                        viewModel.ComicBookHasBeenDeleted = true;
                    }
                    else
                    {
                        message = "The comicbook was updated by another user. If you still want to save your changes, click 'Save' again. Otherwise click 'Cancel' to discard changes.";

                        comicBook.RowVersion = ((ComicBook)entityPropertyValues.ToObject()).RowVersion;
                    }

                    ModelState.AddModelError(string.Empty, message);
                }
            }

            viewModel.Init(Repository, _seriesRepository, _artistsRepository);

            return(View(viewModel));
        }
Ejemplo n.º 10
0
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var comicBook = _comicBooksRepository.Get((int)id, includeRelated: false);

            if (comicBook == null)
            {
                return(HttpNotFound());
            }

            var viewModel = new ComicBooksEditViewModel()
            {
                ComicBook = comicBook
            };

            viewModel.Init(Repository);

            return(View(viewModel));
        }
Ejemplo n.º 11
0
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            // TODO Get the comic book.
            var comicBook = new ComicBook();

            if (comicBook == null)
            {
                return(HttpNotFound());
            }

            var viewModel = new ComicBooksEditViewModel()
            {
                ComicBook = comicBook
            };

            viewModel.Init();

            return(View(viewModel));
        }