Merge branch 'release/aspnetcorebinders'
This commit is contained in:
commit
f57b176f03
@ -13,6 +13,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
|
|||||||
LICENSE.md = LICENSE.md
|
LICENSE.md = LICENSE.md
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
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
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|x86 = Debug|x86
|
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}.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.ActiveCfg = Release|Any CPU
|
||||||
{D8CB2E20-7298-4EEB-9694-C54654B1BD1C}.Release|x86.Build.0 = 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
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,28 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>netstandard2.0</TargetFramework>
|
||||||
|
<Copyright>Powered Softwares Inc.</Copyright>
|
||||||
|
<PackageLicenseUrl>https://github.com/PoweredSoft/ObjectStorage/blob/master/LICENSE.md</PackageLicenseUrl>
|
||||||
|
<PackageProjectUrl>https://github.com/PoweredSoft/ObjectStorage</PackageProjectUrl>
|
||||||
|
<RepositoryUrl>https://github.com/PoweredSoft/ObjectStorage/PoweredSoft.ObjectStorage.MongoDB.AspNetCore</RepositoryUrl>
|
||||||
|
<RepositoryType>github</RepositoryType>
|
||||||
|
<PackageIconUrl>https://secure.gravatar.com/avatar/4e32f73820c16718909a06c2927f1f8b?s=512&r=g&d=retro</PackageIconUrl>
|
||||||
|
<Version>1.0.0$(VersionSuffix)</Version>
|
||||||
|
<Product>PoweredSoft.ObjectStorage.MongoDB.AspNetCore</Product>
|
||||||
|
<Description>Mongo DB Implementation of IObjectStorageClient</Description>
|
||||||
|
<PackageId>PoweredSoft.ObjectStorage.MongoDB.AspNetCore</PackageId>
|
||||||
|
<PackageReleaseNotes>N/A</PackageReleaseNotes>
|
||||||
|
<PackageRequireLicenseAcceptance>False</PackageRequireLicenseAcceptance>
|
||||||
|
<Company>Powered Softwares Inc.</Company>
|
||||||
|
<Authors>David Lebee</Authors>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="2.2.2" />
|
||||||
|
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="2.2.0" />
|
||||||
|
<PackageReference Include="MongoDB.Driver" Version="2.7.3" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
|
||||||
|
</Project>
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -9,4 +9,5 @@ choices.
|
|||||||
Full Version | NuGet | NuGet Install
|
Full Version | NuGet | NuGet Install
|
||||||
------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------:
|
------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------:
|
||||||
PoweredSoft.ObjectStorage.Core | <a href="https://www.nuget.org/packages/PoweredSoft.ObjectStorage.Core/" target="_blank">[![NuGet](https://img.shields.io/nuget/v/PoweredSoft.ObjectStorage.Core.svg?style=flat-square&label=nuget)](https://www.nuget.org/packages/PoweredSoft.ObjectStorage.Core/)</a> | ```PM> Install-Package PoweredSoft.ObjectStorage.Core```
|
PoweredSoft.ObjectStorage.Core | <a href="https://www.nuget.org/packages/PoweredSoft.ObjectStorage.Core/" target="_blank">[![NuGet](https://img.shields.io/nuget/v/PoweredSoft.ObjectStorage.Core.svg?style=flat-square&label=nuget)](https://www.nuget.org/packages/PoweredSoft.ObjectStorage.Core/)</a> | ```PM> Install-Package PoweredSoft.ObjectStorage.Core```
|
||||||
PoweredSoft.ObjectStorage.MongoDB | <a href="https://www.nuget.org/packages/PoweredSoft.ObjectStorage.MongoDB/" target="_blank">[![NuGet](https://img.shields.io/nuget/v/PoweredSoft.ObjectStorage.MongoDB.svg?style=flat-square&label=nuget)](https://www.nuget.org/packages/PoweredSoft.ObjectStorage.MongoDB/)</a> | ```PM> Install-Package PoweredSoft.ObjectStorage.MongoDB```
|
PoweredSoft.ObjectStorage.MongoDB | <a href="https://www.nuget.org/packages/PoweredSoft.ObjectStorage.MongoDB/" target="_blank">[![NuGet](https://img.shields.io/nuget/v/PoweredSoft.ObjectStorage.MongoDB.svg?style=flat-square&label=nuget)](https://www.nuget.org/packages/PoweredSoft.ObjectStorage.MongoDB/)</a> | ```PM> Install-Package PoweredSoft.ObjectStorage.MongoDB```
|
||||||
|
PoweredSoft.ObjectStorage.MongoDB.AspNetCore | <a href="https://www.nuget.org/packages/PoweredSoft.ObjectStorage.MongoDB.AspNetCore/" target="_blank">[![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/)</a> | ```PM> Install-Package PoweredSoft.ObjectStorage.MongoDB.AspNetCore```
|
Loading…
Reference in New Issue
Block a user