using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using Zhaizj.Framework.Web;
namespace Zhaizj.Framework {
///
/// 对结果信息的封装(有效或错误),在ORM和MVC中经常被使用
///
public class Result {
private Boolean _autoShow;
private List _errors;
private String _errorsHtml;
private String _errorsText;
private String _errorsJson;
private Object _Info;
public Result() {
_autoShow = true;
_errors = new List();
}
///
/// 根据错误信息构建 result
///
///
public Result( String errorMsg ) {
//_autoShow = true;
_errors = new List();
_errors.Add( errorMsg );
}
///
/// 添加错误信息
///
///
public void Add( String errorMsg ) {
_errors.Add( errorMsg );
}
///
/// 合并结果信息
///
///
public void Join( Result result ) {
foreach (String str in result.Errors) {
Add( str );
}
}
///
/// 是否自动显示(默认都是自动显示的,比如表单验证发生错误会自动显示在表单上方)
///
public Boolean AutoShow {
get { return _autoShow; }
set { _autoShow = value; }
}
///
/// 获取所有错误信息的列表
///
public List Errors {
get { return _errors; }
set { _errors = value; }
}
///
/// html 格式的错误信息(封装在一个class=Zhaizj.FrameworkValidationResultList的无序列表ul中)
///
public String ErrorsHtml {
get {
if (IsValid) return null;
if (_errorsHtml == null) {
StringBuilder builder = new StringBuilder( "" );
for (int i = 0; i < Errors.Count; i++) {
builder.Append( "- " );
builder.Append( Errors[i] );
builder.Append( "
" );
}
builder.Append( "
" );
_errorsHtml = builder.ToString();
}
return _errorsHtml;
}
}
///
/// 纯文本格式的错误信息,包括换行符。
///
public String ErrorsText {
get {
if (IsValid) return null;
if (_errorsText == null) {
StringBuilder builder = new StringBuilder();
for (int i = 0; i < Errors.Count; i++) {
builder.Append( Errors[i] );
builder.Append( Environment.NewLine );
}
_errorsText = builder.ToString();
}
return _errorsText;
}
}
///
/// Json 格式的错误信息。格式 {"IsValid":false, "Msg":"请填写作者名称,请填写评论内容,验证码错误"}
///
public String ErrorsJson {
get {
if (IsValid) return "{}";
if (_errorsJson == null) {
// 格式 {"IsValid":false, "Msg":"请填写作者名称,请填写评论内容,验证码错误"}
StringBuilder builder = new StringBuilder( );
builder.Append( "{" );
builder.Append( "\"IsValid\":false, \"Msg\":\"" );
for (int i = 0; i < Errors.Count; i++) {
builder.Append( Errors[i].Replace( "\"", "'" ) );
if (i < Errors.Count - 1) builder.Append( "," );
}
builder.Append( "\"}" );
_errorsJson = builder.ToString();
}
return _errorsJson;
}
}
///
/// 附带的对象
///
public Object Info {
get { return _Info; }
set { _Info = value; }
}
///
/// 结果是否包含错误
///
public Boolean HasErrors {
get { return (Errors.Count > 0); }
}
///
/// 结果是否全部正确有效
///
public Boolean IsValid {
get { return !HasErrors; }
}
private static Boolean isWeb {
get { return SystemInfo.IsWeb; }
}
}
}