예제 #1
0
        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));
        }
예제 #2
0
        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);
        }