/*
Kooboo is a content management system based on ASP.NET MVC framework. Copyright 2009 Yardi Technology Limited.
This program is free software: you can redistribute it and/or modify it under the terms of the
GNU General Public License version 3 as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program.
If not, see http://www.kooboo.com/gpl3/.
*/
using System;
using System.Text;
using System.Collections.Generic;
namespace Everest.Library.Data.Rule{
public class RuleViolationException : Exception
{
public IEnumerable<RuleViolation> Issues { get; private set; }
public RuleViolationException(IEnumerable<RuleViolation> issues)
: this("Business rule violations", issues)
{
}
public RuleViolationException(string msg, IEnumerable<RuleViolation> issues)
: base(msg)
{
this.Issues = issues;
}
public override string Message
{
get
{
string baseMessage = base.Message;
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.AppendFormat("Exception Message:{0} \n Issues:\n", baseMessage);
foreach (var issue in Issues)
{
stringBuilder.AppendFormat("PropertyName:{0};PropertyValue:{1};ErrorMessage:{2} \n", issue.PropertyName, issue.PropertyValue, issue.ErrorMessage);
}
return stringBuilder.ToString();
}
}
}
}
|