Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
                }
            }
        }