>In your business object >public string ValidateSumAssuredMaxMin(Guid? planPK, decimal? sumAssured) >{ > // Get the Plan for the specified PlanPK > this.GetPlanByPlanPK((Guid)planPK); > > // Call the validate method in the Rules object > return this.Rules.ValidateSumAssuredMaxMin(this.Entity.MinSumAssured, this.Entity.MaxSumAssured, sumAssured); > >} >>
>public string ValidateSumAssuredMaxMin(decimal minSumAssured, decimal maxSumAssured, decimal sumAssured) >{ > string message = null; > > if (minSumAssured > sumAssured || maxSumAssured < sumAssured) > { > message = "Rider Sum Assured must be between " + minSumAssured.ToString() + > " and " + maxSumAssured.ToString(); > > this.AddErrorProviderBrokenRule("SumAssured", message); > } > return message; > >} >>
public string ValidateSumAssuredMaxMin(Guid? planPK, decimal? sumAssured) { // Get the Plan for the specified PlanPK Plan oPlan = new Plan(); oPlan.GetPlanByPlanPK((Guid)planPK); // Call the validate method in the Rules object return this.Rules.ValidateSumAssuredMaxMin(sumAssured, oPlan.Entity.MinSumAssured, oPlan.Entity.MaxSumAssured); }In my PolicyRiderRules.Partial.cs:
public string ValidateSumAssuredMaxMin(Decimal? sumAssured, Decimal? min, Decimal? max) { string message = null; // check that the sum assured meets the min and max sum assured requirements if (min > (Decimal)sumAssured || max < (Decimal)sumAssured) { message = "Rider Sum Assured must be between " + min.ToString() + " and " + max.ToString(); this.AddErrorProviderBrokenRule("SumAssured", message); } return message; }In my PolicyEdit.aspx.cs:
protected void txtRiderSumAssured_TextChanged(object sender, EventArgs e) { TextBox thisTextBox = (TextBox)sender; this.oPolicyRider.Rules.ClearAll(); GridViewRow gvr = (GridViewRow)thisTextBox.Parent.Parent; if (this.oPolicyRider.ValidateSumAssuredMaxMin((Guid)this.oPolicyRider.DataSet.Tables[0].Rows[gvr.RowIndex]["RiderFK"], decimal.Parse(thisTextBox.Text)) != null) { // show the message somehow } this.CalculateRiderPremium(true, gvr); this.SetFocus(gvr.Cells[3].Controls[1]); }