using System; using System.Collections.Generic; using System.Web.Mvc; namespace EnVisage.Models.ValidationAttributes.Scenarios { public class DateForStartOfChangeValidatorAttribute : ValidationAttributeBase, IClientValidatable { public IEnumerable GetClientValidationRules(ModelMetadata metadata, ControllerContext context) { var rule = new ModelClientValidationRule { ErrorMessage = ErrorMessage, ValidationType = "dateforstartofchange" }; var hasActuals = ((bool?)GetPropertyValue("HasActuals", metadata, context) ?? false); var actualsEndDate = ((long?)GetPropertyValue("ActualsEndDate", metadata, context) ?? 0); rule.ValidationParameters["hasactuals"] = Convert.ToInt32(hasActuals); rule.ValidationParameters["actualsenddate"] = actualsEndDate; rule.ValidationParameters["scenariostartdateproperty"] = "StartDate"; rule.ValidationParameters["scenarioenddateproperty"] = "EndDate"; yield return rule; } } }