📄 surveycreate.cs
字号:
namespace PowerEasy.Survey
{
using PowerEasy.Common;
using PowerEasy.IDal.Survey;
using PowerEasy.Model.Survey;
using PowerEasy.Model.TemplateProc;
using PowerEasy.Templates;
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using System.Web;
public sealed class SurveyCreate
{
private static readonly ISurveyCreate dal = DataAccess.CreateSurveyCreate();
private SurveyCreate()
{
}
private static void ContentLengthJS(SurveyFieldInfo info, StringBuilder tempFormJs, string otherName)
{
if ((0 < info.ContentLength) && (info.ContentLength <= 0xff))
{
tempFormJs.Append(string.Concat(new object[] { "if (document.myform.", otherName, ".value.length>255||document.myform.", otherName, ".value.length>", info.ContentLength, ")\n" }));
tempFormJs.Append("{flag=false;alert('填写的内容过长');\n");
tempFormJs.Append("document.myform." + otherName + ".focus();return flag}\n");
}
}
private static void EnableNullJS(SurveyFieldInfo info, StringBuilder tempFormJs, string problemName)
{
if (info.EnableNull)
{
tempFormJs.Append("if (document.myform." + problemName + ".value=='')\n");
tempFormJs.Append("{flag=false;");
tempFormJs.Append("alert('" + info.QuestionContent + "不能为空');\n");
tempFormJs.Append("document.myform." + problemName + ".focus();\n");
tempFormJs.Append("return flag}\n");
}
}
public static bool FileNameExists(string fileName)
{
return dal.FileNameExists(fileName);
}
public static string GetDynamicContent(string createContent, int surveyId)
{
Match match = Regex.Match(createContent, @"<head[^>]*>([\s\S]*)</head>");
if (match.Success)
{
createContent = Regex.Replace(createContent, @"<head[^>]*>[\s\S]*</head>", "<head runat=\"server\">" + match.Groups[1].Value + "</head>", RegexOptions.IgnoreCase);
}
else
{
createContent = Regex.Replace(createContent, "(<html[^>]*>)", "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head runat=\"server\"/>", RegexOptions.IgnoreCase);
}
createContent = "<%@ Page Language=\"c#\" StylesheetTheme=\"\"%>\n" + createContent;
createContent = GetServerCode(createContent, surveyId);
return createContent;
}
private static string GetFormJS(SurveyFieldInfo info)
{
StringBuilder tempFormJs = new StringBuilder();
tempFormJs.Append("");
string problemName = "Q" + info.QuestionId.ToString();
string otherName = "Q" + info.QuestionId.ToString() + "Input";
switch (info.QuestionType)
{
case 0:
EnableNullJS(info, tempFormJs, problemName);
ContentLengthJS(info, tempFormJs, problemName);
break;
case 1:
EnableNullJS(info, tempFormJs, problemName);
break;
case 2:
if (info.EnableNull)
{
tempFormJs.Append("var Input1=false\n");
tempFormJs.Append("for (i=0;i<document.myform." + problemName + ".length;i++) \n");
tempFormJs.Append("{Input1=Input1||document.myform." + problemName + "[i].checked;} \n");
tempFormJs.Append("if (Input1==false){alert('请选择" + info.QuestionContent + "');\n");
tempFormJs.Append("document.myform." + problemName + "[0].focus();\n");
tempFormJs.Append("return Input1};\n");
}
if (info.InputType == 1)
{
ContentLengthJS(info, tempFormJs, otherName);
}
break;
case 3:
if (info.EnableNull)
{
tempFormJs.Append("var Input2=false\n");
tempFormJs.Append("for (i=0;i<document.myform." + problemName + ".length;i++) \n");
tempFormJs.Append("{Input2=Input2||document.myform." + problemName + "[i].checked;} \n");
tempFormJs.Append("document.myform." + problemName + "[0].focus();\n");
tempFormJs.Append("if (Input2==false){alert('请选择" + info.QuestionContent + "');\n");
tempFormJs.Append("return Input2};\n");
}
if (info.InputType == 1)
{
ContentLengthJS(info, tempFormJs, otherName);
}
break;
case 4:
if (info.EnableNull)
{
tempFormJs.Append("if (document.myform." + problemName + ".selectedIndex==-1)\n");
tempFormJs.Append("{flag=false;alert('请选择" + info.QuestionContent + "');\n");
tempFormJs.Append("document.myform." + problemName + ".focus();return flag}\n");
}
break;
case 6:
EnableNullJS(info, tempFormJs, problemName);
break;
case 7:
if (info.EnableNull)
{
tempFormJs.Append("var Input1=false\n");
tempFormJs.Append("for (i=0;i<document.myform." + problemName + ".length;i++) \n");
tempFormJs.Append("{Input1=Input1||document.myform." + problemName + "[i].checked;} \n");
tempFormJs.Append("if (Input1==false){alert('请选择" + info.QuestionContent + "');\n");
tempFormJs.Append("document.myform." + problemName + "[0].focus();\n");
tempFormJs.Append("return Input1};\n");
}
break;
case 8:
EnableNullJS(info, tempFormJs, problemName);
tempFormJs.Append("if (document.myform." + problemName + ".value!=''&&isNaN(myform." + problemName + ".value))\n");
tempFormJs.Append("{alert('请用数字填写" + info.QuestionContent + "');\n");
tempFormJs.Append("flag=false;\n");
tempFormJs.Append("document.myform." + problemName + ".focus();\n");
tempFormJs.Append("return flag}\n");
break;
case 9:
EnableNullJS(info, tempFormJs, problemName);
tempFormJs.Append("if (myform." + problemName + ".value!='') \n");
tempFormJs.Append("{if (myform." + problemName + ".value.length<6) {\n");
tempFormJs.Append("flag=false;\n");
tempFormJs.Append("alert('您所填的Email太短!');\n");
tempFormJs.Append("document.myform." + problemName + ".focus();\n");
tempFormJs.Append("return flag}\n");
tempFormJs.Append("if (myform." + problemName + ".value.indexOf('@')==-1||myform." + problemName + ".value.indexOf('.')==-1)\n");
tempFormJs.Append("{flag=false;\n");
tempFormJs.Append("alert('Email格式有问题,是否包含了@和.');\n");
tempFormJs.Append("document.myform." + problemName + ".focus();\n");
tempFormJs.Append("return flag}}\n");
break;
}
return tempFormJs.ToString();
}
private static string GetServerCode(string createContent, int surveyId)
{
StringBuilder builder = new StringBuilder();
builder.Append("<script runat=\"server\">\r\n");
builder.Append(" protected void Page_Load(object sender, EventArgs e)\r\n");
builder.Append(" {\r\n");
builder.Append(" string returnurl = Request.UrlReferrer == null?string.Empty : Request.UrlReferrer.AbsoluteUri;\r\n");
builder.Append(" int surveyId = " + surveyId.ToString() + ";\r\n");
builder.Append(" string ip =PowerEasy.Components.PEContext.Current.UserHostAddress;\r\n");
builder.Append(" PowerEasy.Model.Survey.SurveyInfo surveyInfo = PowerEasy.Survey.SurveyManager.GetSurveyById(surveyId);\r\n");
builder.Append(" if (surveyInfo.IsNull)\r\n");
builder.Append(" {\r\n");
builder.Append(" PowerEasy.Web.UI.DynamicPage.WriteErrMsg(\"<li>该问卷不存在!</li>\",returnurl);\r\n");
builder.Append(" }\r\n");
builder.Append(" if (surveyInfo.IsOpen != 1)\r\n");
builder.Append(" {\r\n");
builder.Append(" PowerEasy.Web.UI.DynamicPage.WriteErrMsg(\"<li>问卷调查尚未启用!</li>\",returnurl);\r\n");
builder.Append(" }\r\n");
builder.Append(" if (surveyInfo.EndTime != null && surveyInfo.EndTime < DateTime.Now)\r\n");
builder.Append(" {\r\n");
builder.Append(" PowerEasy.Web.UI.DynamicPage.WriteErrMsg(\"<li>问卷调查已经结束!</li>\",returnurl);\r\n");
builder.Append(" }\r\n");
builder.Append(" if (PowerEasy.Survey.SurveyManager.CheckIPLock(ip, surveyInfo))\r\n");
builder.Append(" {\r\n");
builder.Append(" PowerEasy.Web.UI.DynamicPage.WriteErrMsg(\"<li>对不起!您的IP(\" + ip + \")被系统限定。您可以和站长联系。</li>\",returnurl);\r\n");
builder.Append(" }\r\n");
builder.Append(" if (PowerEasy.Survey.SurveyManager.CheckRepeatIP(ip, surveyId, surveyInfo))\r\n");
builder.Append(" {\r\n");
builder.Append(" PowerEasy.Web.UI.DynamicPage.WriteErrMsg(\"<li>同一用户不允许填写问卷调查超过\" + surveyInfo.IPRepeat.ToString() + \"次!</li>\",returnurl);\r\n");
builder.Append(" }\r\n");
builder.Append(" string url = HttpContext.Current.Request.Url.AbsoluteUri;\r\n");
builder.Append(" if (surveyInfo.NeedLogin == 1)\r\n");
builder.Append(" {\r\n");
builder.Append(" if (string.IsNullOrEmpty(PowerEasy.Components.PEContext.Current.User.UserName))\r\n");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -