private Blog GetBlogViaSqlReader(IDataReader readerSource) { readerSource.Read(); var receivedBlog = _blogBuilder.CreateBlog(Convert.ToString(readerSource["BlogTitle"]), Convert.ToDateTime(readerSource["CreationDate"])); var receivedBlogId = Convert.ToInt32(readerSource["BlogId"]); _blogBuilder.SetBlogId(receivedBlog, receivedBlogId); readerSource.Close(); var userRelatedWithBlog = _blogUserRepository.GetBlogUserByBlogId(receivedBlogId); _blogUserBuilder.SetUserBlog(userRelatedWithBlog, receivedBlog); _blogBuilder.SetBlogUser(receivedBlog, userRelatedWithBlog); var receivedBlogCategories = _categoryRepository.GetBlogCategories(receivedBlogId); foreach (var categoryToAdd in receivedBlogCategories) { _categoryBuilder.SetBlogRelatedTo(categoryToAdd, receivedBlog); receivedBlog.AddCategory(categoryToAdd); } var receivedBlogPosts = _postRepository.GetPostsByBlogId(receivedBlogId); foreach (var postToAdd in receivedBlogPosts) { _postBuilder.SetBlogRelatedTo(postToAdd, receivedBlog); receivedBlog.AddPost(postToAdd); } return(receivedBlog); }
public AnswerStatus CreatePost(PostDto postDTO) { using (var uow = _unitOfWorkFactory.Create()) { try { var postToCreate = _postBuilder.CreatePost(postDTO.PostTitle, postDTO.PostContent, postDTO.CreationDate); var blogRepository = _repositoryFactory.CreateBlogRepository(uow); var postBlog = blogRepository.GetEntityById(postDTO.RelatedTo.Id); _postBuilder.SetBlogRelatedTo(postToCreate, postBlog); var postRepository = _repositoryFactory.CreatePostRepository(uow); postRepository.CreateEntity(postToCreate); var categoryRepository = _repositoryFactory.CreateCategoryRepository(uow); if (postDTO.PostCategories != null) { foreach (var categoryDTO in postDTO.PostCategories) { var categoryToAdd = categoryRepository.GetEntityById(categoryDTO.Id); if (categoryToAdd != null) { postRepository.AddCategoryToPost(postToCreate, categoryToAdd); } } } uow.SaveChanges(); return(AnswerStatus.Successfull); } catch (Exception exc) { _logger.Log(exc.ToString()); return(AnswerStatus.Failed); } } }