public ActionResult Edit(Book book) { try { if (book.Type == null) { book.Type = book.TypeHidden; } if (book.isPay > 0) { book.IdAccount = book.IdAccountHidden; book.RepeatPeriod = book.RepeatPeriodHidden; } else { if ((book.Repeat == 1) && (book.RepeatPeriod == Book.BookRepeatPeriod.NoRepeat)) { ModelState.AddModelError("", "Repeat Period is necessary"); } } if (ModelState.IsValid == false) { User user = (User)Session["User"]; var listCategories = _categoryRepository.GetByUser(user.IdUser); var listAccounts = _accountRepository.GetByUser(user.IdUser); ViewBag.listCategories = new SelectList(listCategories, "IdCategory", "Description", "Selecione uma categoria"); ViewBag.listAccounts = new SelectList(listAccounts, "IdAccount", "Description", "Selecione uma conta"); return(View(book)); } _bookRepository.Update(book); _bookRepository.SaveChanges(); if (book.isPay == 0) { if (book.NParcels > 0) { var parcels = _parcelRepository.GetByBook(book.IdBook).ToList(); foreach (Parcel pc in parcels) { _parcelRepository.Remove(pc.IdParcel); } _parcelRepository.SaveChanges(); Parcel parcel = new Parcel(); parcel.IdBook = book.IdBook; for (int i = 1; i <= book.NParcels; i++) { parcel.ParcelNumber = i; _parcelRepository.Add(parcel); _parcelRepository.SaveChanges(); } } } return(RedirectToAction("Index")); } catch (Exception ex) { ModelState.AddModelError("", "Não foi possível salvar as mudanças. Tente Novamente."); return(View()); } }