diff --git a/ObjectStorage.sln b/ObjectStorage.sln
index 7d8e6f6..e942487 100644
--- a/ObjectStorage.sln
+++ b/ObjectStorage.sln
@@ -13,6 +13,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
LICENSE.md = LICENSE.md
EndProjectSection
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PoweredSoft.ObjectStorage.MongoDB.AspNetCore", "PoweredSoft.ObjectStorage.MongoDB.AspNetCore\PoweredSoft.ObjectStorage.MongoDB.AspNetCore.csproj", "{E69D559E-72F3-47A9-ABE5-D49FD8412DE4}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x86 = Debug|x86
@@ -31,5 +33,9 @@ Global
{D8CB2E20-7298-4EEB-9694-C54654B1BD1C}.Debug|x86.Build.0 = Debug|Any CPU
{D8CB2E20-7298-4EEB-9694-C54654B1BD1C}.Release|x86.ActiveCfg = Release|Any CPU
{D8CB2E20-7298-4EEB-9694-C54654B1BD1C}.Release|x86.Build.0 = Release|Any CPU
+ {E69D559E-72F3-47A9-ABE5-D49FD8412DE4}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {E69D559E-72F3-47A9-ABE5-D49FD8412DE4}.Debug|x86.Build.0 = Debug|Any CPU
+ {E69D559E-72F3-47A9-ABE5-D49FD8412DE4}.Release|x86.ActiveCfg = Release|Any CPU
+ {E69D559E-72F3-47A9-ABE5-D49FD8412DE4}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal
diff --git a/PoweredSoft.ObjectStorage.MongoDB.AspNetCore/ObjectIdModelBinder.cs b/PoweredSoft.ObjectStorage.MongoDB.AspNetCore/ObjectIdModelBinder.cs
new file mode 100644
index 0000000..b268d62
--- /dev/null
+++ b/PoweredSoft.ObjectStorage.MongoDB.AspNetCore/ObjectIdModelBinder.cs
@@ -0,0 +1,18 @@
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc.ModelBinding;
+using MongoDB.Bson;
+
+namespace PoweredSoft.ObjectStorage.MongoDB.AspNetCore
+{
+ public class ObjectIdModelBinder : IModelBinder
+ {
+ public Task BindModelAsync(ModelBindingContext bindingContext)
+ {
+ var result = bindingContext.ValueProvider.GetValue(bindingContext.FieldName);
+
+ bindingContext.Result = ModelBindingResult.Success(new ObjectId(result.FirstValue));
+
+ return Task.CompletedTask;
+ }
+ }
+}
diff --git a/PoweredSoft.ObjectStorage.MongoDB.AspNetCore/ObjectIdModelBinderProvider.cs b/PoweredSoft.ObjectStorage.MongoDB.AspNetCore/ObjectIdModelBinderProvider.cs
new file mode 100644
index 0000000..922d1b0
--- /dev/null
+++ b/PoweredSoft.ObjectStorage.MongoDB.AspNetCore/ObjectIdModelBinderProvider.cs
@@ -0,0 +1,19 @@
+using System;
+using Microsoft.AspNetCore.Mvc.ModelBinding;
+using MongoDB.Bson;
+
+namespace PoweredSoft.ObjectStorage.MongoDB.AspNetCore
+{
+ public class ObjectIdModelBinderProvider : IModelBinderProvider
+ {
+ public IModelBinder GetBinder(ModelBinderProviderContext context)
+ {
+ if (context == null)
+ throw new ArgumentNullException(nameof(context));
+
+ if (context.Metadata.ModelType == typeof(ObjectId))
+ return new ObjectIdModelBinder();
+ return null;
+ }
+ }
+}
diff --git a/PoweredSoft.ObjectStorage.MongoDB.AspNetCore/PoweredSoft.ObjectStorage.MongoDB.AspNetCore.csproj b/PoweredSoft.ObjectStorage.MongoDB.AspNetCore/PoweredSoft.ObjectStorage.MongoDB.AspNetCore.csproj
new file mode 100644
index 0000000..fe2a533
--- /dev/null
+++ b/PoweredSoft.ObjectStorage.MongoDB.AspNetCore/PoweredSoft.ObjectStorage.MongoDB.AspNetCore.csproj
@@ -0,0 +1,28 @@
+
+
+
+ netstandard2.0
+ Powered Softwares Inc.
+ https://github.com/PoweredSoft/ObjectStorage/blob/master/LICENSE.md
+ https://github.com/PoweredSoft/ObjectStorage
+ https://github.com/PoweredSoft/ObjectStorage/PoweredSoft.ObjectStorage.MongoDB.AspNetCore
+ github
+ https://secure.gravatar.com/avatar/4e32f73820c16718909a06c2927f1f8b?s=512&r=g&d=retro
+ 1.0.0$(VersionSuffix)
+ PoweredSoft.ObjectStorage.MongoDB.AspNetCore
+ Mongo DB Implementation of IObjectStorageClient
+ PoweredSoft.ObjectStorage.MongoDB.AspNetCore
+ N/A
+ False
+ Powered Softwares Inc.
+ David Lebee
+
+
+
+
+
+
+
+
+
+
diff --git a/PoweredSoft.ObjectStorage.MongoDB.AspNetCore/ServiceCollectionExtensions.cs b/PoweredSoft.ObjectStorage.MongoDB.AspNetCore/ServiceCollectionExtensions.cs
new file mode 100644
index 0000000..ce633c4
--- /dev/null
+++ b/PoweredSoft.ObjectStorage.MongoDB.AspNetCore/ServiceCollectionExtensions.cs
@@ -0,0 +1,18 @@
+using System;
+using Microsoft.Extensions.DependencyInjection;
+
+namespace PoweredSoft.ObjectStorage.MongoDB.AspNetCore
+{
+ public static class ServiceCollectionExtensions
+ {
+ public static IMvcBuilder AddMongoDBMvcBinders(this IMvcBuilder mvcBuilder)
+ {
+ mvcBuilder.AddMvcOptions(options =>
+ {
+ options.ModelBinderProviders.Insert(0, new ObjectIdModelBinderProvider());
+ });
+
+ return mvcBuilder;
+ }
+ }
+}
diff --git a/README.md b/README.md
index 3524afe..c9126cd 100644
--- a/README.md
+++ b/README.md
@@ -9,4 +9,5 @@ choices.
Full Version | NuGet | NuGet Install
------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------:
PoweredSoft.ObjectStorage.Core | [![NuGet](https://img.shields.io/nuget/v/PoweredSoft.ObjectStorage.Core.svg?style=flat-square&label=nuget)](https://www.nuget.org/packages/PoweredSoft.ObjectStorage.Core/) | ```PM> Install-Package PoweredSoft.ObjectStorage.Core```
-PoweredSoft.ObjectStorage.MongoDB | [![NuGet](https://img.shields.io/nuget/v/PoweredSoft.ObjectStorage.MongoDB.svg?style=flat-square&label=nuget)](https://www.nuget.org/packages/PoweredSoft.ObjectStorage.MongoDB/) | ```PM> Install-Package PoweredSoft.ObjectStorage.MongoDB```
\ No newline at end of file
+PoweredSoft.ObjectStorage.MongoDB | [![NuGet](https://img.shields.io/nuget/v/PoweredSoft.ObjectStorage.MongoDB.svg?style=flat-square&label=nuget)](https://www.nuget.org/packages/PoweredSoft.ObjectStorage.MongoDB/) | ```PM> Install-Package PoweredSoft.ObjectStorage.MongoDB```
+PoweredSoft.ObjectStorage.MongoDB.AspNetCore | [![NuGet](https://img.shields.io/nuget/v/PoweredSoft.ObjectStorage.MongoDB.AspNetCore.svg?style=flat-square&label=nuget)](https://www.nuget.org/packages/PoweredSoft.ObjectStorage.MongoDB.AspNetCore/) | ```PM> Install-Package PoweredSoft.ObjectStorage.MongoDB.AspNetCore```
\ No newline at end of file