public ActionResult Edit(int id, AdminAddEditModel model, IEnumerable <HttpPostedFileBase> fileUpload) { using (LibraryContext db = new LibraryContext()) { if (db.Records.Find(id).ISBN != model.ISBN) { if (!ModelState.IsValidField("RecordName") || !ModelState.IsValidField("RecordAuthor") || !isValidISBN(model.ISBN) || !ModelState.IsValidField("CreationDate")) { model.Publishers = getPublishersList(); return(View(model)); } } if (model.PublisherId != 0) // Воспользовались списком { int realPublisherId = model.PublisherId - 1; var recordQuery = (from r in db.Records where r.RecordId == id select r).First(); editRecord(recordQuery, model); recordQuery.RecordPublisher = (from p in db.Publishers where p.PublisherId == realPublisherId select p).First(); db.SaveChanges(); loadPdf(recordQuery.ISBN, fileUpload); return(Redirect("/Records/Index")); } // Новое издательство. Валидация создаваемого издательства if (db.Publishers.Where(rec => rec.PublisherName == model.PublisherName).FirstOrDefault() != null) { ModelState.AddModelError("PublisherName", "Издатель с таким названием уже существует"); } if (ModelState.IsValidField("PublisherName") && ModelState.IsValidField("PublisherEmail")) { var recordQuery = (from r in db.Records where r.RecordId == id select r).First(); editRecord(recordQuery, model); editPublisher(recordQuery.RecordPublisher, model.PublisherName, model.PublisherAddress, model.PublisherNumber, model.PublisherEmail); db.Publishers.Add(recordQuery.RecordPublisher); db.SaveChanges(); loadPdf(recordQuery.ISBN, fileUpload); return(Redirect("/Records/Index")); } else { model.Publishers = getPublishersList(); return(View(model)); } } }