Removing BaseController from MusicStore
TryUpdateModelAsync was added to Controller type which removes the need for this type
This commit is contained in:
parent
907f05acf5
commit
5bace02518
|
|
@ -7,7 +7,7 @@ using MusicStore.Models;
|
||||||
|
|
||||||
namespace MusicStore.Apis
|
namespace MusicStore.Apis
|
||||||
{
|
{
|
||||||
public class AlbumsApiController : BaseController
|
public class AlbumsApiController : Controller
|
||||||
{
|
{
|
||||||
private readonly MusicStoreContext _storeContext;
|
private readonly MusicStoreContext _storeContext;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ using MusicStore.Models;
|
||||||
|
|
||||||
namespace MusicStore.Apis
|
namespace MusicStore.Apis
|
||||||
{
|
{
|
||||||
public class ArtistsApiController : BaseController
|
public class ArtistsApiController : Controller
|
||||||
{
|
{
|
||||||
private readonly MusicStoreContext _storeContext;
|
private readonly MusicStoreContext _storeContext;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ using MusicStore.Models;
|
||||||
|
|
||||||
namespace MusicStore.Apis
|
namespace MusicStore.Apis
|
||||||
{
|
{
|
||||||
public class GenresApiController : BaseController
|
public class GenresApiController : Controller
|
||||||
{
|
{
|
||||||
private readonly MusicStoreContext _storeContext;
|
private readonly MusicStoreContext _storeContext;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,62 +0,0 @@
|
||||||
using System;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Threading;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Microsoft.AspNet.Mvc.ModelBinding;
|
|
||||||
using Microsoft.AspNet.Routing;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Mvc
|
|
||||||
{
|
|
||||||
public class BaseController : Controller
|
|
||||||
{
|
|
||||||
private IModelBindersProvider _modelBinders;
|
|
||||||
private IModelMetadataProvider _modelMetadataProvider;
|
|
||||||
private IEnumerable<IModelValidatorProvider> _validatorProviders;
|
|
||||||
private IEnumerable<IValueProviderFactory> _valueProviderFactories;
|
|
||||||
private CompositeModelBinder _modelBinder;
|
|
||||||
private CompositeValueProvider _compositeValueProvider;
|
|
||||||
private bool _modelBinderInitialized;
|
|
||||||
private object _modelBinderInitLocker = new object();
|
|
||||||
|
|
||||||
public BaseController()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Initialize(
|
|
||||||
IModelBindersProvider modelBinders,
|
|
||||||
IModelMetadataProvider modelMetadataProvider,
|
|
||||||
IEnumerable<IModelValidatorProvider> validatorProviders,
|
|
||||||
IEnumerable<IValueProviderFactory> valueProviderFactories)
|
|
||||||
{
|
|
||||||
_modelBinders = modelBinders;
|
|
||||||
_modelMetadataProvider = modelMetadataProvider;
|
|
||||||
_validatorProviders = validatorProviders;
|
|
||||||
_valueProviderFactories = valueProviderFactories;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected Task<bool> TryUpdateModelAsync<TModel>(TModel model)
|
|
||||||
{
|
|
||||||
LazyInitializer.EnsureInitialized(ref _modelBinder, ref _modelBinderInitialized, ref _modelBinderInitLocker, () =>
|
|
||||||
{
|
|
||||||
var factoryContext = new ValueProviderFactoryContext(Context, ActionContext.RouteData.Values);
|
|
||||||
_compositeValueProvider = new CompositeValueProvider(_valueProviderFactories.Select(vpf => vpf.GetValueProvider(factoryContext)));
|
|
||||||
return new CompositeModelBinder(_modelBinders);
|
|
||||||
});
|
|
||||||
|
|
||||||
var bindingContext = new ModelBindingContext
|
|
||||||
{
|
|
||||||
MetadataProvider = _modelMetadataProvider,
|
|
||||||
Model = model,
|
|
||||||
ModelState = ModelState,
|
|
||||||
ValidatorProviders = _validatorProviders,
|
|
||||||
ModelBinder = _modelBinder,
|
|
||||||
HttpContext = Context,
|
|
||||||
ValueProvider = _compositeValueProvider
|
|
||||||
};
|
|
||||||
|
|
||||||
return _modelBinder.BindModelAsync(bindingContext);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue