Пример #1
0
        /// <summary>
        /// Configures songlist list query
        /// </summary>
        /// <param name="filter">songlist filter</param>
        /// <returns>configured query</returns>
        private IQuery <SonglistDTO> GetQuery(SonglistFilter filter)
        {
            var query = songlistListQuery;

            query.ClearSortCriterias();
            query.Filter = filter;
            return(query);
        }
Пример #2
0
        public IEnumerable <SonglistDTO> GetSonglistsForClient(SonglistFilter filter, int clientId, int requiredPage = 1)
        {
            if (clientId < 1)
            {
                throw new ArgumentOutOfRangeException("Client service - GetSonglistsForClient(...)clientId cannot be lesser than 1");
            }

            using (UnitOfWorkProvider.Create())
            {
                songlistListQuery.Filter = filter;
                songlistListQuery.Skip   = Math.Max(0, requiredPage - 1) * SonglistsPageSize;
                songlistListQuery.Take   = SonglistsPageSize;

                var sortSonglist = filter.SortAscending ? SortDirection.Ascending : SortDirection.Descending;
                songlistListQuery.AddSortCriteria(songlist => songlist.Name, sortSonglist);

                return(songlistListQuery.Execute());
            }
        }
Пример #3
0
        public SonglistListQueryResultDTO ListAllSonglists(SonglistFilter filter, int requiredPage = 1)
        {
            using (UnitOfWorkProvider.Create())
            {
                var query = GetQuery(filter);
                query.Skip = Math.Max(0, requiredPage - 1) * PageSize;
                query.Take = PageSize;

                var sortOrder = filter.SortAscending ? SortDirection.Ascending : SortDirection.Descending;
                query.AddSortCriteria(songlist => songlist.Name, sortOrder);

                return(new SonglistListQueryResultDTO
                {
                    RequestedPage = requiredPage,
                    TotalResultCount = query.GetTotalRowCount(),
                    ResultsPage = query.Execute(),
                    Filter = filter
                });
            }
        }
Пример #4
0
 /// <summary>
 /// Gets all songlists according to filter and required page
 /// </summary>
 /// <param name="filter">songlist filter</param>
 /// <param name="requiredPage">page to show</param>
 /// <returns>All songlists</returns>
 public IEnumerable <SonglistDTO> GetSonglists(SonglistFilter filter, int requiredPage = 1)
 {
     return(clientService.GetSonglistsForClient(filter, requiredPage, requiredPage));
 }