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