Skip to content

Commit 9420ab2

Browse files
author
Jeff Treuting
committed
Include FetchStrategy include paths in ToString for Specification
Fixes #122
1 parent f9e6a49 commit 9420ab2

4 files changed

Lines changed: 28 additions & 6 deletions

File tree

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq.Expressions;
4+
5+
namespace SharpRepository.Repository.FetchStrategies
6+
{
7+
public abstract class AbstractFetchStrategy<T> : IFetchStrategy<T>
8+
{
9+
public abstract IEnumerable<string> IncludePaths { get; }
10+
public abstract IFetchStrategy<T> Include(Expression<Func<T, object>> path);
11+
public abstract IFetchStrategy<T> Include(string path);
12+
13+
public override string ToString()
14+
{
15+
return String.Format("Type: {0} Includes: {1}",
16+
GetType().Name,
17+
String.Join(",", IncludePaths)
18+
);
19+
}
20+
}
21+
}

SharpRepository.Repository/FetchStrategies/GenericFetchStrategy.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ namespace SharpRepository.Repository.FetchStrategies
99
/// <see cref="http://blog.willbeattie.net/2011/02/specification-pattern-entity-framework.html"/>
1010
/// </summary>
1111
/// <typeparam name="T"></typeparam>
12-
public class GenericFetchStrategy<T> : IFetchStrategy<T>
12+
public class GenericFetchStrategy<T> : AbstractFetchStrategy<T>
1313
{
1414
private readonly IList<string> _properties;
1515

@@ -18,18 +18,18 @@ public GenericFetchStrategy()
1818
_properties = new List<string>();
1919
}
2020

21-
public IEnumerable<string> IncludePaths
21+
public override IEnumerable<string> IncludePaths
2222
{
2323
get { return _properties; }
2424
}
2525

26-
public IFetchStrategy<T> Include(Expression<Func<T, object>> path)
26+
public override IFetchStrategy<T> Include(Expression<Func<T, object>> path)
2727
{
2828
_properties.Add(path.ToIncludeString());
2929
return this;
3030
}
3131

32-
public IFetchStrategy<T> Include(string path)
32+
public override IFetchStrategy<T> Include(string path)
3333
{
3434
_properties.Add(path);
3535
return this;

SharpRepository.Repository/SharpRepository.Repository.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@
9999
<Compile Include="CompoundKeyRepositoryBase.Batch.cs" />
100100
<Compile Include="CompoundKeyRepositoryBase.BatchItem.cs" />
101101
<Compile Include="DisabledCache.cs" />
102+
<Compile Include="FetchStrategies\AbstractFetchStrategy.cs" />
102103
<Compile Include="Helpers\InternalCache.cs" />
103104
<Compile Include="ICrudRepository.cs" />
104105
<Compile Include="IRepositoryAggregates.cs" />

SharpRepository.Repository/Specifications/Specification.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -200,11 +200,11 @@ public static ISpecification<T> OrElse(Expression<Func<T, bool>> predicate, Expr
200200
/// <returns></returns>
201201
public override string ToString()
202202
{
203-
return String.Format("Specification Type: {0}\nEntity Type: {1}\nPredicate: {2}\nFetchStrategy Type: {3}",
203+
return String.Format("Specification Type: {0}\nEntity Type: {1}\nPredicate: {2}\nFetchStrategy: {3}",
204204
GetType().Name,
205205
(typeof (T)).Name,
206206
HashGenerator.FromPredicate(Predicate),
207-
FetchStrategy.GetType().Name
207+
FetchStrategy
208208
);
209209
}
210210
}

0 commit comments

Comments
 (0)