Files
Orchard/src/Orchard.Web/Modules/Orchard.DynamicForms/ValidationRules/Compare.cs
2014-10-30 13:59:00 -07:00

28 lines
1.2 KiB
C#

using System;
using Orchard.DynamicForms.Helpers;
using Orchard.DynamicForms.Services;
using Orchard.DynamicForms.Services.Models;
using Orchard.Localization;
namespace Orchard.DynamicForms.ValidationRules {
public class Compare : ValidationRule {
public string TargetName { get; set; }
public override void Validate(ValidateInputContext context) {
var targetValue = context.Values[TargetName];
if (!String.Equals(context.AttemptedValue, targetValue)) {
var message = GetValidationMessage(context);
context.ModelState.AddModelError(context.FieldName, message.Text);
}
}
public override void RegisterClientAttributes(RegisterClientValidationAttributesContext context) {
context.ClientAttributes["data-val-equalto"] = GetValidationMessage(context).Text;
context.ClientAttributes["data-val-equalto-other"] = "*." + TargetName;
}
private LocalizedString GetValidationMessage(ValidationContext context) {
return T(Tokenize(ErrorMessage.WithDefault(String.Format("{0} must match the value of {1}.", context.FieldName, TargetName)), context));
}
}
}