Пример #1
0
        public async Task <PagedResultDTO <PostDTO> > GetPageAsync(int id, int page, int pageSize, bool justMyPosts, string srchStr = null)
        {
            var pagedResult = await _db.Posts.GetPageAsync(id, page, pageSize, justMyPosts, srchStr);

            pagedResult.Data.ForEach(p =>
                                     p.PostFiles = p.PostFiles.Count > 0 ?
                                                   new List <PostFile>()
            {
                p.PostFiles.First()
            }
                : new List <PostFile>()
                                     );

            Func <Post, PostDTO> func = post =>
            {
                var postDTO = PostMapper.ConvertToPostDTO(post);
                postDTO.Files       = FileMapper.ConvertToFileInfoDTOCollection(post.PostFiles);
                postDTO.UserDTO     = UserMapper.ConvertToUserDTO(post.User);
                postDTO.CommentsDTO = CommentMapper.ConvertToCommentDTOCollection(post.Comments);
                var usersDTOLikes = new List <UserDTO>();
                post.PostLikes.ToList().ForEach(pl =>
                {
                    var userDTO     = UserMapper.ConvertToUserDTO(pl.User);
                    userDTO.RoleDTO = RoleMapper.ConvertToRoleDTO(pl.User.Role);
                    usersDTOLikes.Add(userDTO);
                });
                postDTO.UsersLikes = usersDTOLikes;
                return(postDTO);
            };

            var pageResultDTO = PagedResultMapper.MapToDTO(pagedResult, func);

            return(pageResultDTO);
        }
Пример #2
0
        public void ConvertToRoleDTO_should_throw_argument_null_exception_when_input_is_null()
        {
            //arrange
            Role inputRole = null;

            //act
            var exception = Assert.Throws <ArgumentNullException>(() =>
                                                                  RoleMapper.ConvertToRoleDTO(inputRole));
        }
Пример #3
0
        public async Task <List <UserDTO> > GetUsersLikes(int postId)
        {
            var users = await db.UsersLikes.GetUsersLikesForPost(postId);

            var usersDTO = users.Select(u =>
            {
                var userDTO     = UserMapper.ConvertToUserDTO(u);
                userDTO.RoleDTO = RoleMapper.ConvertToRoleDTO(u.Role);
                return(userDTO);
            });

            return(usersDTO.ToList());
        }
Пример #4
0
        public async Task <PostDTO> GetAsync(int id)
        {
            var post = await _db.Posts.GetAsync(id);

            if (post == null)
            {
                throw new NotFoundException("Post is not found!");
            }
            var postDTO = PostMapper.ConvertToPostDTO(post);

            postDTO.UserDTO         = UserMapper.ConvertToUserDTO(post.User);
            postDTO.UserDTO.RoleDTO = RoleMapper.ConvertToRoleDTO(post.User.Role);

            return(postDTO);
        }
Пример #5
0
        public void ConvertToRoleDTO_should_map_Role_to_RoleDTO()
        {
            //arrange
            Role inputRole = new Role
            {
                Id   = 1,
                Name = "DefaultRole"
            };

            //act
            var resultRoleDTO = RoleMapper.ConvertToRoleDTO(inputRole);

            //assert
            Assert.Equal(inputRole.Id, resultRoleDTO.Id);
            Assert.Equal(inputRole.Name, resultRoleDTO.Name);
        }