Ejemplo n.º 1
0
        private Post GetPostViaSqlReader(IDataReader readerSource)
        {
            var receivedPost = _postBuilder.CreatePost(Convert.ToString(readerSource["PostTitle"]),
                                                       Convert.ToString(readerSource["PostContent"]), Convert.ToDateTime(readerSource["CreationDate"]));
            var receivedpostId = Convert.ToInt32(readerSource["PostId"]);

            _postBuilder.SetPostId(receivedPost, receivedpostId);
            return(receivedPost);
        }
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);
                }
            }
        }