public static ArticleModel MapToDataModel(Domain.ArticleAggregate.Article domainModel, ArticleModel target = null) { if (target == null) { target = new ArticleModel(); } target.Id = domainModel.Id; target.Title = domainModel.Title; target.Content = domainModel.Content; target.PublishTime = domainModel.PublishTime; target.Thumbnail = ImageReferenceModel.FromDomainModel(domainModel.Thumbnail); target.IsPublished = domainModel.IsPublished; target.ArticleTags.Clear(); foreach (int tagId in domainModel.TagIds) { target.ArticleTags.Add(new ArticleTagModel { Article = target, ArticleId = target.Id, TagId = tagId }); } return(target); }
public Task UpdateAsync(Domain.ArticleAggregate.Article article) { ArticleModel target = _dbContext.ArticleModels.Local.FirstOrDefault(am => am.Id == article.Id); _dbContext.Entry(ArticleMapper.MapToDataModel(article, target)).State = EntityState.Modified; return(Task.CompletedTask); }
public Task AddAsync(Domain.ArticleAggregate.Article article) { var mappedModel = ArticleMapper.MapToDataModel(article); _dbContext.ArticleModels.Add(mappedModel); article.SetId(mappedModel.Id); return(Task.CompletedTask); }
public async Task <int> Handle(CreateArticleCommand request, CancellationToken ct) { Domain.ArticleAggregate.Article article = new Domain.ArticleAggregate.Article( request.Title, request.PublishDate, request.Content, new ImageReference(request.ThumbnailLocation, request.ThumbnailAltText), request.TagIds, false ); await _repository.AddAsync(article); await _repository.UnitOfWork.SaveEntitiesAsync(ct); return(article.Id); }
public async Task GetById_TestArticle_LoadsCorrectly() { AddTestArticleToDb(); using (ArticleContext actContext = CreateDbContext()) { ArticleRepository repo = new ArticleRepository(actContext); Domain.ArticleAggregate.Article domainModel = await repo.GetByIdAsync(1); Assert.NotNull(domainModel); Assert.Equal(1, domainModel.Id); Assert.Equal(_testArticleTitle, domainModel.Title); Assert.Equal(domainModel.Content, _testContent); Assert.Equal(_testPublishTime, domainModel.PublishTime); Assert.Equal(_testImageLocation, domainModel.Thumbnail.Location); Assert.Equal(_testImageAltText, domainModel.Thumbnail.AltText); Assert.Equal(_testTagIds, domainModel.TagIds); } }