public async Task <IEnumerable <PostViewModel> > GetPostsAsync(PostPageFilters filters) { var posts = await _postQueryRepository.GetPagePostsAsync(new PostPageFiltersDto { PageNumber = filters.PageNumber, ItemsPerPage = filters.ItemsPerPage }); var viewModels = posts.Select(x => x.ToViewModel()).ToList(); var url = new StringBuilder(); url.Append(_httpContextAccessor.HttpContext?.Request?.Scheme); url.Append("://"); url.Append(_httpContextAccessor.HttpContext?.Request?.Host.Value); url.Append("/"); foreach (var post in viewModels) { SetImagesUrl(post.Images, url); post.CountLike = post.Likes.Count(x => x.IsLike) - post.Likes.Count(x => !x.IsLike); if (post.User.Image != null) { post.User.Image.Url = $"{url}{post.User.Image.Path.Replace(@"\", "/")}"; continue; } post.User.Image ??= new ImageViewModel { Url = $"{url}{_globalSettings.Paths.DefaultPhotoProfilePath.Replace(@"\", "/")}", Name = _globalSettings.Paths.DefaultPhotoName }; post.Likes = post.Likes.Where(x => x.UserId == _userContext.UserId).ToList(); } return(viewModels); }