Beispiel #1
0
        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);
        }