public void Create(ArticleContract article, Guid[] authorIDs)
        {
            List <Author.Entity.Author> authors = dbContext.Set <Author.Entity.Author>().Where(x => authorIDs.Contains(x.Id)).ToList();

            Article.Entity.Article entity = article.ToEntity();
            entity.Authors = authors;
            dbSet.Add(entity);
        }
Пример #2
0
 public static Article ToEntity(this ArticleContract article)
 {
     return(new Article
     {
         Id = article.Id,
         Info = article.Info,
         Exchange = article.Exchange,
         Quantity = article.Quantity,
         VesselId = article.Vessel.Id,
         WasteId = article.Waste.Id,
         ReportId = article.ReportId
     });
 }
Пример #3
0
 public static Entity.Article ToEntity(this ArticleContract article)
 {
     return(new Entity.Article()
     {
         Id = article.Id,
         Title = article.Title,
         ShortDescription = article.ShortDescription,
         Year = article.Year,
         Link = article.Link,
         Authors = article.Authors != null?article.Authors.Select(x => new Author.Entity.Author {
             Id = x.Key
         }).ToArray() : null
     });
 }
Пример #4
0
 public void UpdateArticle(ArticleContract article)
 {
     using (IUnitOfWork unitOfWork = unitOfWorkFactory.Create())
     {
         if (article.Id == Guid.Empty)
         {
             article.Id = Guid.NewGuid();
             unitOfWork.ArticleRepository.Create(article, article.Authors.Select(x => x.Key).ToArray());
         }
         else
         {
             unitOfWork.ArticleRepository.Update(article, article.Authors.Select(x => x.Key).ToArray());
         }
         unitOfWork.Save();
     }
 }
        public void Update(ArticleContract article, Guid[] authorIDs)
        {
            Article.Entity.Article dbArticle = dbSet.FirstOrDefault(x => x.Id == article.Id);

            List <Author.Entity.Author> authorsToRemove = dbArticle.Authors.Where(x => !authorIDs.Contains(x.Id)).ToList();

            Guid[] authorsToAddIDs = authorIDs.Where(x => dbArticle.Authors.FirstOrDefault(y => y.Id == x) == null).ToArray();
            List <Author.Entity.Author> authorsToAdd = GetAuthorsByIDs(authorsToAddIDs);

            dbSet.Attach(dbArticle);

            dbArticle.Title            = article.Title;
            dbArticle.ShortDescription = article.ShortDescription;
            dbArticle.Year             = article.Year;
            dbArticle.Link             = article.Link;

            authorsToRemove.ForEach(x => dbArticle.Authors.Remove(x));
            authorsToAdd.ForEach(x => dbArticle.Authors.Add(x));
        }
Пример #6
0
 public IHttpActionResult UpdateArticle(ArticleContract article)
 {
     articleService.UpdateArticle(article);
     return(Ok());
 }
Пример #7
0
        public IHttpActionResult GetArticleById(Guid id)
        {
            ArticleContract article = articleService.GetArticleById(id);

            return(Ok(article));
        }
Пример #8
0
 public void Post(ArticleContract articleContract)
 {
     _uow.ArticleRepository.CreateOrUpdate(articleContract.ToEntity());
 }