Example #1
0
        private IEnumerable <DiscoveryAlbumViewModel> MapAlbumToModel(IEnumerable <Album> toList, IIdentity identity)
        {
            return(toList.OrderByDescending(a => a.CreatedAt)
                   .Select(Mapper.Map <AlbumViewModel>)
                   .Select(avm =>
            {
                var photos = _photoManager.GetAlbumPhotos(avm.Id).ToList()
                             .Where(p => p.HasAccess(identity, Operation.Read, avm))
                             .OrderByDescending(p => p.UploadedAt)
                             .Select(Mapper.Map <PhotoViewModel>)
                             .Select(pvm => new DiscoveryPhotoViewModel(pvm)
                {
                    Url = _fileManager.GetById(pvm.FileId)?.ThumbnailPath
                })
                             .ToList();

                const int maxItems = MAX_NUMBER_PHOTOS_IN_DISCOVERY;

                return new DiscoveryAlbumViewModel(avm)
                {
                    ProfilePicture = "http://gallery.code40.local/app/resources/images/fbpic.jpg",
                    UserName = _userManager.GetById(avm.CreatedBy)?.FullName,
                    PhotoCount = photos.Count,
                    Photos = photos.OnItem(maxItems, (pvm, count) => pvm.OtherX = count - maxItems)
                             .Take(MAX_NUMBER_PHOTOS_IN_DISCOVERY)
                             .ToList()
                };
            }));
        }