public async Task <IHttpActionResult> Post([FromBody] PublicationWithAuthorsViewModel publicationWithAuthors)
        {
            PublicationModels publication = publicationWithAuthors.publication;

            using (ApplicationDbContext db = new ApplicationDbContext())
            {
                var authors = new List <AuthorModels>();
                foreach (var item in publicationWithAuthors.addAuthors)
                {
                    authors.Add(db.Author.Where(a => a.Id == item).FirstOrDefault());
                }

                var conference = db.Conference.Where(c => c.Id == publication.ConferenceId).FirstOrDefault();
                var journal    = db.Journal.Where(j => j.Id == publication.JournalId).FirstOrDefault();
                var publisher  = db.Publisher.Where(p => p.Id == publication.PublisherId).FirstOrDefault();

                var UserId = User.Identity.GetUserId();
                db.Publications.Add(new PublicationModels {
                    Annotation        = publication.Annotation,
                    PublicationType   = publication.PublicationType,
                    Authors           = authors,
                    KeyWords          = publication.KeyWords,
                    Language          = publication.Language,
                    SqopusLink        = publication.SqopusLink,
                    WebOfScienceLink  = publication.WebOfScienceLink,
                    ConferenceName    = publication.ConferenceName,
                    Date              = DateTime.Now,
                    Descriptions      = publication.Descriptions,
                    Text              = publication.Text,
                    Name              = publication.Name,
                    NumberOfPages     = publication.NumberOfPages,
                    PublicationTypeId = publication.PublicationTypeId,
                    UserId            = UserId,
                    Journal           = journal,
                    Conference        = conference,
                    Publisher         = publisher,
                    PublisherId       = publication.PublisherId,
                    ConferenceId      = publication.ConferenceId,
                    JournalId         = publication.JournalId
                });
                await db.SaveChangesAsync();
            }
            return(Ok("Публикация добавлена"));
        }
 public async Task <IHttpActionResult> Put(int id, [FromBody] PublicationModels newPublication)
 {
     using (ApplicationDbContext db = new ApplicationDbContext())
     {
         var UserId      = User.Identity.GetUserId();
         var publication = db.Publications.Where(p => p.Id == id).FirstOrDefault();
         if (publication.UserId == UserId || User.IsInRole("Администратор"))
         {
             if (id != newPublication.Id)
             {
                 return(BadRequest());
             }
             db.Entry(newPublication).State = EntityState.Modified;
             await db.SaveChangesAsync();
         }
         else
         {
             return(Ok("Вы не являетесь создателем данной записи"));
         }
     }
     return(Ok("Публикация обновлена"));
 }