async Task IBlogRepository.Save(Domain.Model.Blog blog) { if (!_db.Blogs.Any(a => a.Id == blog.Id)) { _db.Blogs.Add(blog); } blog.Posts.ToList().ForEach(a => AddPost(a)); await _db.SaveChangesAsync(); }
async Task IBlogRepository.Delete(Domain.Model.Blog blog) { var found = await _db.Blogs.FirstOrDefaultAsync(a => a.Id == blog.Id); if (found == null) { throw new Exception($"Blog not found (id: {blog.Id}"); } found.Posts.ToList().ForEach(a => _db.Posts.Remove(a)); _db.Blogs.Remove(found); await _db.SaveChangesAsync(); }
async Task IBlogCommand.Execute(Command.CreateBlog command) { var blog = new Domain.Model.Blog(Guid.NewGuid()); await _repository.Save(blog); }