ZhiYeJianKang_PeiXun/Song.Site/Mobile/QuesCollects.ashx.cs

210 lines
7.7 KiB
C#
Raw Permalink Normal View History

2025-02-20 15:41:53 +08:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using WeiSha.Common;
using Song.ServiceInterfaces;
using VTemplate.Engine;
namespace Song.Site.Mobile
{
/// <summary>
/// 试题收藏
/// </summary>
public class QuesCollects : BasePage
{
//课程id
protected int couid = WeiSha.Common.Request.QueryString["couid"].Int32 ?? 0;
//当前学员收藏的试题
Song.Entities.Questions[] collectQues = null;
protected override void InitPageTemplate(HttpContext context)
{
if (Request.ServerVariables["REQUEST_METHOD"] == "GET")
{
//传递过来的试题总记录数
if (!Extend.LoginState.Accounts.IsLogin) this.Response.Redirect("login.ashx");
//题型
this.Document.SetValue("quesType", WeiSha.Common.App.Get["QuesType"].Split(','));
Song.Entities.Accounts st = Extend.LoginState.Accounts.CurrentUser;
//错题列表
Song.Entities.Questions[] ques = Business.Do<IStudent>().CollectCount(st.Ac_ID, 0, couid, -1, -1);
for (int i = 0; i < ques.Length; i++)
{
ques[i] = Extend.Questions.TranText(ques[i]);
ques[i].Qus_Title = ques[i].Qus_Title.Replace("&lt;", "<");
ques[i].Qus_Title = ques[i].Qus_Title.Replace("&gt;", ">");
ques[i].Qus_Title = Extend.Html.ClearHTML(ques[i].Qus_Title, "p", "div", "font");
}
this.Document.SetValue("Total", ques.Length); //试题的总数
this.Document.SetValue("couid", WeiSha.Common.Request.QueryString["couid"].Int32 ?? 0);
this.Document.SetValue("ques", ques);
this.Document.RegisterGlobalFunction(this.AnswerItems);
this.Document.RegisterGlobalFunction(this.IsCollect);
this.Document.RegisterGlobalFunction(this.GetAnswer);
}
//此页面的ajax提交全部采用了POST方式
if (Request.ServerVariables["REQUEST_METHOD"] == "POST")
{
string action = WeiSha.Common.Request.Form["action"].String;
switch (action)
{
case "delete":
delete();
break;
case "clear":
clear();
break;
}
}
}
/// <summary>
/// 删除
/// </summary>
private void delete()
{
//记录的id
int id = WeiSha.Common.Request.Form["qid"].Int32 ?? 0;
try
{
if (id > 0)
{
if (Extend.LoginState.Accounts.IsLogin)
{
Song.Entities.Accounts st = Extend.LoginState.Accounts.CurrentUser;
Business.Do<IStudent>().CollectDelete(id, st.Ac_ID);
}
}
Response.Write("1");
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
Response.End();
}
/// <summary>
/// 清空
/// </summary>
private void clear()
{
int couid = WeiSha.Common.Request.Form["couid"].Int32 ?? 0;
try
{
if (couid > 0)
{
if (Extend.LoginState.Accounts.IsLogin)
{
Song.Entities.Accounts st = Extend.LoginState.Accounts.CurrentUser;
Business.Do<IStudent>().CollectClear(couid, st.Ac_ID);
}
}
Response.Write("1");
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
Response.End();
}
/// <summary>
/// 当前试题的选项,仅用于单选与多选
/// </summary>
/// <returns>0为没有子级其它有子级</returns>
protected object AnswerItems(object[] p)
{
Song.Entities.Questions qus = null;
if (p.Length > 0)
qus = (Song.Entities.Questions)p[0];
//当前试题的答案
Song.Entities.QuesAnswer[] ans = Business.Do<IQuestions>().QuestionsAnswer(qus, null);
for (int i = 0; i < ans.Length; i++)
{
ans[i] = Extend.Questions.TranText(ans[i]);
//ans[i].Ans_Context = ans[i].Ans_Context.Replace("<", "&lt;");
//ans[i].Ans_Context = ans[i].Ans_Context.Replace(">", "&gt;");
}
return ans;
}
/// <summary>
/// 试题是否被当前学员收藏
/// </summary>
/// <param name="objs"></param>
/// <returns></returns>
protected object IsCollect(object[] objs)
{
int qid = 0;
if (objs.Length > 0)
qid = Convert.ToInt32(objs[0]);
//当前收藏
if (collectQues == null)
{
if (Extend.LoginState.Accounts.IsLogin)
{
Song.Entities.Accounts st = Extend.LoginState.Accounts.CurrentUser;
collectQues = Business.Do<IStudent>().CollectAll4Ques(st.Ac_ID, 0, couid, 0);
}
else
{
collectQues = Business.Do<IStudent>().CollectAll4Ques(0, 0, couid, 0);
}
}
if (collectQues != null)
{
foreach (Song.Entities.Questions q in collectQues)
{
if (qid == q.Qus_ID) return true;
}
}
return false;
}
/// <summary>
/// 试题的答案
/// </summary>
/// <param name="objs"></param>
/// <returns></returns>
protected string GetAnswer(object[] objs)
{
//当前试题
Song.Entities.Questions qus = null;
if (objs.Length > 0) qus = objs[0] as Song.Entities.Questions;
if (qus == null) return "";
string ansStr = "";
if (qus.Qus_Type == 1)
{
//当前试题的答案
Song.Entities.QuesAnswer[] ans = Business.Do<IQuestions>().QuestionsAnswer(qus, null);
for (int i = 0; i < ans.Length; i++)
{
if (ans[i].Ans_IsCorrect)
ansStr += (char)(65 + i);
}
}
if (qus.Qus_Type == 2)
{
Song.Entities.QuesAnswer[] ans = Business.Do<IQuestions>().QuestionsAnswer(qus, null);
for (int i = 0; i < ans.Length; i++)
{
if (ans[i].Ans_IsCorrect)
ansStr += (char)(65 + i) + "、";
}
ansStr = ansStr.Substring(0, ansStr.LastIndexOf("、"));
}
if (qus.Qus_Type == 3)
ansStr = qus.Qus_IsCorrect ? "正确" : "错误";
if (qus.Qus_Type == 4)
{
if (qus != null && !string.IsNullOrEmpty(qus.Qus_Answer))
ansStr = qus.Qus_Answer;
}
if (qus.Qus_Type == 5)
{
//当前试题的答案
Song.Entities.QuesAnswer[] ans = Business.Do<IQuestions>().QuestionsAnswer(qus, null);
for (int i = 0; i < ans.Length; i++)
ansStr += (char)(65 + i) + "、" + ans[i].Ans_Context + "<br/>";
}
return ansStr;
}
}
}