EnVisageOnline/Main/Source/EnVisage/Models/ValidationAttributes/Scenarios/TDDirectCostValidatorAttrib...

30 lines
1.2 KiB
C#

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<ModelClientValidationRule> 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;
}
}
}