Esempio n. 1
0
        public NextResult GoNextSet(QuestionQuery query)
        {
            var lstResults = new NextResult();

            lstResults.Status  = "W";
            lstResults.Message = "Required";
            try
            {
                lstResults.Required = new List <long>();
                lstResults.Selected = new List <long>();
                List <Question> lst = SessionManager.QuestResult;
                foreach (Question quest in lst)
                {
                    if (quest.Set == query.currentSet)
                    {
                        if (quest.Value == null)
                        {
                            lstResults.Required.Add(quest.Number);
                        }
                        else
                        {
                            lstResults.Selected.Add(quest.Number);
                        }
                    }
                }
                if (lstResults.Required.Count == 0)
                {
                    lstResults.Status = "S";
                }
            }
            catch (IOException ex)
            {
                //lstResults.Status = "R";
                lstResults.Message = ex.Message;

                var logManager = new LogManager();
                logManager.LogIOException(ex, "SponJobsManager", "GoNextSet");
            }
            catch (Exception ex)
            {
                //lstResults.Status = "R";
                lstResults.Message = ex.Message;
                while (ex.InnerException != null)
                {
                    lstResults.Message += ex.InnerException.Message;
                    ex = ex.InnerException;
                }

                //+ ex.InnerException.InnerException.Message;

                var logManager = new LogManager();
                logManager.LogGeneralException(ex, "SponJobsManager", "GoNextSet");
            }
            return(lstResults);
        }
Esempio n. 2
0
        public async Task <ListResult <QuestionDto> > QueryListAsync(QuestionQuery query)
        {
            var result = await _questionRepository.QueryListAsync(query);

            return(new ListResult <QuestionDto>(result)
            {
                Items = Mapper.Map <Question, QuestionDto>(result.Items, (from, to) =>
                {
                    to.Summary = from.Content.Text;
                })
            });
        }
