public ContentResult getNaireJson(NaireJsonObject naireJson) { user_id = Request.Cookies["user_id"].Value; if (naire_id == null) { createProject(naireJson); } else { naire_id = Request.Cookies["naire_id"].Value; editProject(naireJson); } return(Content(naire_id)); }
/// <summary> /// 创建项目 /// </summary> private void createProject(NaireJsonObject naireJson) { user_id = Request.Cookies["user_id"].Value; // 开始时间与最后修改时间 string start_time = Request.Cookies["start_time"].Value; string edit_time = DateTime.Now.ToShortDateString().ToString(); NaireWebDataContext db = new NaireWebDataContext(); naire_info naire = new naire_info(); naire.user_id = int.Parse(user_id); naire.title = naireJson.title; naire.hint = naireJson.hint; naire.state = "未发布"; naire.start_time = start_time; naire.update_time = edit_time; naire.questions = JsonConvert.SerializeObject(naireJson); naire.recycle = 0; // 提交问卷 db.naire_info.InsertOnSubmit(naire); db.SubmitChanges(); // 获得naire_id的最大值 var naire_num = db.naire_info.Max(p => p.id); naire_id = naire_num.ToString(); // 提交每一个问题 for (int i = 0; i < naireJson.list.Count; i++) { question_info question = new question_info(); question.naire_id = naire_num; question.title = naireJson.list[i].title; question.flag = naireJson.list[i].flag; question.items = JsonConvert.SerializeObject(naireJson.list[i].items); db.question_info.InsertOnSubmit(question); db.SubmitChanges(); } }
// GET: Project public ActionResult Index() { // 获得问卷Id string naire_id = Request.QueryString["naire_id"]; // 判断问卷是否在预览状态 string isPreview = Request.QueryString["isPreview"]; if (isPreview == "1") { ViewBag.isPreview = "1"; } // 根据问卷Id获得相应问题的Id NaireWebDataContext db = new NaireWebDataContext(); // 判断是否发布了,如果没发布就不能打开 naire_info stateResult = (from r in db.naire_info where r.id == int.Parse(naire_id) select r).FirstOrDefault(); if (stateResult.state == "未发布") { // 重定向去首页 if (isPreview != "1") { return(Redirect("~/Home/Index")); } } // 获得问卷的问题 var question_header = from r in db.question_info where r.naire_id == int.Parse(naire_id) select new { r.id, r.naire_id, r.title, r.flag }; var questions = (from r in db.naire_info where r.id == int.Parse(naire_id) select new { r.questions }).FirstOrDefault().questions.ToString(); NaireJsonObject naire = JsonConvert.DeserializeObject <NaireJsonObject>(questions); string question_header_json = JsonConvert.SerializeObject(question_header); List <QuestionListItemHeader> naireList = JArray.Parse(question_header_json) .ToObject <List <QuestionListItemHeader> >(); List <QuestionListItem> questionListItem_list = new List <QuestionListItem>(); for (int i = 0; i < naireList.Count; i++) { QuestionListItem item = new QuestionListItem(); item.id = naireList[i].id; item.naire_id = naireList[i].naire_id; item.title = naireList[i].title; item.flag = naireList[i].flag; item.list = naire.list[i].items; questionListItem_list.Add(item); } // 根据相应问题的Id获得选项 NaireHaveIdJsonObject naireHaveId = new NaireHaveIdJsonObject(); naireHaveId.title = naire.title; naireHaveId.hint = naire.hint; naireHaveId.list = questionListItem_list; // 拼接成JSON给前台生成问卷(挂个data-quesion-id)的属性 ViewBag.NaireHaveId = JsonConvert.SerializeObject(naireHaveId); return(View()); }
/// <summary> /// 编辑项目 /// </summary> private void editProject(NaireJsonObject naireJson) { string edit_time = DateTime.Now.ToShortDateString().ToString(); }