From 581f17f448b952ac8ac2667cb62ec7332e506326 Mon Sep 17 00:00:00 2001 From: David Lebee Date: Tue, 12 Feb 2019 23:39:55 -0500 Subject: [PATCH] refators --- .../IObjectStorageCollection.cs | 4 +++- ...ctStorageClient.cs => IObjectStorageContext.cs} | 2 +- .../CollectionNameAttributeTests.cs | 2 +- .../CrudTests.cs | 4 ++-- .../Mock/MongoDatabaseFactory.cs | 4 ++-- .../MongoObjectStorageCollection.cs | 14 +++++++++++--- ...orageClient.cs => MongoObjectStorageContext.cs} | 4 ++-- 7 files changed, 22 insertions(+), 12 deletions(-) rename PoweredSoft.ObjectStorage.Core/{IObjectStorageClient.cs => IObjectStorageContext.cs} (76%) rename PoweredSoft.ObjectStorage.MongoDB/{MongoObjectStorageClient.cs => MongoObjectStorageContext.cs} (85%) diff --git a/PoweredSoft.ObjectStorage.Core/IObjectStorageCollection.cs b/PoweredSoft.ObjectStorage.Core/IObjectStorageCollection.cs index 0100a97..10a2d13 100644 --- a/PoweredSoft.ObjectStorage.Core/IObjectStorageCollection.cs +++ b/PoweredSoft.ObjectStorage.Core/IObjectStorageCollection.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; +using System.Reflection; using System.Threading; using System.Threading.Tasks; @@ -17,6 +18,7 @@ namespace PoweredSoft.ObjectStorage.Core Task AddAsync(TEntity entity, CancellationToken cancellationToken = default(CancellationToken)); Task DeleteAsync(TEntity entity, CancellationToken cancellationToken = default(CancellationToken)); Task UpdateAsync(TEntity entity, CancellationToken cancellationToken = default(CancellationToken)); - IQueryable AsQueryable(); + IQueryable AsQueryable(); + List GetObjectKeys(); } } diff --git a/PoweredSoft.ObjectStorage.Core/IObjectStorageClient.cs b/PoweredSoft.ObjectStorage.Core/IObjectStorageContext.cs similarity index 76% rename from PoweredSoft.ObjectStorage.Core/IObjectStorageClient.cs rename to PoweredSoft.ObjectStorage.Core/IObjectStorageContext.cs index d3059f1..e705f8d 100644 --- a/PoweredSoft.ObjectStorage.Core/IObjectStorageClient.cs +++ b/PoweredSoft.ObjectStorage.Core/IObjectStorageContext.cs @@ -2,7 +2,7 @@ namespace PoweredSoft.ObjectStorage.Core { - public interface IObjectStorageClient + public interface IObjectStorageContext { IObjectStorageCollection GetCollection(); } diff --git a/PoweredSoft.ObjectStorage.MongoDB.Tests/CollectionNameAttributeTests.cs b/PoweredSoft.ObjectStorage.MongoDB.Tests/CollectionNameAttributeTests.cs index 2543080..ebeb703 100644 --- a/PoweredSoft.ObjectStorage.MongoDB.Tests/CollectionNameAttributeTests.cs +++ b/PoweredSoft.ObjectStorage.MongoDB.Tests/CollectionNameAttributeTests.cs @@ -11,7 +11,7 @@ namespace PoweredSoft.ObjectStorage.MongoDB.Tests [Fact] public void TestingGetCollection() { - var objectStorageClient = MongoDatabaseFactory.GetObjectStorageClient(); + var objectStorageClient = MongoDatabaseFactory.GetObjectStorageContext(); var collection = objectStorageClient.GetCollection(); Assert.NotNull(collection); Assert.NotNull(collection.CollectionName); diff --git a/PoweredSoft.ObjectStorage.MongoDB.Tests/CrudTests.cs b/PoweredSoft.ObjectStorage.MongoDB.Tests/CrudTests.cs index 8d47089..57bdaf8 100644 --- a/PoweredSoft.ObjectStorage.MongoDB.Tests/CrudTests.cs +++ b/PoweredSoft.ObjectStorage.MongoDB.Tests/CrudTests.cs @@ -12,7 +12,7 @@ namespace PoweredSoft.ObjectStorage.MongoDB.Tests [Fact] public async Task CreateUpdateThenDelete() { - var osc = MongoDatabaseFactory.GetObjectStorageClient(); + var osc = MongoDatabaseFactory.GetObjectStorageContext(); var collection = osc.GetCollection(); var contact = await collection.AddAsync(new Contact { @@ -37,7 +37,7 @@ namespace PoweredSoft.ObjectStorage.MongoDB.Tests [Fact] public async Task TestGetAsync() { - var osc = MongoDatabaseFactory.GetObjectStorageClient(); + var osc = MongoDatabaseFactory.GetObjectStorageContext(); var collection = osc.GetCollection(); var contact = await collection.AddAsync(new Contact { diff --git a/PoweredSoft.ObjectStorage.MongoDB.Tests/Mock/MongoDatabaseFactory.cs b/PoweredSoft.ObjectStorage.MongoDB.Tests/Mock/MongoDatabaseFactory.cs index 662e119..315ff9a 100644 --- a/PoweredSoft.ObjectStorage.MongoDB.Tests/Mock/MongoDatabaseFactory.cs +++ b/PoweredSoft.ObjectStorage.MongoDB.Tests/Mock/MongoDatabaseFactory.cs @@ -12,9 +12,9 @@ namespace PoweredSoft.ObjectStorage.MongoDB.Tests.Mock return db; } - public static MongoObjectStorageClient GetObjectStorageClient() + public static MongoObjectStorageContext GetObjectStorageContext() { - return new MongoObjectStorageClient(GetDatabase()); + return new MongoObjectStorageContext(GetDatabase()); } public static IMongoClient GetClient() diff --git a/PoweredSoft.ObjectStorage.MongoDB/MongoObjectStorageCollection.cs b/PoweredSoft.ObjectStorage.MongoDB/MongoObjectStorageCollection.cs index 784f36d..ff6a4b4 100644 --- a/PoweredSoft.ObjectStorage.MongoDB/MongoObjectStorageCollection.cs +++ b/PoweredSoft.ObjectStorage.MongoDB/MongoObjectStorageCollection.cs @@ -39,7 +39,7 @@ namespace PoweredSoft.ObjectStorage.MongoDB protected virtual Expression> CreateEntityExpression(TEntity entity) { - var objectKey = GetKeyProperty(); + var objectKey = GetBsonIdProperty(); var constant = objectKey.GetValue(entity); var expression = QueryableHelpers.CreateConditionExpression(objectKey.Name, DynamicLinq.ConditionOperators.Equal, constant, DynamicLinq.QueryConvertStrategy.LeaveAsIs); @@ -47,7 +47,7 @@ namespace PoweredSoft.ObjectStorage.MongoDB return expression; } - protected virtual PropertyInfo GetKeyProperty() + protected virtual PropertyInfo GetBsonIdProperty() { var objectKey = typeof(TEntity) .GetProperties(BindingFlags.Public | BindingFlags.Instance) @@ -82,11 +82,19 @@ namespace PoweredSoft.ObjectStorage.MongoDB public Task GetAsync(object key, CancellationToken cancellationToken = default(CancellationToken)) { - var keyProp = GetKeyProperty(); + var keyProp = GetBsonIdProperty(); var expression = QueryableHelpers.CreateConditionExpression(keyProp.Name, DynamicLinq.ConditionOperators.Equal, key, DynamicLinq.QueryConvertStrategy.LeaveAsIs); var result = Collection.Find(expression).FirstOrDefaultAsync(); return result; } + + public List GetObjectKeys() + { + return new List() + { + GetBsonIdProperty() + }; + } } } diff --git a/PoweredSoft.ObjectStorage.MongoDB/MongoObjectStorageClient.cs b/PoweredSoft.ObjectStorage.MongoDB/MongoObjectStorageContext.cs similarity index 85% rename from PoweredSoft.ObjectStorage.MongoDB/MongoObjectStorageClient.cs rename to PoweredSoft.ObjectStorage.MongoDB/MongoObjectStorageContext.cs index 61b5307..500d691 100644 --- a/PoweredSoft.ObjectStorage.MongoDB/MongoObjectStorageClient.cs +++ b/PoweredSoft.ObjectStorage.MongoDB/MongoObjectStorageContext.cs @@ -5,9 +5,9 @@ using PoweredSoft.ObjectStorage.Core; namespace PoweredSoft.ObjectStorage.MongoDB { - public class MongoObjectStorageClient : IObjectStorageClient + public class MongoObjectStorageContext : IObjectStorageContext { - public MongoObjectStorageClient(IMongoDatabase database) + public MongoObjectStorageContext(IMongoDatabase database) { Database = database; }