Esempio n. 3
0
        public ActionResult GetQuestionList(QuestionQuery query)
        {
            if (query == null)
            {
                new QuestionQuery();
            }

            if (!query.PageSize.HasValue)
            {
                query.PageSize = 10;
            }
            if (!query.PageIndex.HasValue)
            {
                query.PageIndex = 1;
            }

            query.UserID = this.UserData.UserID;

            try
            {
                PageVM <QuestionItemVM> quData = new BBSQuestionService().GetQuestionPageList(query);
                if (quData == null || quData.Data == null || quData.Data.Count == 0)
                {
                    return(Json(new
                    {
                        Code = -200,
                        Msg = "暂无数据",
                        Data = quData
                    }));
                }

                return(Json(new
                {
                    Code = 200,
                    Msg = "获取成功",
                    Data = quData
                }));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 4
0
        public List <FreeSurvey> SelectAnswer(QuestionQuery query)
        {
            var lstResults = new List <FreeSurvey>();

            try
            {
                List <FreeSurvey> lst = SessionManager.FreeSurveyResult;
                foreach (FreeSurvey quest in lst)
                {
                    if (quest.Number == query.question)
                    {
                        quest.Value = query.value;
                    }
                }

                SessionManager.FreeSurveyResult = lst;
                lstResults = lst;
            }
            catch (IOException ex)
            {
                //lstResults.Status = "R";

                var logManager = new LogManager();
                logManager.LogIOException(ex, "SponJobsManager", "GoFinalResult2");
            }
            catch (Exception ex)
            {
                //lstResults.Status = "R";
                while (ex.InnerException != null)
                {
                    ex = ex.InnerException;
                }

                //+ ex.InnerException.InnerException.Message;

                var logManager = new LogManager();
                logManager.LogGeneralException(ex, "SponJobsManager", "GoFinalResult2");
            }
            return(lstResults);
        }
Esempio n. 5
0
        public async Task <QueryResult <Question> > GetQuestions(QuestionQuery queryObj)
        {
            var result = new QueryResult <Question>();
            var query  = context.Questions
                         .Include(u => u.User)
                         .AsQueryable();
            var columnsMap = new Dictionary <string, Expression <Func <Question, object> > >()
            {
                ["title"]     = x => x.Title,
                ["details"]   = x => x.Details,
                ["firstname"] = x => x.User.FirstName,
                ["lastname"]  = x => x.User.LastName
            };

            query             = query.ApplyOrdering(queryObj, columnsMap);
            result.TotalItems = await query.CountAsync();

            query = query.ApplyPaging(queryObj);

            result.Items = await query.ToListAsync();

            return(result);
        }
Esempio n. 6
0
        public ActionResult GetQAnswerPageList(QuestionQuery query)
        {
            if (query == null)
            {
                query = new QuestionQuery();
            }
            if (!query.QuestionID.HasValue)
            {
                return(Json(new
                {
                    Code = -400,
                    Msg = "参数不能为空",
                    Data = ""
                }));
            }

            query.UserID = this.UserData.UserID;
            PageVM <QuesitonDetailItemVM> quVM = new BBSQuestionService().GetQAnswerPageList(query);

            if (quVM == null)
            {
                return(Json(new
                {
                    Code = -200,
                    Msg = "暂无数据",
                    Data = ""
                }));
            }

            return(Json(new
            {
                Code = 200,
                Msg = "获取成功",
                Data = quVM
            }));
        }
Esempio n. 7
0
        public FinalResult GoFinalResult(QuestionQuery query)
        {
            var lstResults = new FinalResult();

            lstResults.Status  = "W";
            lstResults.Message = "Required";
            try
            {
                lstResults.Required = new List <long>();
                lstResults.Selected = new List <long>();
                List <Question> lst        = SessionManager.QuestResult;
                PrintingData2   QuizResult = new PrintingData2();
                foreach (Question quest in lst)
                {
                    if (quest.Set == query.currentSet)
                    {
                        if (quest.Value == null)
                        {
                            lstResults.Required.Add(quest.Number);
                        }
                        else
                        {
                            lstResults.Selected.Add(quest.Number);
                        }
                    }
                }
                if (lstResults.Required.Count == 0)
                {
                    List <PrintingData2> results = new List <PrintingData2>();
                    QuizResult.PrintingDate = DateTime.Now;
                    foreach (Question quest in lst)
                    {
                        switch (quest.Group)
                        {
                        case 1:
                            QuizResult.EResult += (long)quest.Value;
                            break;

                        case 2:
                            QuizResult.AResult += (long)quest.Value;
                            break;

                        case 3:
                            QuizResult.CResult += (long)quest.Value;
                            break;

                        case 4:
                            QuizResult.IResult += (long)quest.Value;
                            break;

                        case 5:
                            QuizResult.SResult += (long)quest.Value;
                            break;

                        case 6:
                            QuizResult.RResult += (long)quest.Value;
                            break;

                        default:
                            break;
                        }
                    }

                    results.Add(QuizResult);
                    PrintManager pm = new PrintManager();
                    lstResults.FilePath = pm.PrintResult2(results);

                    SessionManager.QuizResult = new QuizTest()
                    {
                        PrintingData2 = QuizResult, FilePath = lstResults.FilePath
                    };

                    lstResults.Status = "S";
                }
            }
            catch (IOException ex)
            {
                //lstResults.Status = "R";
                lstResults.Message = ex.Message;

                var logManager = new LogManager();
                logManager.LogIOException(ex, "SponJobsManager", "GoFinalResult2");
            }
            catch (Exception ex)
            {
                //lstResults.Status = "R";
                lstResults.Message = ex.Message;
                while (ex.InnerException != null)
                {
                    lstResults.Message += ex.InnerException.Message;
                    ex = ex.InnerException;
                }

                //+ ex.InnerException.InnerException.Message;

                var logManager = new LogManager();
                logManager.LogGeneralException(ex, "SponJobsManager", "GoFinalResult2");
            }
            return(lstResults);
        }
Esempio n. 8
0
        /// <summary>
        /// 获取问题列表
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        public PageVM <QuestionItemVM> GetQuestionPageList(QuestionQuery query)
        {
            using (var dbContext = new DbContext().ConnectionStringName(ConnectionUtil.connBBS, new MySqlProvider()))
            {
                List <SqlParameter> paramList = new List <SqlParameter>();
                string sql = string.Format(@"
                                            -- 选取每个问题点赞数量最多的回答
                                            drop table if EXISTS tempAnswer;												
                                            create TEMPORARY table tempAnswer 
                                            (
                                              select * from
	                                            (
			                                            select
				                                            ID as AnswerID,
				                                            QuestionID,
				                                            (select count(1) from bbspraisetread p where p.BindTableID = a.ID and p.BindTableName = 'bbsanswer' and p.PraiseOrTread = 1)as TotalPraise,
				                                            (select count(1) from bbspraisetread p where p.BindTableID = a.ID and p.BindTableName = 'bbsanswer' and p.PraiseOrTread = 2)as TotalTread,
                                                            (
			                                                    select count(*) from bbspraisetread p where p.BindTableID = a.ID and p.BindTableName = 'bbsanswer' and p.PraiseOrTread = 1 
			                                                    and p.UserID = {0}
		                                                     )as IsPraised,
                                                             (
			                                                    select count(*) from bbspraisetread p where p.BindTableID = a.ID and p.BindTableName = 'bbsanswer' and p.PraiseOrTread = 2 
			                                                    and p.UserID = {0}
		                                                     )as IsTreaded
			                                            from bbsanswer a where QuestionID in (select ID from bbsquestion)
			                                            ORDER BY TotalPraise DESC
	                                            )x
	                                            GROUP BY x.QuestionID 
                                            );
                                         
	                                        select   
	                                            q.ID as QuestionID,
	                                            q.Title,
                                                q.UserID,
                                                q.UserName,
	                                            a.ID as AnswerID,
	                                            a.Content,
	                                            t.TotalPraise,
	                                            t.TotalTread,
                                                t.IsPraised,
                                                t.IsTreaded
	                                        from bbsquestion q left join tempAnswer t on q.ID = t.QuestionID 
	                                        left join bbsanswer a on t.AnswerID = a.ID 
	                                        Where 1=1 "    , query.UserID);

                if (!string.IsNullOrEmpty(query.KeyWord))
                {
                    sql += string.Format(@" AND q.Title Like '%{0}%' ", query.KeyWord);
                }

                sql += "  ORDER BY q.InputTime DESC ";

                string sqlPage = string.Format(" Limit {0},{1} ", (query.PageIndex - 1) * query.PageSize, query.PageSize);
                List <QuestionItemVM> quList = dbContext.Sql(sql + sqlPage).QueryMany <QuestionItemVM>((QuestionItemVM vm, IDataReader reader) =>
                {
                    vm.QuestionID  = reader.GetInt64("QuestionID");
                    vm.AnswerID    = reader.GetInt64("AnswerID");
                    vm.Title       = reader.GetString("Title");
                    vm.Content     = string.IsNullOrEmpty(reader.GetString("Content")) ? "" : reader.GetString("Content");
                    vm.TotalPraise = Convert.ToInt32(reader["TotalPraise"]);
                    vm.TotalTread  = Convert.ToInt32(reader["TotalTread"]);
                    vm.UserID      = Convert.ToInt32(reader["UserID"]);
                    vm.UserName    = reader.GetString("UserName");
                    vm.IsPraised   = Convert.ToInt32(reader["IsPraised"]);
                    vm.IsTreaded   = Convert.ToInt32(reader["IsTreaded"]);
                });

                //总条数
                int totalCount = dbContext.Sql(sql).QueryMany <int>().Count;
                //总页数
                int totalPages = (int)Math.Ceiling(((double)totalCount / query.PageSize.Value));

                PageVM <QuestionItemVM> pageData = new PageVM <QuestionItemVM>()
                {
                    TotalCount = totalPages,
                    TotalPages = totalPages,
                    Data       = quList
                };

                return(pageData);
            }
        }
        public Question Get(Guid communityId, Guid questionId)
        {
            var query = new QuestionQuery(node.Blockchain);

            return(query.Execute(communityId, questionId));
        }
Esempio n. 10
0
 public async Task <Page <QuestionDto> > GetQuestionPage([FromQuery] QuestionQuery query)
 {
     return(_mapper.Map <Page <QuestionDto> >(await _questionService.GetQuestionPageByQuery(query)));
 }
Esempio n. 11
0
 public IEnumerable <QuestionDto> GetQuestions([FromQuery] QuestionQuery query, [FromQuery] PagingQuery paging)
 {
     return(_mapper.Map <IEnumerable <QuestionDto> >(_questionService.GetQuestionsByQuery(query))
            .Skip(paging.StartPage * paging.PageSize)
            .Take(paging.PageSize));
 }
Esempio n. 12
0
 public List <FreeSurvey> SelectAnswer(QuestionQuery query)
 {
     return(freeSurveyManager.SelectAnswer(query));
 }
Esempio n. 13
0
 public FinalResult GoFinalResult(QuestionQuery query)
 {
     return(surveyManager.GoFinalResult(query));
 }
Esempio n. 14
0
 public NextResult GoNextSet(QuestionQuery query)
 {
     return(surveyManager.GoNextSet(query));
 }
Esempio n. 15
0
 public SelectQuestResult SelectQuest(QuestionQuery query)
 {
     return(surveyManager.SelectQuest(query));
 }
Esempio n. 16
0
        public PageVM <QuesitonDetailItemVM> GetQAnswerPageList(QuestionQuery query)
        {
            if (!query.QuestionID.HasValue)
            {
                return(null);
            }

            if (!query.PageSize.HasValue)
            {
                query.PageSize = 10;
            }

            if (!query.PageIndex.HasValue)
            {
                query.PageIndex = 1;
            }

            string sql = string.Format(@"
                                            select * from 
                                            (
	                                            select 
		                                            a.ID as AnswerID,
		                                            a.Content,
		                                            a.InputTime as EditTime,
		                                            (select Count(1) from bbspraisetread p where p.BindTableID = a.ID and p.BindTableName = 'bbsanswer' and p.PraiseOrTread = 1)as PraiseCount,
		                                            (select Count(1) from bbspraisetread p where p.BindTableID = a.ID and p.BindTableName = 'bbsanswer' and p.PraiseOrTread = 2)as TreadCount,
		                                            (
			                                            select count(*) from bbspraisetread p where  p.BindTableID = a.ID and p.BindTableName = 'bbsanswer' and p.PraiseOrTread = 1 
			                                            and p.UserID = {1}
		                                            )as IsPraised,
		                                            (
			                                            select count(*) from bbspraisetread p where  p.BindTableID = a.ID and p.BindTableName = 'bbsanswer' and p.PraiseOrTread = 2
			                                            and p.UserID = {1}
		                                            )as IsTreaded,
		                                            u.ID as UserID,
		                                            u.LoginName as UserName,
		                                            u.HeadImageUrl as LogoUrl
	                                            from bbsanswer a join bbsuser u on a.UserID = u.ID
	                                            where a.QuestionID = {0}
                                            )x  ", query.QuestionID, query.UserID);

            sql += " ORDER BY x.EditTime desc ,x.PraiseCount desc ";

            string sqlPage = string.Format(" Limit {0},{1} ;", query.PageSize * (query.PageIndex - 1), query.PageSize);

            using (var dbContext = new DbContext().ConnectionStringName(ConnectionUtil.connBBS, new MySqlProvider()))
            {
                List <QuesitonDetailItemVM> itemList = dbContext.Sql(sql)
                                                       .QueryMany <QuesitonDetailItemVM>
                                                           ((QuesitonDetailItemVM vm, IDataReader reader) =>
                {
                    vm.AnswerID    = reader.GetInt64("AnswerID");
                    vm.Content     = reader.GetString("Content");
                    vm.EditTime    = reader.GetDateTime("EditTime");
                    vm.PraiseCount = Convert.ToInt32(reader["PraiseCount"]);
                    vm.TreadCount  = Convert.ToInt32(reader["TreadCount"]);
                    vm.UserID      = reader.GetInt32("UserID");
                    vm.UserName    = reader.GetString("UserName");
                    vm.LogoUrl     = reader.GetString("LogoUrl");
                    vm.IsPraised   = Convert.ToInt32(reader["IsPraised"]);
                    vm.IsTreaded   = Convert.ToInt32(reader["IsTreaded"]);
                });

                if (itemList == null || itemList.Count == 0)
                {
                    return(null);
                }

                //总条数
                int totalCount = dbContext.Sql(sql).QueryMany <int>().Count;
                //总页数
                int totalPages = (int)Math.Ceiling(((double)totalCount / query.PageSize.Value));

                PageVM <QuesitonDetailItemVM> pageVM = new PageVM <QuesitonDetailItemVM>()
                {
                    Data       = itemList,
                    TotalCount = totalCount,
                    TotalPages = totalPages
                };

                return(pageVM);
            }
        }
Esempio n. 17
0
 private string GetInsertionQuestionLine(QuestionQuery question)
 {
     return
         ($"EXECUTE [dbo].[addQuestionWithId] {question.QuestionId}, {question.UserId},  N'{question.Condition}',  N'{question.OriginalBackgroundUrl}', {(int)question.AudienceType}, {(int)question.QuestionType}, N'{question.FirstOption}', N'{question.SecondOption}', '{question.AddedDate:u}'");
 }