public async Task <List <PresentationCardModel> > CreateCardsModel(List <Presentation> presentationsList) { var presentations = new List <PresentationCardModel>(); foreach (var item in presentationsList) { var tagsResult = await _tagsRepository.GetTagsForPresentation(item); var categoryResult = await _categoriesRepository.GetCategoryForPresentation(item); var usersResult = await _usersRepository.GetUsersForPresentation(item.Id, PagingOptions.CreateWithTheseOrDefaults(1, 10)); var usersList = new List <PresentationCardModel.UserInfo>(); if (usersResult.Value != null) { usersList = usersResult.Value.Select(u => new PresentationCardModel.UserInfo { Name = u.Name, Href = $"/{nameof(ExploreController).WithoutControllerPart()}/{nameof(ExploreController.PublicPresentationsForUser)}" + $"?userId={u.Id}&page=1&itemsPerPage=10" }).ToList(); } var thumbnail = await _thumbnailRepository.GetThumbnailURLFor(item.FileID); presentations.Add(new PresentationCardModel() { UserInfos = usersList, Category = categoryResult.Value, Presentation = item, ThumbnailURL = thumbnail.Value, Tags = tagsResult.Value.Select(t => t.Name).ToList() }); } return(presentations); }