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("Публикация обновлена")); }