public async Task <JsonResult> UpdateQuestionWithOptionList(QuestionWithOption question1, QuestionWithOption question2, QuestionWithOption question3) { GuessGameManager manager = new GuessGameManager(); question1.StartTime = DateTime.Parse(question1.StartTime).ToString("yyyy-MM-dd 11:00:00"); question1.EndTime = DateTime.Parse(question1.EndTime).ToString("yyyy-MM-dd 11:00:00"); question2.StartTime = question1.StartTime; question2.EndTime = question1.EndTime; question3.StartTime = question1.StartTime; question3.EndTime = question1.EndTime; DateTime starttimedate = DateTime.Parse(question1.StartTime); DateTime endtimedate = DateTime.Parse(question1.EndTime); IEnumerable <Question> questionlist = manager.GetALLQuestionList(); List <long> removePKIDlist = new List <long>() { question1.PKID, question2.PKID, question3.PKID }; var allquestion = questionlist.ToList(); allquestion.RemoveAll(s => removePKIDlist.Any(a => a == s.PKID)); if (allquestion.Any()) { foreach (var question in allquestion.Where(p => p != null).ToList()) { if (!(starttimedate >= DateTime.Parse(question.EndTime) || endtimedate <= DateTime.Parse(question.StartTime))) { return(Json("题目设置时间与线上题目时间段:(" + question.StartTime + "-" + question.EndTime + ")有重叠,请重设", JsonRequestBehavior.AllowGet)); } } } List <QuestionWithOption> questionList = new List <QuestionWithOption>() { question1, question2, question3 }; bool savesuccess = manager.UpdateQuestionWithOptionList(questionList); if (savesuccess) { using (var client = new ConfigLogClient()) { foreach (var question in questionList) { var response = client.InsertDefaultLogQueue("CommonConfigLog", JsonConvert.SerializeObject(new { ObjectId = question.PKID, ObjectType = "WorldCupConfig", BeforeValue = "", AfterValue = "", Remark = "修改题目及竞猜项", Creator = User.Identity.Name, })); } } } return(Json(savesuccess ? "" : "操作失败", JsonRequestBehavior.AllowGet)); }
public IEnumerable <QuestionWithOption> GetQuestionWithOptionList(SqlConnection conn, DateTime enddatetime, bool isdeleted) { List <QuestionWithOption> questionWithOptionList = new List <QuestionWithOption>(); int isdel = Convert.ToInt32(isdeleted); //string sql = "SELECT * FROM Activity..Question WITH (NOLOCK) where datediff(dd,EndTime,@EndTime)=0 and IsDeleted=0"; string sql = @"SELECT qt.* FROM Activity..Question qt WITH (NOLOCK) INNER JOIN Activity..Questionnaire qa WITH(NOLOCK) on qt.QuestionnaireID = qa.PKID where qa.QuestionnaireType = 5 and datediff(dd,qt.EndTime,@EndTime)=0 and qt.IsDeleted=@IsDeleted"; var sqlParam = new[] { new SqlParameter("@EndTime", enddatetime), new SqlParameter("@IsDeleted", isdel) }; IEnumerable <Question> questionList = SqlHelper.ExecuteDataTable(conn, CommandType.Text, sql, sqlParam).ConvertTo <Question>(); foreach (var question in questionList.ToList()) { var questionWithOption = new QuestionWithOption() { QuestionnaireID = question.QuestionnaireID, QuestionTitle = question.QuestionTitle, PKID = question.PKID, StartTime = question.StartTime, EndTime = question.EndTime, DeadLineTime = question.DeadLineTime }; string optionSql = "SELECT * FROM Activity..QuestionOption WITH(NOLOCK) where QuestionID=@QuestionID and QuestionParentID > 0 order by PKID"; var sqlOptionParam = new[] { new SqlParameter("@QuestionID", question.PKID) }; IEnumerable <QuestionOption> questionOptionList = SqlHelper.ExecuteDataTable(conn, CommandType.Text, optionSql, sqlOptionParam).ConvertTo <QuestionOption>(); var YesOptionA = questionOptionList.Take(1).FirstOrDefault(); var YesOptionB = questionOptionList.Skip(1).Take(1).FirstOrDefault(); var YesOptionC = questionOptionList.Skip(2).Take(1).FirstOrDefault(); var NoOptionA = questionOptionList.Skip(3).Take(1).FirstOrDefault(); var NoOptionB = questionOptionList.Skip(4).Take(1).FirstOrDefault(); var NoOptionC = questionOptionList.Skip(5).Take(1).FirstOrDefault(); questionWithOption.YesOptionAPKID = YesOptionA != null ? YesOptionA.PKID : 0; questionWithOption.YesOptionAUseIntegral = YesOptionA != null ? YesOptionA.UseIntegral : 0; questionWithOption.YesOptionAWinCouponCount = YesOptionA != null ? YesOptionA.WinCouponCount : 0; questionWithOption.YesOptionBPKID = YesOptionB != null ? YesOptionB.PKID : 0; questionWithOption.YesOptionBUseIntegral = YesOptionB != null ? YesOptionB.UseIntegral : 0; questionWithOption.YesOptionBWinCouponCount = YesOptionB != null ? YesOptionB.WinCouponCount : 0; questionWithOption.YesOptionCPKID = YesOptionC != null ? YesOptionC.PKID : 0; questionWithOption.YesOptionCUseIntegral = YesOptionC != null ? YesOptionC.UseIntegral : 0; questionWithOption.YesOptionCWinCouponCount = YesOptionC != null ? YesOptionC.WinCouponCount : 0; questionWithOption.NoOptionAPKID = NoOptionA != null ? NoOptionA.PKID : 0; questionWithOption.NoOptionAUseIntegral = NoOptionA != null ? NoOptionA.UseIntegral : 0; questionWithOption.NoOptionAWinCouponCount = NoOptionA != null ? NoOptionA.WinCouponCount : 0; questionWithOption.NoOptionBPKID = NoOptionB != null ? NoOptionB.PKID : 0; questionWithOption.NoOptionBUseIntegral = NoOptionB != null ? NoOptionB.UseIntegral : 0; questionWithOption.NoOptionBWinCouponCount = NoOptionB != null ? NoOptionB.WinCouponCount : 0; questionWithOption.NoOptionCPKID = NoOptionC != null ? NoOptionC.PKID : 0; questionWithOption.NoOptionCUseIntegral = NoOptionC != null ? NoOptionC.UseIntegral : 0; questionWithOption.NoOptionCWinCouponCount = NoOptionC != null ? NoOptionC.WinCouponCount : 0; questionWithOptionList.Add(questionWithOption); } return(questionWithOptionList); }