Exemplo n.º 1
0
        public async Task <List <AlbumPreviewDto> > GetAlbumsPreviewAsync()
        {
            List <AlbumPreview> albumsPreview = await this._albumPreviewCollection.Find(new BsonDocument()).ToListAsync();

            if (albumsPreview.Count == 0)
            {
                DateTime            createdAt        = DateTime.UtcNow;
                Random              rnd              = new Random();
                List <AlbumPreview> returnCollection = new List <AlbumPreview>();
                List <Album>        albums           = await this._albumsRepository.GetListAsync();

                List <User> users = await this._usersRepository.GetListAsync();

                foreach (Album album in albums)
                {
                    List <Photo> photos = await this._photosRepository.GetByAlbumIdAsync(album.ExternalId);

                    AlbumPreview albumPreview = this._mapper.Map <Album, AlbumPreview>(album);
                    this._mapper.Map <User, AlbumPreview>(users.SingleOrDefault(u => u.ExternalId == album.UserId), albumPreview);
                    albumPreview.PhotoCount         = photos.Count;
                    albumPreview.RandomThumbnailUrl = photos.ElementAt(rnd.Next(photos.Count - 1)).ThumbnailUrl;
                    albumPreview.CreatedAt          = createdAt;
                    returnCollection.Add(albumPreview);
                }
                albumsPreview = returnCollection;
                await this._albumPreviewCollection.InsertManyAsync(albumsPreview);
            }
            return(this._mapper.Map <List <AlbumPreview>, List <AlbumPreviewDto> >(albumsPreview));
        }
Exemplo n.º 2
0
        private void InitializeAlbumsPreview(List <Album> data = null)
        {
            string msg;

            if (data == null)
            {
                data = GetDataByFilter();
                msg  = "Найдено альбомов по фильтру: " + data.Count.ToString();
            }
            else
            {
                msg = "Найдено альбомов по поиску: " + data.Count.ToString();
            }


            ContentPanel.Controls.Clear();

            AlbumPreview[] previews = new AlbumPreview[data.Count];
            for (int i = 0; i < previews.Length; i++)
            {
                previews[i] = new AlbumPreview();
                previews[i].SetInitVariables(this, data[i]);
                previews[i].Name     = data[i].Name + data[i].Author.Name;
                previews[i].Size     = new Size(240, 290);
                previews[i].TabIndex = 1;
                //
                ContentPanel.Controls.Add(previews[i]);
            }
            InfoLabel.Text = msg;
            InitializeAlbumsPreviewLocation();
        }