Exemple #1
0
        public IActionResult AllPosts()
        {
            try
            {
                var CurrentUser = _context.Users.Find(userManager.GetUserId(User));
                if (CurrentUser is null)
                {
                    return(RedirectToAction("Login", "Accounts"));
                }

                var existingAccount = _userStore.GetByIdentityUserId(CurrentUser.Id);
                if (existingAccount.AccountStatus.Equals(Status.Suspended))
                {
                    signInManager.SignOutAsync();
                }

                var GetAllPostsQuery = new GetAllPostsQuery(CurrentUser, existingAccount, _FriendListStore,
                                                            _notificationBox, _userStore, _postStore);

                return(View(GetAllPostsQuery.Handle()));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                return(RedirectToAction(ActionName.ServerError, ControllerName.Accounts));
            }
        }
        public async Task <IActionResult> GetAll([FromQuery] GetAllPostsQuery query, [FromQuery] PaginationQuery paginationQuery)
        {
            var paginationFilter = new PaginationFilter
            {
                PageNumber = paginationQuery.PageNumber,
                PageSize   = paginationQuery.PageSize
            };

            var getAllPostsFilter = new GetAllPostsFilter
            {
                UserId = query.UserId
            };

            var posts = await _postService.GetPostsAsync(getAllPostsFilter, paginationFilter);

            var postResponse = posts.Select(post => new PostResponse
            {
                Id   = post.Id,
                Name = post.Name
            }).ToList();

            if (paginationFilter is null || paginationFilter.PageNumber < 1 || paginationFilter.PageSize < 1)
            {
                return(Ok(new PagedResponse <PostResponse>(postResponse)));
            }

            var paginationResponse = PaginationHelpers.CreatePaginatedResponse(_uriService, paginationFilter, postResponse);

            return(Ok(paginationResponse));
        }
Exemple #3
0
        public async Task <IActionResult> Get()
        {
            var query = new GetAllPostsQuery(User.GetUserId());

            var result = await mediator.Send(query);

            return(Ok(result));
        }
Exemple #4
0
        public async Task <IEnumerable <GetAllPostsDto> > Handle(GetAllPostsQuery request, CancellationToken cancellationToken)
        {
            var result = await _dbContext.Posts
                         .ProjectTo <GetAllPostsDto>(ObjectMapper.Mapper.ConfigurationProvider)
                         .ToListAsync();

            return(result);
        }
        //[Route("getallposts")]
        public async Task <ActionResult <List <Post> > > GetAllPosts()
        {
            var request = new GetAllPostsQuery {
                OrderBy = OrderByPostOptions.ByDate
            };
            var result = await _mediator.Send(request);

            return(result);
        }
Exemple #6
0
        public async Task <IActionResult> Get(PagedCollectionParameters parameters)
        {
            var getAllQuery = new GetAllPostsQuery(_context, _defaultPagingOptions, Endpoint);
            var results     = await getAllQuery.Execute(parameters);

            // Attach form definitions for discoverability
            results.Forms = new[] { Form.FromModel <PostCreateModel>(Endpoint, "POST", "create-form") };

            return(new ObjectResult(results));
        }
Exemple #7
0
        //[Cached(600)]
        public async Task<IActionResult> GetAllAsync([FromQuery]  GetAllPostsQuery postQuery, [FromQuery]PaginationQuery query) {
            var pagination = _mapper.Map<PaginationFilter>(query);
            var filter = _mapper.Map<GetAllPostsFilter>(postQuery);
            var posts = await _postService.GetPostsAsync(filter, pagination);
            var postResponse = _mapper.Map<List<PostResponse>>(posts);
            if (pagination == null || pagination.PageNumber < 1 || pagination.PageSize < 1) {
                return Ok(new PagedResponse<PostResponse>(postResponse));
            }

            var paginationResponse = PaginationHelpers.CreatePaginatedResponse(_uriService, pagination, postResponse);
            return Ok(paginationResponse);
        }
Exemple #8
0
        public async Task ShouldReturnPosts()
        {
            var getAllPostsQuery = new GetAllPostsQuery()
            {
                PageNumber = 1,
                PageSize   = 20,
            };

            var result = await SendAsync(getAllPostsQuery);

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.Items);
        }
        public async Task <IEnumerable <PostDto> > Handle(GetAllPostsQuery request, CancellationToken cancellationToken)
        {
            var posts = await _unitOfWork.Posts
                        .Include(p => p.Person)
                        .Select(p => new PostDto
            {
                Id            = p.Id,
                CreatedAt     = p.CreatedAt,
                PersonName    = p.Person.FirstName + " " + p.Person.LastName,
                PersonId      = p.PersonId,
                PersonImage   = p.Person.Image,
                Image         = p.Image,
                Text          = p.Text,
                LikesCount    = p.Likes.Count,
                CommentsCount = p.Comments.Count
            })
                        .OrderByDescending(p => p.CreatedAt)
                        .ToListAsync();

            return(posts);
        }
        public async Task <IActionResult> GetAll([FromQuery] GetAllPostsQuery query, [FromQuery] PaginationQuery paginationQuery)
        {
            //for paginated result
            var pagination = _mapper.Map <PaginationFilter>(paginationQuery);
            var filter     = _mapper.Map <GetAllPostsFilter>(query);
            var posts      = await _postService.GetPostsAsync(filter, pagination);

            //for without paginated result
            //var posts = await _postService.GetPostsAsync();

            //without using AutoMapper
            //var postResponses = posts.Select(post => new PostResponse
            //{
            //    Id = post.Id,
            //    Name = post.Name,
            //    UserId = post.UserId,
            //    Tags = post.Tags.Select(x => new TagResponse { Name = x.TagName }).ToList()
            //}).ToList();
            //return Ok(postResponses);

            //Using AutoMapper
            //return Ok(_mapper.Map<List<PostResponse>>(posts));

            //using response wrapper
            //return Ok(new Response<List<PostResponse>>(_mapper.Map<List<PostResponse>>(posts)));

            //using response wrapper for pagination
            var postsResponse = _mapper.Map <List <PostResponse> >(posts);


            if (pagination == null || pagination.PageNumber < 1 || pagination.PageSize < 1)
            {
                return(Ok(new PagedResponse <PostResponse>(postsResponse)));
            }

            var paginationResponse = PaginationHelpers.CreatePaginatedResponse(_uriService, pagination, postsResponse);

            return(Ok(paginationResponse));
        }
Exemple #11
0
        public async Task <List <PostDTO> > Handle(GetAllPostsQuery request, CancellationToken cancellationToken)
        {
            List <Post> posts = await postRepository.GetPosts(request.MyGuid);

            return(posts.Select(p => postMapper.GeneratePost(p)).ToList());
        }
Exemple #12
0
            public async Task <IEnumerable <GetAllPostsDto> > Handle(GetAllPostsQuery request, CancellationToken cancellationToken)
            {
                var posts = await _postsApi.GetAllPosts();

                return(_mapper.Map <IEnumerable <GetAllPostsDto> >(posts));
            }
Exemple #13
0
            public async Task <IEnumerable <PostResponse> > Handle(GetAllPostsQuery query, CancellationToken cancellationToken)
            {
                var posts = await api.GetPosts();

                return(posts);
            }
        public async Task <ActionResult <long> > GetPosts([FromQuery] GetAllPostsQuery getAllPostsQuery)
        {
            var posts = await Mediator.Send(getAllPostsQuery);

            return(Ok(posts));
        }