using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Web.Mvc; namespace EnVisage.Models.ValidationAttributes.Scenarios { public class TDDirectCostValidatorAttribute : ValidationAttributeBase, IClientValidatable { public IEnumerable GetClientValidationRules(ModelMetadata metadata, ControllerContext context) { var rule = new ModelClientValidationRule { ErrorMessage = ErrorMessage, ValidationType = "tddirectcost" }; var hasActuals = ((bool?)GetPropertyValue("HasActuals", metadata, context) ?? false); var isRevenueGenerating = ((bool?)GetPropertyValue("IsRevenueGenerating", metadata, context) ?? false); var actualsTotal = ((decimal?)GetPropertyValue("ActualsTotal", metadata, context) ?? 0); rule.ValidationParameters["hasactuals"] = Convert.ToInt32(hasActuals); rule.ValidationParameters["isrevenuegenerating"] = Convert.ToInt32(isRevenueGenerating); rule.ValidationParameters["actualstotal"] = actualsTotal; yield return rule; } } }