private async Task <PostManagerViewModel> CreatePostManagerViewModel(
            PostManagerSearch searchData, bool postDeleted)
        {
            var posts = await GetBlogPosts(searchData);

            var resultMsg = GetDeleteMsg(postDeleted);

            resultMsg = GetSearchResultMsg(resultMsg, searchData, posts.Any());

            return(new PostManagerViewModel
            {
                BlogPosts = posts,
                SearchData = searchData,
                ResultMsg = resultMsg
            });
        }
        private static string GetSearchResultMsg(string currentMessage,
                                                 PostManagerSearch searchData, bool anyPosts)
        {
            if (anyPosts)
            {
                return(currentMessage);
            }
            if (searchData != null)
            {
                currentMessage = currentMessage + MsgSearchNoResult;
            }
            else
            {
                currentMessage = currentMessage + MsgBlogIsEmpty;
            }

            return(currentMessage);
        }
Beispiel #3
0
        public async Task <ICollection <Post> > GetPostsBySearchData(PostManagerSearch searchData)
        {
            var postList = await GetAllPosts();

            if (searchData == null)
            {
                return(postList);
            }

            if (!postList.Any())
            {
                return(postList);
            }

            switch (searchData.PublishStatus)
            {
            case (int)PostManagerSearch.PublishStatusList.Any:
                break;

            case (int)PostManagerSearch.PublishStatusList.Published:
                postList = postList.Where(p => p.IsPublished).ToList();
                break;

            case (int)PostManagerSearch.PublishStatusList.Unpublished:
                postList = postList.Where(p => !p.IsPublished).ToList();
                break;

            default:
                break;
            }

            if (!string.IsNullOrEmpty(searchData.PostTitle))
            {
                postList = postList.Where(p => p.Title.Contains(searchData.PostTitle,
                                                                StringComparison.OrdinalIgnoreCase)).ToList();
            }

            return(postList);
        }
 private async Task <ICollection <Post> > GetBlogPosts(PostManagerSearch searchData)
 {
     return(await _postRepo.GetPostsBySearchData(searchData));
 }