예제 #1
0
        public async Task <FeedPageListModel> GetFeedsAsync(FeedFilterModel criterias)
        {
            if (criterias == null)
            {
                criterias = new FeedFilterModel();
            }

            var filterRequest = new FeedFilter()
            {
                Page     = criterias.Page,
                PageSize = _pagerOptions.PageSize,
                Keyword  = criterias.Search
            };

            try
            {
                var feedPageList = await _feedService.GetAsync(filterRequest);

                var feeds = await _feedModelService.MapFeedsResultToModelAsync(feedPageList.Collections);

                var feedPage = new FeedPageListModel(feeds)
                {
                    Filter      = criterias,
                    TotalPage   = feedPageList.TotalPage,
                    TotalResult = feedPageList.TotalResult
                };

                return(feedPage);
            }
            catch (Exception)
            {
                throw;
            }
        }
예제 #2
0
        public async Task <FeedPageListModel> GetUserFeedsAsync(ClaimsPrincipal claimsPrincipal, FeedFilterModel criterias)
        {
            if (criterias == null)
            {
                criterias = new FeedFilterModel();
            }

            if (string.IsNullOrEmpty(criterias.UserIdentityId))
            {
                return(new FeedPageListModel(new List <FeedModel>())
                {
                    Filter = criterias
                });
            }

            var currentUserId = GetCurrentUserId(claimsPrincipal);
            var userId        = await _userManager.DecryptUserIdAsync(criterias.UserIdentityId);

            var filterRequest = new FeedFilter
            {
                Page            = criterias.Page,
                PageSize        = _pagerOptions.PageSize,
                Keyword         = criterias.Search,
                CreatedById     = userId,
                CanGetInactived = currentUserId == userId
            };

            try
            {
                var feedPageList = await _feedService.GetAsync(filterRequest);

                var feeds = await _feedModelService.MapFeedsResultToModelAsync(feedPageList.Collections);

                var feedPage = new FeedPageListModel(feeds)
                {
                    Filter      = criterias,
                    TotalPage   = feedPageList.TotalPage,
                    TotalResult = feedPageList.TotalResult
                };

                return(feedPage);
            }
            catch (Exception)
            {
                throw;
            }
        }