Merge pull request #1156 from felfert/master
[mono.git] / mcs / class / System.Web.Mvc3 / Mvc / FormValueProviderFactory.cs
1 namespace System.Web.Mvc {
2     using System;
3     using System.Collections.Specialized;
4     using System.Web.Helpers;
5
6     public sealed class FormValueProviderFactory : ValueProviderFactory {
7
8         private readonly UnvalidatedRequestValuesAccessor _unvalidatedValuesAccessor;
9
10         public FormValueProviderFactory()
11             : this(null) {
12         }
13
14         // For unit testing
15         internal FormValueProviderFactory(UnvalidatedRequestValuesAccessor unvalidatedValuesAccessor) {
16             _unvalidatedValuesAccessor = unvalidatedValuesAccessor ?? (cc => new UnvalidatedRequestValuesWrapper(cc.HttpContext.Request.Unvalidated()));
17         }
18
19         public override IValueProvider GetValueProvider(ControllerContext controllerContext) {
20             if (controllerContext == null) {
21                 throw new ArgumentNullException("controllerContext");
22             }
23
24             return new FormValueProvider(controllerContext, _unvalidatedValuesAccessor(controllerContext));
25         }
26
27     }
28 }