Added some tests for PagingSpecExtensions
Allow specials in missing Dropped ListSortDirection
This commit is contained in:
parent
d37c8c26c2
commit
f4dd6adc6a
|
@ -1,6 +1,5 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Linq.Expressions;
|
using System.Linq.Expressions;
|
||||||
|
@ -78,13 +77,13 @@ namespace Marr.Data.QGen
|
||||||
|
|
||||||
internal SortBuilder<T> Order(Type declaringType, string propertyName)
|
internal SortBuilder<T> Order(Type declaringType, string propertyName)
|
||||||
{
|
{
|
||||||
_sortExpressions.Add(new SortColumn<T>(declaringType, propertyName, ListSortDirection.Ascending));
|
_sortExpressions.Add(new SortColumn<T>(declaringType, propertyName, SortDirection.Asc));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal SortBuilder<T> OrderByDescending(Type declaringType, string propertyName)
|
internal SortBuilder<T> OrderByDescending(Type declaringType, string propertyName)
|
||||||
{
|
{
|
||||||
_sortExpressions.Add(new SortColumn<T>(declaringType, propertyName, ListSortDirection.Descending));
|
_sortExpressions.Add(new SortColumn<T>(declaringType, propertyName, SortDirection.Desc));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -104,11 +103,11 @@ namespace Marr.Data.QGen
|
||||||
|
|
||||||
public virtual SortBuilder<T> OrderBy(Expression<Func<T, object>> sortExpression)
|
public virtual SortBuilder<T> OrderBy(Expression<Func<T, object>> sortExpression)
|
||||||
{
|
{
|
||||||
_sortExpressions.Add(new SortColumn<T>(sortExpression, ListSortDirection.Ascending));
|
_sortExpressions.Add(new SortColumn<T>(sortExpression, SortDirection.Asc));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual SortBuilder<T> OrderBy(Expression<Func<T, object>> sortExpression, ListSortDirection sortDirection)
|
public virtual SortBuilder<T> OrderBy(Expression<Func<T, object>> sortExpression, SortDirection sortDirection)
|
||||||
{
|
{
|
||||||
_sortExpressions.Add(new SortColumn<T>(sortExpression, sortDirection));
|
_sortExpressions.Add(new SortColumn<T>(sortExpression, sortDirection));
|
||||||
return this;
|
return this;
|
||||||
|
@ -116,17 +115,17 @@ namespace Marr.Data.QGen
|
||||||
|
|
||||||
public virtual SortBuilder<T> OrderByDescending(Expression<Func<T, object>> sortExpression)
|
public virtual SortBuilder<T> OrderByDescending(Expression<Func<T, object>> sortExpression)
|
||||||
{
|
{
|
||||||
_sortExpressions.Add(new SortColumn<T>(sortExpression, ListSortDirection.Descending));
|
_sortExpressions.Add(new SortColumn<T>(sortExpression, SortDirection.Desc));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual SortBuilder<T> ThenBy(Expression<Func<T, object>> sortExpression)
|
public virtual SortBuilder<T> ThenBy(Expression<Func<T, object>> sortExpression)
|
||||||
{
|
{
|
||||||
_sortExpressions.Add(new SortColumn<T>(sortExpression, ListSortDirection.Ascending));
|
_sortExpressions.Add(new SortColumn<T>(sortExpression, SortDirection.Asc));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual SortBuilder<T> ThenBy(Expression<Func<T, object>> sortExpression, ListSortDirection sortDirection)
|
public virtual SortBuilder<T> ThenBy(Expression<Func<T, object>> sortExpression, SortDirection sortDirection)
|
||||||
{
|
{
|
||||||
_sortExpressions.Add(new SortColumn<T>(sortExpression, sortDirection));
|
_sortExpressions.Add(new SortColumn<T>(sortExpression, sortDirection));
|
||||||
return this;
|
return this;
|
||||||
|
@ -134,7 +133,7 @@ namespace Marr.Data.QGen
|
||||||
|
|
||||||
public virtual SortBuilder<T> ThenByDescending(Expression<Func<T, object>> sortExpression)
|
public virtual SortBuilder<T> ThenByDescending(Expression<Func<T, object>> sortExpression)
|
||||||
{
|
{
|
||||||
_sortExpressions.Add(new SortColumn<T>(sortExpression, ListSortDirection.Descending));
|
_sortExpressions.Add(new SortColumn<T>(sortExpression, SortDirection.Desc));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -171,6 +170,15 @@ namespace Marr.Data.QGen
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region - Count -
|
||||||
|
|
||||||
|
public virtual int Count()
|
||||||
|
{
|
||||||
|
return _baseBuilder.GetRowCount();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
#region - ToList / ToString / BuildQuery -
|
#region - ToList / ToString / BuildQuery -
|
||||||
|
|
||||||
public virtual List<T> ToList()
|
public virtual List<T> ToList()
|
||||||
|
@ -211,7 +219,7 @@ namespace Marr.Data.QGen
|
||||||
string columnName = DataHelper.GetColumnName(sort.DeclaringType, sort.PropertyName, useAltName);
|
string columnName = DataHelper.GetColumnName(sort.DeclaringType, sort.PropertyName, useAltName);
|
||||||
sb.Append(_dialect.CreateToken(string.Format("{0}.{1}", table.Alias, columnName)));
|
sb.Append(_dialect.CreateToken(string.Format("{0}.{1}", table.Alias, columnName)));
|
||||||
|
|
||||||
if (sort.Direction == ListSortDirection.Descending)
|
if (sort.Direction == SortDirection.Desc)
|
||||||
sb.Append(" DESC");
|
sb.Append(" DESC");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Linq.Expressions;
|
using System.Linq.Expressions;
|
||||||
|
@ -10,39 +9,22 @@ namespace Marr.Data.QGen
|
||||||
{
|
{
|
||||||
public class SortColumn<T>
|
public class SortColumn<T>
|
||||||
{
|
{
|
||||||
[Obsolete("Use ListSortDirection instead")]
|
|
||||||
public SortColumn(Expression<Func<T, object>> sortExpression, SortDirection direction)
|
public SortColumn(Expression<Func<T, object>> sortExpression, SortDirection direction)
|
||||||
{
|
{
|
||||||
MemberExpression me = GetMemberExpression(sortExpression.Body);
|
MemberExpression me = GetMemberExpression(sortExpression.Body);
|
||||||
DeclaringType = me.Expression.Type;
|
DeclaringType = me.Expression.Type;
|
||||||
PropertyName = me.Member.Name;
|
PropertyName = me.Member.Name;
|
||||||
Direction = GetSortDirection(direction);
|
Direction = direction;
|
||||||
}
|
}
|
||||||
|
|
||||||
[Obsolete("Use ListSortDirection instead")]
|
|
||||||
public SortColumn(Type declaringType, string propertyName, SortDirection direction)
|
public SortColumn(Type declaringType, string propertyName, SortDirection direction)
|
||||||
{
|
{
|
||||||
DeclaringType = declaringType;
|
DeclaringType = declaringType;
|
||||||
PropertyName = propertyName;
|
PropertyName = propertyName;
|
||||||
Direction = GetSortDirection(direction);
|
|
||||||
}
|
|
||||||
|
|
||||||
public SortColumn(Expression<Func<T, object>> sortExpression, ListSortDirection direction)
|
|
||||||
{
|
|
||||||
MemberExpression me = GetMemberExpression(sortExpression.Body);
|
|
||||||
DeclaringType = me.Expression.Type;
|
|
||||||
PropertyName = me.Member.Name;
|
|
||||||
Direction = direction;
|
Direction = direction;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SortColumn(Type declaringType, string propertyName, ListSortDirection direction)
|
public SortDirection Direction { get; private set; }
|
||||||
{
|
|
||||||
DeclaringType = declaringType;
|
|
||||||
PropertyName = propertyName;
|
|
||||||
Direction = direction;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ListSortDirection Direction { get; private set; }
|
|
||||||
public Type DeclaringType { get; private set; }
|
public Type DeclaringType { get; private set; }
|
||||||
public string PropertyName { get; private set; }
|
public string PropertyName { get; private set; }
|
||||||
|
|
||||||
|
@ -58,13 +40,6 @@ namespace Marr.Data.QGen
|
||||||
|
|
||||||
return me;
|
return me;
|
||||||
}
|
}
|
||||||
|
|
||||||
private ListSortDirection GetSortDirection(SortDirection direction)
|
|
||||||
{
|
|
||||||
if (direction == SortDirection.Desc) return ListSortDirection.Descending;
|
|
||||||
|
|
||||||
return ListSortDirection.Ascending;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum SortDirection
|
public enum SortDirection
|
||||||
|
|
|
@ -36,15 +36,13 @@ namespace NzbDrone.Api.History
|
||||||
Int32.TryParse(PrimitiveExtensions.ToNullSafeString(Request.Query.Page), out page);
|
Int32.TryParse(PrimitiveExtensions.ToNullSafeString(Request.Query.Page), out page);
|
||||||
if (page == 0) page = 1;
|
if (page == 0) page = 1;
|
||||||
|
|
||||||
var sortKey = PrimitiveExtensions.ToNullSafeString(Request.Query.SortKey)
|
var sortKey = PrimitiveExtensions.ToNullSafeString(Request.Query.SortKey);
|
||||||
.Equals("SeriesTitle", StringComparison.InvariantCultureIgnoreCase)
|
if (String.IsNullOrEmpty(sortKey)) sortKey = "AirDate";
|
||||||
? "SeriesTitle"
|
|
||||||
: "AirDate";
|
|
||||||
|
|
||||||
var sortDirection = PrimitiveExtensions.ToNullSafeString(Request.Query.SortDir)
|
var sortDirection = PrimitiveExtensions.ToNullSafeString(Request.Query.SortDir)
|
||||||
.Equals("Asc", StringComparison.InvariantCultureIgnoreCase)
|
.Equals("Asc", StringComparison.InvariantCultureIgnoreCase)
|
||||||
? ListSortDirection.Ascending
|
? SortDirection.Ascending
|
||||||
: ListSortDirection.Descending;
|
: SortDirection.Descending;
|
||||||
|
|
||||||
var pagingSpec = new PagingSpec<Episode>
|
var pagingSpec = new PagingSpec<Episode>
|
||||||
{
|
{
|
||||||
|
|
|
@ -35,15 +35,13 @@ namespace NzbDrone.Api.Missing
|
||||||
Int32.TryParse(PrimitiveExtensions.ToNullSafeString(Request.Query.Page), out page);
|
Int32.TryParse(PrimitiveExtensions.ToNullSafeString(Request.Query.Page), out page);
|
||||||
if (page == 0) page = 1;
|
if (page == 0) page = 1;
|
||||||
|
|
||||||
var sortKey = PrimitiveExtensions.ToNullSafeString(Request.Query.SortKey)
|
var sortKey = PrimitiveExtensions.ToNullSafeString(Request.Query.SortKey);
|
||||||
.Equals("Series.Title", StringComparison.InvariantCultureIgnoreCase)
|
if (String.IsNullOrEmpty(sortKey)) sortKey = "AirDate";
|
||||||
? "Series.Title"
|
|
||||||
: "AirDate";
|
|
||||||
|
|
||||||
var sortDirection = PrimitiveExtensions.ToNullSafeString(Request.Query.SortDir)
|
var sortDirection = PrimitiveExtensions.ToNullSafeString(Request.Query.SortDir)
|
||||||
.Equals("Asc", StringComparison.InvariantCultureIgnoreCase)
|
.Equals("Asc", StringComparison.InvariantCultureIgnoreCase)
|
||||||
? ListSortDirection.Ascending
|
? SortDirection.Ascending
|
||||||
: ListSortDirection.Descending;
|
: SortDirection.Descending;
|
||||||
|
|
||||||
var pagingSpec = new PagingSpec<Episode>
|
var pagingSpec = new PagingSpec<Episode>
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
using System.ComponentModel;
|
|
||||||
using FluentAssertions;
|
|
||||||
using NUnit.Framework;
|
|
||||||
using NzbDrone.Core.Datastore;
|
|
||||||
using NzbDrone.Core.Tv;
|
|
||||||
|
|
||||||
namespace NzbDrone.Core.Test.Datastore.PagingSpecExtenstionsTests
|
|
||||||
{
|
|
||||||
public class OrderByClauseFixture
|
|
||||||
{
|
|
||||||
[Test]
|
|
||||||
public void Test()
|
|
||||||
{
|
|
||||||
var pagingSpec = new PagingSpec<Episode>
|
|
||||||
{
|
|
||||||
Page = 1,
|
|
||||||
PageSize = 10,
|
|
||||||
SortDirection = ListSortDirection.Ascending,
|
|
||||||
SortKey = "AirDate"
|
|
||||||
};
|
|
||||||
|
|
||||||
pagingSpec.OrderByClause().Should().NotBeNullOrEmpty();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
using System;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Linq.Expressions;
|
||||||
|
using FluentAssertions;
|
||||||
|
using NUnit.Framework;
|
||||||
|
using NzbDrone.Core.Datastore;
|
||||||
|
using NzbDrone.Core.Tv;
|
||||||
|
|
||||||
|
namespace NzbDrone.Core.Test.Datastore.PagingSpecExtenstionsTests
|
||||||
|
{
|
||||||
|
public class PagingOffsetFixture
|
||||||
|
{
|
||||||
|
[TestCase(1, 10, 0)]
|
||||||
|
[TestCase(2, 10, 10)]
|
||||||
|
[TestCase(3, 20, 40)]
|
||||||
|
[TestCase(1, 100, 0)]
|
||||||
|
public void should_calcuate_expected_offset(int page, int pageSize, int expected)
|
||||||
|
{
|
||||||
|
var pagingSpec = new PagingSpec<Episode>
|
||||||
|
{
|
||||||
|
Page = page,
|
||||||
|
PageSize = pageSize,
|
||||||
|
SortDirection = SortDirection.Ascending,
|
||||||
|
SortKey = "AirDate"
|
||||||
|
};
|
||||||
|
|
||||||
|
pagingSpec.PagingOffset().Should().Be(expected);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
using System;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Linq.Expressions;
|
||||||
|
using FluentAssertions;
|
||||||
|
using NUnit.Framework;
|
||||||
|
using NzbDrone.Core.Datastore;
|
||||||
|
using NzbDrone.Core.Tv;
|
||||||
|
|
||||||
|
namespace NzbDrone.Core.Test.Datastore.PagingSpecExtenstionsTests
|
||||||
|
{
|
||||||
|
public class ToSortDirectionFixture
|
||||||
|
{
|
||||||
|
[Test]
|
||||||
|
public void should_convert_ascending_to_asc()
|
||||||
|
{
|
||||||
|
var pagingSpec = new PagingSpec<Episode>
|
||||||
|
{
|
||||||
|
Page = 1,
|
||||||
|
PageSize = 10,
|
||||||
|
SortDirection = SortDirection.Ascending,
|
||||||
|
SortKey = "AirDate"
|
||||||
|
};
|
||||||
|
|
||||||
|
pagingSpec.ToSortDirection().Should().Be(Marr.Data.QGen.SortDirection.Asc);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void should_convert_descending_to_desc()
|
||||||
|
{
|
||||||
|
var pagingSpec = new PagingSpec<Episode>
|
||||||
|
{
|
||||||
|
Page = 1,
|
||||||
|
PageSize = 10,
|
||||||
|
SortDirection = SortDirection.Descending,
|
||||||
|
SortKey = "AirDate"
|
||||||
|
};
|
||||||
|
|
||||||
|
pagingSpec.ToSortDirection().Should().Be(Marr.Data.QGen.SortDirection.Desc);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -120,7 +120,8 @@
|
||||||
<Compile Include="Datastore\DatabaseRelationshipFixture.cs" />
|
<Compile Include="Datastore\DatabaseRelationshipFixture.cs" />
|
||||||
<Compile Include="Datastore\MappingExtentionFixture.cs" />
|
<Compile Include="Datastore\MappingExtentionFixture.cs" />
|
||||||
<Compile Include="Datastore\ObjectDatabaseFixture.cs" />
|
<Compile Include="Datastore\ObjectDatabaseFixture.cs" />
|
||||||
<Compile Include="Datastore\PagingSpecExtenstionsTests\OrderByClauseFixture.cs" />
|
<Compile Include="Datastore\PagingSpecExtenstionsTests\ToSortDirectionFixture.cs" />
|
||||||
|
<Compile Include="Datastore\PagingSpecExtenstionsTests\PagingOffsetFixture.cs" />
|
||||||
<Compile Include="Download\DownloadClientTests\BlackholeProviderFixture.cs" />
|
<Compile Include="Download\DownloadClientTests\BlackholeProviderFixture.cs" />
|
||||||
<Compile Include="Download\DownloadClientTests\NzbgetProviderTests\DownloadNzbFixture.cs" />
|
<Compile Include="Download\DownloadClientTests\NzbgetProviderTests\DownloadNzbFixture.cs" />
|
||||||
<Compile Include="Download\DownloadClientTests\NzbgetProviderTests\QueueFixture.cs" />
|
<Compile Include="Download\DownloadClientTests\NzbgetProviderTests\QueueFixture.cs" />
|
||||||
|
|
|
@ -46,7 +46,7 @@ namespace NzbDrone.Core.Test.TvTests.EpisodeRepositoryTests
|
||||||
Page = 1,
|
Page = 1,
|
||||||
PageSize = 10,
|
PageSize = 10,
|
||||||
SortKey = "AirDate",
|
SortKey = "AirDate",
|
||||||
SortDirection = ListSortDirection.Ascending
|
SortDirection = SortDirection.Ascending
|
||||||
}, false);
|
}, false);
|
||||||
episodes.Records.Should().HaveCount(1);
|
episodes.Records.Should().HaveCount(1);
|
||||||
}
|
}
|
||||||
|
@ -61,7 +61,7 @@ namespace NzbDrone.Core.Test.TvTests.EpisodeRepositoryTests
|
||||||
Page = 1,
|
Page = 1,
|
||||||
PageSize = 10,
|
PageSize = 10,
|
||||||
SortKey = "AirDate",
|
SortKey = "AirDate",
|
||||||
SortDirection = ListSortDirection.Ascending
|
SortDirection = SortDirection.Ascending
|
||||||
}, true);
|
}, true);
|
||||||
episodes.Records.Should().HaveCount(2);
|
episodes.Records.Should().HaveCount(2);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
|
@ -12,7 +11,13 @@ namespace NzbDrone.Core.Datastore
|
||||||
public int PageSize { get; set; }
|
public int PageSize { get; set; }
|
||||||
public int TotalRecords { get; set; }
|
public int TotalRecords { get; set; }
|
||||||
public string SortKey { get; set; }
|
public string SortKey { get; set; }
|
||||||
public ListSortDirection SortDirection { get; set; }
|
public SortDirection SortDirection { get; set; }
|
||||||
public List<TModel> Records { get; set; }
|
public List<TModel> Records { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public enum SortDirection
|
||||||
|
{
|
||||||
|
Ascending,
|
||||||
|
Descending
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,13 @@ namespace NzbDrone.Core.Datastore
|
||||||
return (pagingSpec.Page - 1)*pagingSpec.PageSize;
|
return (pagingSpec.Page - 1)*pagingSpec.PageSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Marr.Data.QGen.SortDirection ToSortDirection<TModel>(this PagingSpec<TModel> pagingSpec)
|
||||||
|
{
|
||||||
|
if (pagingSpec.SortDirection == SortDirection.Descending) return Marr.Data.QGen.SortDirection.Desc;
|
||||||
|
|
||||||
|
return Marr.Data.QGen.SortDirection.Asc;
|
||||||
|
}
|
||||||
|
|
||||||
private static Expression<Func<TModel, object>> CreateExpression<TModel>(string propertyName)
|
private static Expression<Func<TModel, object>> CreateExpression<TModel>(string propertyName)
|
||||||
{
|
{
|
||||||
Type type = typeof(TModel);
|
Type type = typeof(TModel);
|
||||||
|
|
|
@ -67,25 +67,25 @@ namespace NzbDrone.Core.Tv
|
||||||
|
|
||||||
public PagingSpec<Episode> EpisodesWithoutFiles(PagingSpec<Episode> pagingSpec, bool includeSpecials)
|
public PagingSpec<Episode> EpisodesWithoutFiles(PagingSpec<Episode> pagingSpec, bool includeSpecials)
|
||||||
{
|
{
|
||||||
|
var currentTime = DateTime.UtcNow;
|
||||||
|
var startingSeasonNumber = 1;
|
||||||
|
|
||||||
if (includeSpecials)
|
if (includeSpecials)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException("Including specials is not available");
|
startingSeasonNumber = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
//This causes an issue if done within the LINQ Query
|
|
||||||
var currentTime = DateTime.UtcNow;
|
|
||||||
|
|
||||||
pagingSpec.Records = Query.Join<Episode, Series>(JoinType.Inner, e => e.Series, (e, s) => e.SeriesId == s.Id)
|
pagingSpec.Records = Query.Join<Episode, Series>(JoinType.Inner, e => e.Series, (e, s) => e.SeriesId == s.Id)
|
||||||
.Where(e => e.EpisodeFileId == 0)
|
.Where(e => e.EpisodeFileId == 0)
|
||||||
.AndWhere(e => e.SeasonNumber > 0)
|
.AndWhere(e => e.SeasonNumber >= startingSeasonNumber)
|
||||||
.AndWhere(e => e.AirDate <= currentTime)
|
.AndWhere(e => e.AirDate <= currentTime)
|
||||||
.OrderBy(pagingSpec.OrderByClause(), pagingSpec.SortDirection)
|
.OrderBy(pagingSpec.OrderByClause(), pagingSpec.ToSortDirection())
|
||||||
.Skip(pagingSpec.PagingOffset())
|
.Skip(pagingSpec.PagingOffset())
|
||||||
.Take(pagingSpec.PageSize)
|
.Take(pagingSpec.PageSize)
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
//TODO: Use the same query for count and records
|
//TODO: Use the same query for count and records
|
||||||
pagingSpec.TotalRecords = Query.Where(e => e.EpisodeFileId == 0 && e.SeasonNumber > 0 && e.AirDate <= currentTime).GetRowCount();
|
pagingSpec.TotalRecords = Query.Where(e => e.EpisodeFileId == 0 && e.SeasonNumber >= startingSeasonNumber && e.AirDate <= currentTime).Count();
|
||||||
|
|
||||||
return pagingSpec;
|
return pagingSpec;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue