EnVisageOnline/Main-RMO/Source/EnVisage/Models/ValidationAttributes/Scenarios/DateForStartOfChangeValidat...

29 lines
1.3 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 DateForStartOfChangeValidatorAttribute : ValidationAttribute, IClientValidatable
{
public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
{
var rule = new ModelClientValidationRule
{
ErrorMessage = ErrorMessage,
ValidationType = "dateforstartofchange"
};
var modelMetadata = ModelMetadataProviders.Current.GetMetadataForProperties(context.Controller.ViewData.Model, context.Controller.ViewData.Model.GetType());
rule.ValidationParameters["hasactuals"] = Convert.ToInt32(modelMetadata.FirstOrDefault(x => x.PropertyName == "HasActuals").Model);
rule.ValidationParameters["actualsenddate"] = Convert.ToInt64(modelMetadata.FirstOrDefault(x => x.PropertyName == "ActualsEndDate").Model);
rule.ValidationParameters["scenariostartdateproperty"] = "StartDate";
rule.ValidationParameters["scenarioenddateproperty"] = "EndDate";
yield return rule;
}
}
}