Esempio n. 1
0
        public async Task <GalleryPagedItemsList> GetGalleryItemsPagedAsync(int pageNumber, int pageSize)
        {
            var galleryPagedItemsList = new GalleryPagedItemsList(pageNumber, pageSize);

            using (NpgsqlConnection connection = new NpgsqlConnection(base.connectionString))
            {
                string sql = @"SELECT
                                    COUNT(1) OVER()		AS ""ResultsCount"",
                                    ""Id"",
                                    ""ImageId"",
                                    ""SmallPreviewFileId"",
                                    ""ArticleId"",
                                    ""Title"",
                                    ""Description"",
                                    ""Timestamp""
                                    FROM ""Gallery""
                                    LIMIT :PageSize
                                    OFFSET(:PageNumber - 1) * :PageSize;
                                    ";

                using (NpgsqlCommand command = new NpgsqlCommand(sql, connection))
                {
                    command.Parameters.AddWithValue("PageNumber", pageNumber);
                    command.Parameters.AddWithValue("PageSize", pageSize);

                    await connection.OpenAsync();

                    using (NpgsqlDataReader dataReader = await command.ExecuteReaderAsync())
                    {
                        while (dataReader.Read())
                        {
                            if (galleryPagedItemsList.TotalResultsCount == 0)
                            {
                                galleryPagedItemsList.TotalResultsCount = Convert.ToInt32(dataReader["ResultsCount"]);
                            }

                            var galleryItem = new GalleryItem(dataReader);

                            galleryPagedItemsList.AddItem(galleryItem);
                        }
                    }
                }
            }

            return(galleryPagedItemsList);
        }
Esempio n. 2
0
 public PhotoGalleryViewModel(GalleryPagedItemsList galleryPagedItemsList)
     : this(galleryPagedItemsList.Items)
 {
     this.TotalPagesCount = galleryPagedItemsList.TotalPagesCount;
     this.PageNumber      = galleryPagedItemsList.PageNumber;
 }