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); }
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 }); }
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 }); }
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)); }
public IHttpActionResult UpdateArticle(ArticleContract article) { articleService.UpdateArticle(article); return(Ok()); }
public IHttpActionResult GetArticleById(Guid id) { ArticleContract article = articleService.GetArticleById(id); return(Ok(article)); }
public void Post(ArticleContract articleContract) { _uow.ArticleRepository.CreateOrUpdate(articleContract.ToEntity()); }