@@ -51,13 +51,7 @@ public ValueObjectFacade(
5151 public async Task Create < TValueObject > ( TValueObject valueObject )
5252 where TValueObject : struct , IEquatable < TValueObject >
5353 {
54- string valueObjectType = ValueObjectDocument < TValueObject > . GetDocumentType ( ) ;
55-
56- ValueObjectDocument < TValueObject > document =
57- _documentClient . CreateDocumentQuery < ValueObjectDocument < TValueObject > > ( GetUri ( ) )
58- . Where ( x => x . Type == valueObjectType )
59- . AsEnumerable ( )
60- . SingleOrDefault ( x => x . ValueObject . Equals ( valueObject ) ) ;
54+ ValueObjectDocument < TValueObject > document = Get ( valueObject ) ;
6155
6256 if ( document == null )
6357 {
@@ -77,13 +71,7 @@ public async Task Create<TValueObject>(TValueObject valueObject)
7771 public async Task Delete < TValueObject > ( TValueObject valueObject )
7872 where TValueObject : struct , IEquatable < TValueObject >
7973 {
80- string valueObjectType = ValueObjectDocument < TValueObject > . GetDocumentType ( ) ;
81-
82- ValueObjectDocument < TValueObject > document =
83- _documentClient . CreateDocumentQuery < ValueObjectDocument < TValueObject > > ( GetUri ( ) )
84- . Where ( x => x . Type == valueObjectType )
85- . AsEnumerable ( )
86- . SingleOrDefault ( x => x . ValueObject . Equals ( valueObject ) ) ;
74+ ValueObjectDocument < TValueObject > document = Get ( valueObject ) ;
8775
8876 if ( document != null )
8977 {
@@ -99,12 +87,25 @@ public async Task Delete<TValueObject>(TValueObject valueObject)
9987 /// <returns>An <see cref="T:System.Linq.IQueryable`1" />.</returns>
10088 public IQueryable < TValueObject > Query < TValueObject > ( )
10189 where TValueObject : struct , IEquatable < TValueObject >
90+ {
91+ return CreateValueObjectDocumentQuery < TValueObject > ( ) . Select ( x => x . ValueObject ) ;
92+ }
93+
94+ private IQueryable < ValueObjectDocument < TValueObject > > CreateValueObjectDocumentQuery < TValueObject > ( )
95+ where TValueObject : struct , IEquatable < TValueObject >
10296 {
10397 string valueObjectType = ValueObjectDocument < TValueObject > . GetDocumentType ( ) ;
10498
10599 return _documentClient . CreateDocumentQuery < ValueObjectDocument < TValueObject > > ( GetUri ( ) )
106- . Where ( x => x . Type == valueObjectType )
107- . Select ( x => x . ValueObject ) ;
100+ . Where ( x => x . Type == valueObjectType ) ;
101+ }
102+
103+ private ValueObjectDocument < TValueObject > Get < TValueObject > ( TValueObject valueObject )
104+ where TValueObject : struct , IEquatable < TValueObject >
105+ {
106+ return CreateValueObjectDocumentQuery < TValueObject > ( )
107+ . AsEnumerable ( )
108+ . SingleOrDefault ( x => x . ValueObject . Equals ( valueObject ) ) ;
108109 }
109110
110111 private Uri GetUri ( )
0 commit comments