1 /* ****************************************************************************
\r
3 * Copyright (c) Microsoft Corporation. All rights reserved.
\r
5 * This software is subject to the Microsoft Public License (Ms-PL).
\r
6 * A copy of the license can be found in the license.htm file included
\r
7 * in this distribution.
\r
9 * You must not remove this notice, or any other, from this software.
\r
11 * ***************************************************************************/
\r
13 namespace System.Web.Mvc {
\r
15 using System.Collections;
\r
16 using System.Collections.Generic;
\r
17 using System.Diagnostics.CodeAnalysis;
\r
18 using System.Web.Script.Serialization;
\r
20 public class FormContext {
\r
22 private readonly Dictionary<string, FieldValidationMetadata> _fieldValidators = new Dictionary<string, FieldValidationMetadata>();
\r
24 public IDictionary<string, FieldValidationMetadata> FieldValidators {
\r
26 return _fieldValidators;
\r
30 public string FormId {
\r
35 public bool ReplaceValidationSummary {
\r
40 public string ValidationSummaryId {
\r
45 [SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate",
\r
46 Justification = "Performs a potentially time-consuming conversion.")]
\r
47 public string GetJsonValidationMetadata() {
\r
48 JavaScriptSerializer serializer = new JavaScriptSerializer();
\r
50 SortedDictionary<string, object> dict = new SortedDictionary<string, object>() {
\r
51 { "Fields", FieldValidators.Values },
\r
52 { "FormId", FormId }
\r
54 if (!String.IsNullOrEmpty(ValidationSummaryId)) {
\r
55 dict["ValidationSummaryId"] = ValidationSummaryId;
\r
57 dict["ReplaceValidationSummary"] = ReplaceValidationSummary;
\r
59 return serializer.Serialize(dict);
\r
62 public FieldValidationMetadata GetValidationMetadataForField(string fieldName) {
\r
63 return GetValidationMetadataForField(fieldName, false /* createIfNotFound */);
\r
66 public FieldValidationMetadata GetValidationMetadataForField(string fieldName, bool createIfNotFound) {
\r
67 if (String.IsNullOrEmpty(fieldName)) {
\r
68 throw Error.ParameterCannotBeNullOrEmpty("fieldName");
\r
71 FieldValidationMetadata metadata;
\r
72 if (!FieldValidators.TryGetValue(fieldName, out metadata)) {
\r
73 if (createIfNotFound) {
\r
74 metadata = new FieldValidationMetadata() {
\r
75 FieldName = fieldName
\r
77 FieldValidators[fieldName] = metadata;
\r