Exemplo n.º 1
0
 public Answer(AnswerInfo info)
 {
     Id        = info.Id;
     Text      = info.Text;
     Image     = info.Image;
     IsCorrect = info.IsCorrect;
 }
    protected void CreateQuestionAnswerDialog_OkButtonClicked(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            if (this.QuestionId > 0)
            {
                AnswerInfo entity = new AnswerInfo();
                entity.QuestionId = this.QuestionId;
                entity.Answer  = QuestionAnswerTextBox.Text;
                entity.Correct = CorrectCheckBox.Checked;

                bool result = TestController.InsertAnswer(ref entity);

                if (result)
                {
                    CreateQuestionAnswerDialog.Reset();
                    DataBind();
                    OnQuestionAnswerCreated(EventArgs.Empty);
                    entity = null;
                }
            }
        }
        else
        {
            ValidationHelper.SetFocusToFirstError(this.Page, "create_questionanswer");
        }
    }
Exemplo n.º 3
0
        public AnswerInfo GetAnswerData(string id)
        {
            var filter = Builders <AnswerInfo> .Filter.Eq(Keys.AnswerKey, id);

            AnswerInfo answer = null;

            while (!ClientDictionaries.IsAnswer[id])
            {
                try
                {
                    var fluent = Collection.Find(filter);
                    if (fluent.Any())
                    {
                        answer = fluent.First();
                        RemoveAnswerAsync(answer.AnswerKey);
                        ClientDictionaries.IsAnswer[id] = true;
                        Core.OnLogChange(answer.AnswerKey, answer.ValueKey, false);
                    }
                }
                catch (Exception)
                {
                    if (Core.isDCClosed)
                    {
                        break;
                    }
                }
            }

            return(answer);
        }
Exemplo n.º 4
0
        public void Method_GetAnswerData()
        {
            // arrange
            AnswerInfo answer   = default(AnswerInfo);
            string     id       = "key";
            bool       isAnswer = default(bool);
            string     name     = "name";

            Core.LogChange += CQG_LogChange_Mock;
            var answerHelper = new AnswerHelper();

            UnitTestHelper.StartUp();
            Task.Run(async() =>
            {
                await answerHelper.ClearAnswersListAsync();
            }).GetAwaiter().GetResult();

            // act
            Task.Run(async() =>
            {
                await AnswerHandler.PushAnswerAsync(new AnswerInfo(id, string.Empty, name));
                answer = answerHelper.GetAnswerData(id, out isAnswer);
            }).GetAwaiter().GetResult();

            // assert
            Assert.IsTrue(isAnswer);
            Assert.AreEqual(id, answer.AnswerKey);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Processes Row information for answers that have two parameters to determine their value
        /// </summary>
        /// <param name="responseQuestion"></param>
        /// <param name="aInfo"></param>
        /// <returns></returns>
        private string ProcessRow(QuestionInfo responseQuestion, AnswerInfo aInfo)
        {
            AnswerInfo          qRow      = new AnswerInfo();
            QuestionSubtypeEnum qaSubtype = responseQuestion.QuestionType.Subtype;

            // Demographic QuestionFamily types have extra spaces and newlines in front and back of their answer text
            if (qaSubtype == QuestionSubtypeEnum.International)
            {
                qRow = responseQuestion.QuestionAnswerList.Where(e => e.AnswerID == aInfo.Row).FirstOrDefault <AnswerInfo>();
                return(qRow.Text.Trim('\n').Trim());
            }
            else
            {
                qRow = responseQuestion.QuestionAnswerList.Where(e => e.AnswerID == aInfo.Row).FirstOrDefault <AnswerInfo>();
            }

            // for optional comments in Matrices
            if (qRow != null)
            {
                return(qRow.Text);
            }

            else
            {
                return(responseQuestion.QuestionAnswerList[0].Text);
            }
        }
Exemplo n.º 6
0
        /// <summary>
        /// Processes Answer information for answers that only have one parameter to determine their value
        /// </summary>
        /// <param name="responseQuestion"></param>
        /// <param name="aInfo"></param>
        /// <returns></returns>
        private string ProcessAnswer(QuestionInfo responseQuestion, AnswerInfo aInfo)
        {
            AnswerInfo          qi        = new AnswerInfo();
            QuestionSubtypeEnum qaSubtype = responseQuestion.QuestionType.Subtype;

            if (qaSubtype == QuestionSubtypeEnum.Menu || qaSubtype == QuestionSubtypeEnum.Vertical || qaSubtype == QuestionSubtypeEnum.Horizontal)
            {
                qi = responseQuestion.QuestionAnswerList.Where(e => e.AnswerID == aInfo.Row).FirstOrDefault <AnswerInfo>();
            }
            if (qaSubtype == QuestionSubtypeEnum.Ranking || qaSubtype == QuestionSubtypeEnum.Rating)
            {
                qi = responseQuestion.QuestionAnswerList.Where(e => e.AnswerID == aInfo.Column).FirstOrDefault <AnswerInfo>();
            }

            // for optional comments in Matrices
            if (qi != null)
            {
                return(qi.Text);
            }

            else
            {
                return(aInfo.Text);
            }
        }
Exemplo n.º 7
0
        public AnswerInfo GetEncryptedInfo()
        {
            AnswerInfo info = GetInfo();

            info.IsCorrect = false;

            return(info);
        }
Exemplo n.º 8
0
        public void AddAnswer(AnswerInfo answer = null)
        {
            CtrlErrorAnswers.Visibility = Visibility.Collapsed;
            AnswerMinEditControl amec = new AnswerMinEditControl(CtrlIsRadio.IsChecked == true, answer);

            amec.MouseLeftButtonUp += CtrlAnswerCard_Click;
            CtrlAnswers.Children.Add(amec);
        }
Exemplo n.º 9
0
        public virtual double getScore(String ans, String testname, String num)
        {
            List <int> cli = JsonConvert.DeserializeObject <List <int> >(ans);
            double     sc  = AnswerInfo.check2(cli,
                                               testname,//读取cookie中文的值时先解码
                                               _dbcon);

            _dbcon.setScore(testname, num, sc);
            _back = sc.ToString();
            return(sc);
        }
Exemplo n.º 10
0
        /// <summary>
        /// 向机器人发送咨询问题
        /// </summary>
        /// <param name="question">咨询问题</param>
        /// <returns>机器人的回答</returns>
        public string Consult(string question)
        {
            string          dat = "";
            HttpWebResponse res = null;
            HttpWebRequest  req;

            try
            {
                req = (HttpWebRequest)WebRequest.Create(this._BaseUrl + question);
                req.AllowAutoRedirect = false;
                req.Timeout           = 100000;
                req.Referer           = null;
                req.Proxy             = null;
                req.UserAgent         = "Mozilla/5.0 (Windows NT 10.0;%20WOW64; rv:47.0) Gecko/20100101 Firefox/47.0";
                res = (HttpWebResponse)req.GetResponse();
            }
            catch (HttpException)
            {
                return("");
            }
            catch (WebException)
            {
                return("");
            }

            StreamReader reader;

            reader = new StreamReader(res.GetResponseStream(), Encoding.UTF8);
            dat    = reader.ReadToEnd();

            res.Close();
            req.Abort();

            string     answer = "";
            AnswerInfo info   = (AnswerInfo)JsonConvert.DeserializeObject(dat, typeof(AnswerInfo));

            if (info.code == "100000")
            {
                answer = "图灵机器人[" + this._APIKey + "]:" + info.text;

                // 每一次访问,都需要记录为最后一次成功访问时间
                _lastTalkTime = DateTime.Now;
            }

            return(answer);
        }
Exemplo n.º 11
0
 public JsonResult CheckAnswer(AnswerInfo answerInfo)
 {
     Task task = data.FindTask(answerInfo.TaskId);
     UserProfile user = data.FindUser(WebSecurity.CurrentUserId);
     if (answerInfo.UserId != 0)
     {
         UserProfile author = data.FindUser(answerInfo.UserId);
         if (author.UserId != user.UserId)
         {
             return CheckAnswerWithoutAuthor(user, task, answerInfo);
         }
         AnswerResult result = new AnswerResult();
         result.Success = false;
         result.Message = Messages.UserAuthor;
         return Json(result);
     }
     return CheckAnswerWithoutAuthor(user, task, answerInfo);
 }
Exemplo n.º 12
0
        public JsonResult CheckAnswer(AnswerInfo answerInfo)
        {
            Task        task = data.FindTask(answerInfo.TaskId);
            UserProfile user = data.FindUser(WebSecurity.CurrentUserId);

            if (answerInfo.UserId != 0)
            {
                UserProfile author = data.FindUser(answerInfo.UserId);
                if (author.UserId != user.UserId)
                {
                    return(CheckAnswerWithoutAuthor(user, task, answerInfo));
                }
                AnswerResult result = new AnswerResult();
                result.Success = false;
                result.Message = Messages.UserAuthor;
                return(Json(result));
            }
            return(CheckAnswerWithoutAuthor(user, task, answerInfo));
        }
Exemplo n.º 13
0
        public AnswerMinControl(AnswerInfo answer, bool?isRadio = null)
        {
            InitializeComponent();

            CtrlText.Text = answer.Text;

            if (isRadio == true)
            {
                CtrlIsCorrectCheck.Visibility = Visibility.Collapsed;
            }
            else
            {
                CtrlIsCorrectRadio.Visibility = Visibility.Collapsed;
            }

            CtrlImage.Source = AppManager.GetBitmapImage(answer.Image);

            this.answer = answer;
        }
Exemplo n.º 14
0
        public void Method_PushAnswer()
        {
            // arrange
            string id           = "key";
            string name         = "name";
            bool   isQueryTrue  = default(bool);
            bool   isQueryFalse = default(bool);
            var    query        = new QueryInfo(QueryType.SetProperty, id, string.Empty, name, null, null);
            var    answer       = new AnswerInfo(id, string.Empty, name, null, null);

            Core.LogChange += CQG_LogChange;
            var queryHelper  = new QueryHelper();
            var answerHelper = new AnswerHelper();

            UnitTestHelper.StartUp();
            Task.Run(async() =>
            {
                await answerHelper.ClearAnswersListAsync();
            }).GetAwaiter().GetResult();

            // act
            Task.Run(async() =>
            {
                await queryHelper.PushQueryAsync(query);
                isQueryTrue = await UnitTestHelper.QueryHandler.CheckQueryAsync(id);
            }).GetAwaiter().GetResult();

            UnitTestHelper.QueryHandler.PushAnswerAndDeleteQuery(answer);

            Task.Run(async() =>
            {
                isQueryFalse = await UnitTestHelper.QueryHandler.CheckQueryAsync(id);
            }).GetAwaiter().GetResult();

            // assert
            Assert.IsTrue(isQueryTrue);
            Assert.IsFalse(isQueryFalse);
        }
Exemplo n.º 15
0
        public Task <bool> CheckAnswerAsync(string Id)
        {
            return(Task.Run(() =>
            {
                var filter = Builders <AnswerInfo> .Filter.Eq(Keys.AnswerKey, Id);

                AnswerInfo result = null;
                try
                {
                    result = Collection.Find(filter).SingleOrDefault();
                }
                catch (Exception ex)
                {
                    Core.OnLogChange(ex.Message);
                    if (Connect())
                    {
                        CheckAnswerAsync(Id);
                    }
                }

                return (result != null);
            }));
        }
Exemplo n.º 16
0
        // Recursive checking DB for a ready answer while connection exists.
        // Getting object with answer data if there's coincidence by query id.
        public AnswerInfo GetAnswerData(string id, out bool isAns)
        {
            var filter = Builders <AnswerInfo> .Filter.Eq(Keys.AnswerKey, id);

            try
            {
                var        fluent = Collection.Find(filter);
                AnswerInfo answer = null;
                if (fluent.Any())
                {
                    answer = Collection.Find(filter).First();
                    Core.OnLogChange(answer.AnswerKey, answer.ValueKey, false);
                    RemoveAnswerAsync(answer.AnswerKey);
                    isAns = true;
                    return(answer);
                }
                else
                {
                    isAns = false;
                    return(answer);
                }
            }
            catch (Exception)
            {
                if (Connect())
                {
                    return(GetAnswerData(id, out isAns));
                }
                else
                {
                    Core.OnLogChange(id, "null", false);
                    isAns = false;
                    return(null);
                }
            }
        }
Exemplo n.º 17
0
            public static AnswerInfo WaitingForAnAnswer(string queryKey, QueryType queryType)
            {
                AnswerInfo answer = null;

                answer = AnswerHelper.GetAnswerData(queryKey);

                if (answer != null)
                {
                    ClientDictionaries.IsAnswer.Remove(queryKey);

                    // If query type of successfully extracted non empty answer tells about creation of new object,
                    // then own dictionary of event checking must be created, filled for that object and added
                    // to the common dictionary of current application
                    if (queryType == QueryType.CallCtor)
                    {
                        ClientDictionaries.FillEventCheckingDictionary(answer.ValueKey, answer.MemberName);
                    }
                }
                else
                {
                    OnLogChange(NoAnswerMessage);
                }
                return(answer);
            }
Exemplo n.º 18
0
        private JsonResult CheckAnswerWithoutAuthor(UserProfile user, Task task, AnswerInfo answerInfo)
        {
            AnswerResult result = new AnswerResult();

            if (!user.Tasks2.Contains(task))
            {
                if (data.IsAnswerCorrect(answerInfo.TaskId, answerInfo.Answer))
                {
                    data.UserSolveTask(user, task);
                    result.Success = true;
                    result.Message = Messages.UserSuccess;
                }
                else
                {
                    data.UserFailToSolveTask(user, task);
                    result.Success = false;
                    result.Message = Messages.UserFail;
                }
                return(Json(result));
            }
            result.Success = false;
            result.Message = Messages.UserAlreadySolve;
            return(Json(result));
        }
Exemplo n.º 19
0
 public void Update(AnswerInfo item)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 20
0
 public void Create(AnswerInfo item)
 {
     db.AnswersInfo.Add(item);
 }
Exemplo n.º 21
0
 public void Init(AnswerInfo info)
 {
     this.GetComponentInChildren <Button>().onClick.AddListener(() => { info.onClick(); });
     this.GetComponentInChildren <TextMeshProUGUI>().text = info.name;
 }
Exemplo n.º 22
0
        /// <summary>
        ///  Shows each respondent's answer to each question in a survey
        /// </summary>
        /// <param name="ResponseResultList">A list of responses from each person who responded to the survey</param>
        /// <param name="RespondentList">A list of respondents who answered the survey</param>
        /// <param name="SurveyQuestions">Contains a list of questions and a list of answers for each question/param>
        public void Flatten(GetResponsesResult[] ResponseResultList, RespondentInfo[] RespondentList, SurveyQuestionView SurveyQuestions)
        {
            List <ResponseWithAnswer> rwaList = new List <ResponseWithAnswer>();

            foreach (GetResponsesResult response in ResponseResultList)
            {
                List <RespondentInfo> rList = RespondentList.Where(e => e.RespondentID == response.RespondentID).ToList <RespondentInfo>();
                if (rList != null)
                {
                    RespondentInfo respondant = rList[0];
                    foreach (QuestionInfo qInfo in response.QuestionList)
                    {
                        List <QuestionInfo> question         = SurveyQuestions.QuestionList.Where(e => e.QuestionID == qInfo.QuestionID).ToList <QuestionInfo>();
                        QuestionInfo        responseQuestion = question[0];
                        qInfo.QuestionType = responseQuestion.QuestionType;

                        foreach (AnswerInfo aInfo in qInfo.QuestionAnswerList)
                        {
                            ResponseWithAnswer rwa = new ResponseWithAnswer();

                            AnswerInfo         qi       = new AnswerInfo();
                            QuestionFamilyEnum qaFamily = responseQuestion.QuestionType.Family;
                            switch (qaFamily)
                            {
                            case QuestionFamilyEnum.SingleChoice:
                                rwa.Answer = ProcessAnswer(responseQuestion, aInfo);
                                break;

                            case QuestionFamilyEnum.MultipleChoice:
                                rwa.Answer = ProcessAnswer(responseQuestion, aInfo);
                                break;

                            case QuestionFamilyEnum.Matrix:
                                rwa.Row    = ProcessRow(responseQuestion, aInfo);
                                rwa.Answer = ProcessAnswer(responseQuestion, aInfo);
                                break;

                            case QuestionFamilyEnum.OpenEnded:
                                rwa.Answer = aInfo.Text;
                                break;

                            case QuestionFamilyEnum.DateTime:
                                rwa.Row    = ProcessRow(responseQuestion, aInfo);
                                rwa.Answer = aInfo.Text;
                                break;

                            case QuestionFamilyEnum.Demographic:
                                rwa.Row    = ProcessRow(responseQuestion, aInfo);
                                rwa.Answer = aInfo.Text;
                                break;

                            case QuestionFamilyEnum.NotSet:
                                break;

                            case QuestionFamilyEnum.Presentation:
                                break;

                            case QuestionFamilyEnum.CustomVariable:
                                break;

                            default: rwa.Answer = "Answer choice cannot be found in answer bank for this question";
                                break;
                            }

                            rwa.Question        = responseQuestion.Heading;
                            rwa.QuestionID      = responseQuestion.QuestionID;
                            rwa.QuestionSubtype = responseQuestion.QuestionType.Subtype;
                            rwa.QuestionType    = qaFamily;


                            rwa.User         = respondant.Email;
                            rwa.RespondentID = respondant.RespondentID;
                            rwa.RecipientID  = respondant.RecipientID;
                            rwaList.Add(rwa);
                        }
                    }
                }
            }

            ResponseAnswerList = rwaList;
        }
 public AnswerMinEditControl(bool isRadio = false, AnswerInfo answer = null)
 {
     InitializeComponent();
     IsRadio = isRadio;
     Answer  = answer;
 }
Exemplo n.º 24
0
        public ActionResult SubReplContent(string code, string replyContent, string id)
        {
            //判断是否登陆
            if (Session["UserName"] != null)
            {
                if (!string.IsNullOrEmpty(code) && Session["ReplyCode"].ToString() == code)
                {
                    //对数据合法性进行判断
                    if (!string.IsNullOrEmpty(replyContent) && !string.IsNullOrEmpty(id))
                    {
                        try
                        {
                            //新建一个数据上下文
                            DBContext = new WebManagementDBEntities();
                            int id2 = Convert.ToInt32(id);

                            //获取论坛楼主层信息
                            var f1 = DBContext.ForumInfo.Where(f => f.Id == id2 && f.DelFlag == 0).FirstOrDefault();



                            //新建一个回复内容对象
                            AnswerInfo a1 = new AnswerInfo();
                            a1.ForumInfoId = id2;
                            a1.Content     = replyContent;
                            a1.FromNum     = Session["UserName"].ToString();
                            a1.FromName    = Session["NickName"].ToString();

                            a1.FloorNumber  = f1.FloorCount + 1;
                            a1.SubDate      = DateTime.Now;
                            a1.DelFlag      = 0;
                            a1.UsefulCount  = 0;
                            a1.UselessCount = 0;

                            //附加新建回复内容对象a1
                            DBContext.AnswerInfo.Attach(a1);
                            DBContext.Entry(a1).State = System.Data.EntityState.Added;

                            //修改楼主层的信息
                            f1.FloorCount += 1;
                            DBContext.ForumInfo.Attach(f1);
                            DBContext.Entry(f1).State = System.Data.EntityState.Modified;


                            //执行保存
                            DBContext.SaveChanges();

                            return(Content("success"));
                        }
                        catch
                        {
                            return(RedirectToAction("../User/_404"));
                        }
                    }
                    else
                    {
                        return(RedirectToAction("../User/_404"));
                    }
                }
                else
                {
                    return(Content("error1"));
                }
            }
            else
            {
                return(RedirectToAction("../Home/Login", new { referenUrl = "/Forum/Showdetail?id=" + id }));
            }
        }
Exemplo n.º 25
0
        /// <summary>
        /// GetGuidelines
        /// </summary>
        /// <param name="scorecardId"></param>
        /// <param name="reviewId"></param>
        /// <param name="listenId"></param>
        /// <param name="username"></param>
        /// <param name="reset"></param>
        /// <returns></returns>
        public dynamic GetGuidelines(int?scorecardId, int?reviewId, int?listenId, string username, int reset = 0)
        {
            using (SqlConnection sqlCon = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["CC_ProdConn"].ConnectionString))
            {
                SqlCommand sqlComm = new SqlCommand("[GetGuidelineScorecardInfo]");
                //sqlComm.Parameters.AddWithValue("@scorecard", callInfo.scorecadId);
                sqlComm.Parameters.AddWithValue("@scorecard", scorecardId);
                sqlComm.Parameters.AddWithValue("@callId", reviewId);
                sqlComm.Parameters.AddWithValue("@listenId", listenId);
                sqlComm.Parameters.AddWithValue("@userName", username);
                sqlComm.Parameters.AddWithValue("@restartID", reset);
                sqlComm.CommandType    = CommandType.StoredProcedure;
                sqlComm.CommandTimeout = 41;
                sqlComm.Connection     = sqlCon;

                GuidelineScorecardInfo guidelineScorecardInfo = new GuidelineScorecardInfo();
                try
                {
                    sqlCon.Open();
                    SqlDataAdapter sda = new SqlDataAdapter(sqlComm);
                    DataSet        ds  = new DataSet();

                    sda.Fill(ds);
                    GlScorecard scorecard = new GlScorecard();
                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        DataTable dt0 = ds.Tables[0];

                        scorecard.scorecardName = dt0.Rows[0].Field <string>("short_name");
                        scorecard.scorecardApp  = dt0.Rows[0].Field <string>("appname");
                        scorecard.scorecardId   = dt0.Rows[0].Field <int>("id");
                        scorecard.scorecardType = dt0.Rows[0].Field <string>("review_type");
                        guidelineScorecardInfo.scorecardInfo           = new GIScorecardInfo();
                        guidelineScorecardInfo.scorecardInfo.scorecard = scorecard;
                    }
                    if (scorecardId != scorecard.scorecardId && scorecardId != 0)
                    {
                        throw new InvalidOperationException();
                        //return BadRequest("Selected scorecard does not contain record with this ID");
                    }
                    List <GlSection> sections = new List <GlSection>();
                    if (ds.Tables[1].Rows.Count > 0)
                    {
                        foreach (DataRow dr in ds.Tables[1].Rows)
                        {
                            GlSection section = new GlSection();
                            section.questions = new List <GLQuestionInfo>();

                            SectionInfo sec = new SectionInfo();
                            sec.sectionId    = dr.Field <int>("id");
                            sec.sectionOrder = dr.Field <int?>("section_order");
                            sec.sectionName  = dr.Field <string>("section");

                            section.sectionInfo = sec;

                            foreach (DataRow qdr in ds.Tables[2].Rows)
                            {
                                if (qdr.Field <int>("section") == sec.sectionId)
                                {
                                    GLQuestionInfo qi = new GLQuestionInfo();

                                    //FAQs
                                    List <FAQ> faqs = new List <FAQ>();
                                    foreach (DataRow fdr in ds.Tables[5].Rows)
                                    {
                                        FAQ faq = new FAQ();
                                        if (fdr.Field <int>("question_id") == qdr.Field <int>("id"))
                                        {
                                            faq.answerText   = fdr.Field <string>("question_answer");
                                            faq.questionText = fdr.Field <string>("question_text");
                                            faq.wasEdited    = fdr.Field <bool>("wasEdited");
                                            faqs.Add(faq);
                                        }
                                    }
                                    qi.faqs = faqs;

                                    //Instructions
                                    List <Instruction> instructions = new List <Instruction>();
                                    foreach (DataRow fdr in ds.Tables[6].Rows)
                                    {
                                        Instruction instruction = new Instruction();
                                        if (fdr.Field <int>("question_id") == qdr.Field <int>("id"))
                                        {
                                            instruction.answerText      = fdr.Field <string>("answer_type");
                                            instruction.instructionText = fdr.Field <string>("question_text");
                                            instruction.wasEdited       = fdr.Field <bool>("wasEdited");
                                            instructions.Add(instruction);
                                        }
                                    }
                                    qi.instructions = instructions;

                                    qi.useQuestion     = qdr.Field <bool>("use_question");
                                    qi.commentAllowed  = qdr.Field <bool>("comments_allowed");
                                    qi.isComposite     = qdr.Field <int>("isComposite") == 1;
                                    qi.isLinked        = qdr.Field <int>("isLinked") == 1;
                                    qi.isWide          = qdr.Field <bool>("wide_q");
                                    qi.dropdownType    = qdr.Field <string>("ddl_type");
                                    qi.linkedAnswerId  = qdr.Field <int?>("linked_answer");
                                    qi.linkedCommentId = qdr.Field <int?>("linked_comment");
                                    //qi.linkedMetaData
                                    qi.linkedVisible = qdr.Field <bool>("linked_visible");
                                    qi.questionId    = qdr.Field <int>("id");
                                    try
                                    {
                                        qi.optionVerb   = (qdr.Field <string>("options_verb")).ToLower();
                                        qi.questionType = (qdr.Field <string>("q_type")).ToLower();
                                    }
                                    catch
                                    {
                                    }
                                    qi.qustionShortName = qdr.Field <string>("q_short_name");
                                    if (qdr.Field <int>("isComposite") == 1)
                                    {
                                        try
                                        {
                                            CompositeQuestionInfo cqi     = new CompositeQuestionInfo();
                                            CompositeQuestionInfo answers = new CompositeQuestionInfo();
                                            answers.answers = new List <Answer>();
                                            foreach (DataRow adr in ds.Tables[3].Rows)
                                            {
                                                if (adr.Field <int>("question_id") == qdr.Field <int>("id"))
                                                {
                                                    Answer answer = new Answer();
                                                    answer.answerId      = adr.Field <int>("id");
                                                    answer.answerText    = adr.Field <string>("answer_text");
                                                    answer.isRightAnswer = adr.Field <bool>("right_answer");
                                                    answer.points        = adr.Field <double>("answer_points");



                                                    // if (adr.Field<string>("answer_text") == "No")
                                                    {
                                                        List <QuestionTemplateItem> qtis = new List <QuestionTemplateItem>();
                                                        foreach (DataRow odr in ds.Tables[7].Rows)
                                                        {
                                                            try
                                                            {
                                                                if (odr.Field <int>("question_id") == adr.Field <int>("question_id"))
                                                                {
                                                                    QuestionTemplateItem qti = new QuestionTemplateItem();
                                                                    qti.optionId   = odr.Field <int>("id");
                                                                    qti.optionText = odr.Field <string>("option_text");
                                                                    qti.@checked   = odr.Field <bool>("isChecked");
                                                                    qtis.Add(qti);
                                                                }
                                                            }
                                                            catch
                                                            {
                                                            }
                                                        }



                                                        answers.answers.Add(answer);
                                                        answers.comments = (qtis);
                                                    }
                                                }



                                                // qi.compositeQuestionInfo.answers
                                            }
                                            qi.compositeQuestionInfo = answers;
                                            section.questions.Add(qi);
                                        }
                                        catch (Exception ex)
                                        {
                                        }
                                    }
                                    else
                                    {
                                        SimpleQuestionInfo simpleQuestionInfo = new SimpleQuestionInfo();
                                        List <AnswerInfo>  answerInfos        = new List <AnswerInfo>();

                                        foreach (DataRow adr in ds.Tables[3].Rows)
                                        {
                                            try
                                            {
                                                AnswerInfo answerInfo = new AnswerInfo();
                                                if (adr.Field <int>("question_id") == qdr.Field <int>("id"))
                                                {
                                                    Answer answer = new Answer();
                                                    answer.answerId      = adr.Field <int>("id");
                                                    answer.answerText    = adr.Field <string>("answer_text");
                                                    answer.isRightAnswer = adr.Field <bool>("right_answer");
                                                    answer.points        = adr.Field <double?>("answer_points");
                                                    if (reviewId == 0)
                                                    {
                                                        answerInfo.isAnswered = adr.Field <bool>("autoselect");
                                                    }
                                                    else
                                                    {
                                                        answerInfo.isAnswered = adr.Field <bool>("isAnswered");
                                                    }


                                                    List <GLComment> glcs = new List <GLComment>();
                                                    foreach (DataRow cdr in ds.Tables[4].Rows)
                                                    {
                                                        try
                                                        {
                                                            if (cdr.Field <int?>("answer_id") == adr.Field <int?>("id"))
                                                            {
                                                                GLComment glc = new GLComment();
                                                                glc.commentId   = cdr.Field <int>("id");
                                                                glc.commentText = cdr.Field <string>("comment");
                                                                glc.points      = cdr.Field <int?>("comment_points");
                                                                glc.@checked    = cdr.Field <bool>("checked");
                                                                glcs.Add(glc);
                                                            }
                                                        }
                                                        catch (Exception ex)
                                                        {
                                                        }
                                                    }

                                                    answerInfo.answer   = answer;
                                                    answerInfo.comments = glcs;
                                                    answerInfos.Add(answerInfo);
                                                }
                                                //ai.commentRequired
                                            }
                                            catch (Exception ex)
                                            {
                                            }


                                            // qi.compositeQuestionInfo.answers
                                        }

                                        simpleQuestionInfo.answers = answerInfos;

                                        qi.simpleQuestionInfo = simpleQuestionInfo;
                                        section.questions.Add(qi);
                                    }
                                }
                            }
                            sections.Add(section);
                        }

                        List <MetaDataItem> mdList = new List <MetaDataItem>();
                        try
                        {
                            for (int i = 0; i < ds.Tables[8].Columns.Count; i++)
                            {
                                try
                                {
                                    mdList.Add(new MetaDataItem()
                                    {
                                        name  = ds.Tables[8].Columns[i].ColumnName.ToString(),
                                        value = ds.Tables[8].Rows[0][ds.Tables[8].Columns[i].ColumnName.ToString()]
                                    });
                                }
                                catch (Exception ex)
                                {
                                }
                            }

                            string audio = "";
                            try
                            {
                                if (scorecard.scorecardType != "website")
                                {
                                    audio = new AudioHelper().GetAudioFileNameByXId(Convert.ChangeType(mdList.Where(a => a.name.ToLower() == "ID".ToLower()).Select(a => a.value).First(), typeof(int)));
                                    mdList.Where(a => a.name.ToLower() == "audio_link".ToLower()).First(a => a.value = audio);
                                }
                            }
                            catch
                            {
                            }

                            guidelineScorecardInfo.metaData = mdList;
                        }
                        catch { }
                        try
                        {
                            List <SchoolDataItem> schoolDataItem = new List <SchoolDataItem>();
                            foreach (DataRow sdr in ds.Tables[10].Rows)
                            {
                                try
                                {
                                    schoolDataItem.Add(new SchoolDataItem()
                                    {
                                        id               = sdr.Field <int?>("id"),
                                        school           = sdr.Field <string>("School"),
                                        AOI1             = sdr.Field <string>("AOI1"),
                                        AOI2             = sdr.Field <string>("AOI2"),
                                        Modality         = sdr.Field <string>("Modality"),
                                        xccId            = sdr.Field <int?>("xcc_id"),
                                        L1_SubjectName   = sdr.Field <string>("L1_SubjectName"),
                                        L2_SubjectName   = sdr.Field <string>("L2_SubjectName"),
                                        College          = sdr.Field <string>("College"),
                                        DegreeOfInterest = sdr.Field <string>("DegreeOfInterest"),
                                        origin           = sdr.Field <string>("origin"),
                                        tcpa             = sdr.Field <string>("tcpa"),
                                    });
                                }
                                catch (Exception ex)
                                {
                                }
                            }

                            guidelineScorecardInfo.schoolData = schoolDataItem;
                        }
                        catch { }
                        try
                        {
                            List <OtherDataItem> otherDataItem = new List <OtherDataItem>();
                            foreach (DataRow sdr in ds.Tables[9].Rows)
                            {
                                try
                                {
                                    otherDataItem.Add(new OtherDataItem()
                                    {//id	form_id	data_key	data_value	data_type	xcc_id	school_name	label
                                        id         = sdr.Field <int?>("id"),
                                        dataKey    = sdr.Field <string>("data_key"),
                                        dataType   = sdr.Field <string>("data_type"),
                                        dataValue  = sdr.Field <string>("data_value"),
                                        formId     = sdr.Field <int?>("form_id"),
                                        label      = sdr.Field <string>("label"),
                                        schoolName = sdr.Field <string>("school_name"),
                                        xccId      = sdr.Field <int?>("xcc_id"),
                                    });
                                }
                                catch (Exception ex)
                                {
                                }
                            }



                            guidelineScorecardInfo.otherData = otherDataItem;

                            List <GropDownItemModelGuidelines> temlateItems = new List <GropDownItemModelGuidelines>();
                            foreach (DataRow item in ds.Tables[ds.Tables.Count - 1].Rows)
                            {
                                try
                                {
                                    temlateItems.Add(new GropDownItemModelGuidelines
                                    {
                                        id    = item.Field <int>("id"),
                                        qID   = item.Field <int>("question_id"),
                                        value = item.Field <string>("value")
                                    });
                                    // temlateItems.Add(item.Field<string>("value"));
                                }
                                catch { }
                            }
                            List <string> results = new List <string>();
                            foreach (var sect in sections)
                            {
                                foreach (var que in sect.questions)
                                {
                                    foreach (var ans in que.simpleQuestionInfo.answers)
                                    {
                                        ans.answer.dropdownItems = new List <string>();
                                        foreach (var item in temlateItems)
                                        {
                                            if (item.qID == (que.questionId == null? 0 : que.questionId))
                                            {
                                                try
                                                {
                                                    results.Add(item.value);
                                                    ans.answer.dropdownItems.Add(item.value);
                                                }
                                                catch (Exception ex)
                                                {
                                                    throw ex;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        catch { }
                        guidelineScorecardInfo.scorecardInfo.sections = sections;


                        return(guidelineScorecardInfo);
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }

                return(guidelineScorecardInfo);
            }
        }
Exemplo n.º 26
0
 private JsonResult CheckAnswerWithoutAuthor(UserProfile user, Task task, AnswerInfo answerInfo)
 {
     AnswerResult result = new AnswerResult();
     if (!user.Tasks2.Contains(task))
     {
         if (data.IsAnswerCorrect(answerInfo.TaskId, answerInfo.Answer))
         {
             data.UserSolveTask(user, task);
             result.Success = true;
             result.Message = Messages.UserSuccess;
         }
         else
         {
             data.UserFailToSolveTask(user, task);
             result.Success = false;
             result.Message = Messages.UserFail;
         }
         return Json(result);
     }
     result.Success = false;
     result.Message = Messages.UserAlreadySolve;
     return Json(result);
 }
Exemplo n.º 27
0
        /// <summary>
        /// 计算分数、保存记录
        /// </summary>
        /// <param name="ansStr"></param>
        /// <param name="id"></param>
        /// <returns></returns>
        public string FinishExam(string ansStr, int id)
        {
            List<AnswerInfo> ans = JsonConvert.DeserializeObject<List<AnswerInfo>>(ansStr);

            int code;
            string message;
            try
            {
                var log = (from l in db.ES_ExamLog
                           where l.LogId == id && l.IsStart == true && l.IsSubmit == false && l.IsDel == false
                           select l).FirstOrDefault();

                if (log == null)
                {
                    code = 1;
                    message = "获取题目失败";
                    return JsonConvert.SerializeObject(new { code, message });
                }

                var scores = (from p in db.ES_ExamPaper
                              where p.EmPaperId == log.EmPaperId && p.IsDel == false && log.IsDel == false
                              select new
                              {
                                  p.EmPaperSelectScore,
                                  p.EmPaperMultipleScore,
                                  p.EmPaperJudgeScore,
                                  p.EmPaperFillScore
                              }).FirstOrDefault();

                if (scores == null)
                {
                    code = 1;
                    message = "获取分数失败";
                    return JsonConvert.SerializeObject(new { code, message });
                }

                List<string> exIdList = new List<string>(log.ExercisesId.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries));

                double singleScore = 0;
                double multipleScore = 0;
                double judgmentScore = 0;
                double fillScore = 0;

                // 获取记录中的所有题目
                exIdList.ForEach(esIdStr =>
                {
                    int esId = Convert.ToInt32(esIdStr);

                    // 获取该题考生的答案
                    AnswerInfo nowAns = null;
                    foreach (var ansItem in ans)
                    {
                        if (ansItem.EsId == esId)
                        {
                            nowAns = ansItem;
                            break;
                        }
                    }

                    // 获取该题
                    var question = (from q in db.ES_Exercise
                                    where q.EsId == esId
                                    select q).FirstOrDefault();
                    // 判断对错,计算分数
                    switch (question.EsType)
                    {
                        case "单选题":
                            if (nowAns.Ans[0] == "SQTrueAns")
                            {
                                singleScore += scores.EmPaperSelectScore;
                            }
                            break;
                        case "多选题":
                            var multiple = GetMultipleById(question.EsId);
                            int MQId = Convert.ToInt32(multiple.GetType().GetProperty("MQId").GetValue(multiple));

                            var mulAns = (from ma in db.ES_MultipleAnswer
                                          where ma.MQId == MQId
                                          select ma).ToList();

                            if (mulAns.Count() >= nowAns.Ans.Count())
                            {
                                int mulTrueNum = 0;
                                foreach (var item in mulAns)
                                {
                                    for (int i = 0; i < nowAns.Ans.Count(); i++)
                                    {
                                        if (item.MAContent == nowAns.Ans[i])
                                        {
                                            mulTrueNum++;
                                            break;
                                        }
                                    }
                                }

                                if (mulTrueNum == mulAns.Count())
                                {
                                    multipleScore += scores.EmPaperMultipleScore;
                                }
                                else if (mulTrueNum != 0)// 如果没有全对
                                {
                                    multipleScore += scores.EmPaperMultipleScore / 2;
                                }
                            }
                            break;
                        case "判断题":
                            if (nowAns.Ans[0] == "true")
                            {
                                judgmentScore += scores.EmPaperJudgeScore;
                            }
                            break;
                        case "填空题":
                            var fill = GetFillById(question.EsId);
                            int fillId = Convert.ToInt32(fill.GetType().GetProperty("FQId").GetValue(fill));

                            var fillAns = (from fa in db.ES_FillAnswer
                                           where fa.FQId == fillId
                                           select fa).ToList();
                            // 判断题顺序不能错,且答案数量不会出错

                            int trueNum = 0;

                            for (int i = 0; i < nowAns.Ans.Count(); i++)
                            {
                                if (fillAns[i].FAContent == nowAns.Ans[i])
                                {
                                    trueNum++;
                                }
                            }


                            if (trueNum == fillAns.Count())
                            {
                                fillScore += scores.EmPaperFillScore;
                            }
                            else if (trueNum != 0)// 如果没有全对
                            {
                                fillScore += scores.EmPaperFillScore / fillAns.Count();
                            }

                            break;
                    }
                });
                double finalScore = singleScore + multipleScore + judgmentScore + fillScore;

                log.Answers = ansStr;
                log.IsSubmit = true;
                log.ExamScore = finalScore;

                db.Entry(log).State = System.Data.Entity.EntityState.Modified;

                if (db.SaveChanges() > 0)
                {
                    return JsonConvert.SerializeObject(new { singleScore, multipleScore, judgmentScore, fillScore, finalScore });
                }

                code = 1;
                message = "考生记录保存失败";
                return JsonConvert.SerializeObject(new { code, message });
            }
            catch (Exception ex)
            {
                code = 1;
                message = "服务器错误!" + ex.Message;
                return JsonConvert.SerializeObject(new { code, message });
            }
        }
Exemplo n.º 28
0
 public bool EditTo(AnswerInfo entity)
 {
     return(efCore.EditTo(entity));
 }
Exemplo n.º 29
0
    public StorySettings GetNextStory(StorySettings settings, bool isPositiveAnswer, out bool isLose)
    {
        isLose = false;
        if (settings == null)
        {
            if (PlayerPrefs.HasKey("last_story_number"))
            {
                int storyNumber = PlayerPrefs.GetInt("last_story_number");

                return(allStories[storyNumber]);
            }

            int index = allStories.FindIndex((val) => val == firstStory);
            PlayerPrefs.SetInt("last_story_number", index);

            return(firstStory);
        }

        AnswerInfo answerInfo = isPositiveAnswer ? settings.positiveAnswerInfo : settings.negativeAnswerInfo;

        isLose = answerInfo.isLose;

        StorySettings nextStorySettings = answerInfo.nextStorySettings;

        List <AddedParameterInfo> randomParaments = new List <AddedParameterInfo>();

        if (Random.value < 0.7f)
        {
            randomParaments.Add(new AddedParameterInfo()
            {
                parameterType = ParameterType.Money,
                value         = Random.Range(-1, 2)
            });
        }

        if (Random.value < 0.5f)
        {
            randomParaments.Add(new AddedParameterInfo()
            {
                parameterType = ParameterType.Trust,
                value         = Random.Range(-1, 2)
            });
        }

        if (Random.value < 0.45f)
        {
            randomParaments.Add(new AddedParameterInfo()
            {
                parameterType = ParameterType.Information,
                value         = Random.Range(-1, 2)
            });
        }

        if (Random.value < 0.3f)
        {
            randomParaments.Add(new AddedParameterInfo()
            {
                parameterType = ParameterType.Personalisation,
                value         = Random.Range(-1, 2)
            });
        }


        if (nextStorySettings != null)
        {
            for (int i = 0; i < randomParaments.Count; i++)
            {
                if (!valueByType.ContainsKey(randomParaments[i].parameterType))
                {
                    valueByType.Add(randomParaments[i].parameterType, 0);
                }

                int value = valueByType[randomParaments[i].parameterType];
                value = Mathf.Clamp(value + randomParaments[i].value, 0, maxValue);

                valueByType[randomParaments[i].parameterType] = value;

                PlayerPrefs.SetInt(randomParaments[i].parameterType.ToString(), value);
            }

            int index = allStories.IndexOf(nextStorySettings);

            if (index >= 0)
            {
                PlayerPrefs.SetInt("last_story_number", index);
            }
        }

        return(nextStorySettings);
    }
Exemplo n.º 30
0
        private ResultDTO CreateResult(AnswerModel answerModel)
        {
            ResultDTO result = new ResultDTO();

            result.Answers = new List <AnswerInfo>();
            result.Date    = System.DateTime.Now.ToString();
            foreach (var item in answerModel.results)
            {
                AnswerInfo answerInfo = new AnswerInfo();
                answerInfo.Text_of_answer = item.Text_of_answer;
                answerInfo.isTrue         = item.isTrue;
                answerInfo.QuestionId     = item.QuestionId;
                answerInfo.ResultId       = result.Id;
                result.Answers.Add(answerInfo);
            }

            double countTrusAnswers = 0;

            QuestDTO quest = questService.GetById(answerModel.idQuest);

            result.QuestId = answerModel.idQuest;

            result.UserId = userService.GetUserByEmail(User.Identity.Name).Id;

            if (answerModel.Type.Equals("Тест"))
            {
                foreach (var item in answerModel.results)
                {
                    if (item.isTrue)
                    {
                        countTrusAnswers++;
                    }
                }

                double value = (countTrusAnswers / answerModel.results.Count) * 100;
                result.Percente = Math.Round(value, 2);

                if (result.Percente >= quest.Percent_Of_Exelent)
                {
                    result.Mark = 5;
                }
                else
                {
                    if (result.Percente >= quest.Percent_Of_Good)
                    {
                        result.Mark = 4;
                    }
                    else
                    {
                        if (result.Percente >= quest.Percent_Of_Satisfactory)
                        {
                            result.Mark = 3;
                        }
                        else
                        {
                            result.Mark = 2;
                        }
                    }
                }
            }

            return(result);
        }
 internal void PushAnswerAndDeleteQuery(AnswerInfo answer)
 {
     AnswerHandler.PushAnswer(answer);
     DeleteProcessedQuery(answer.AnswerKey);
 }
Exemplo n.º 32
0
            // Main method that contains all parts of executing the query on application side
            public static object ExecuteTheQuery(
                QueryType queryType,
                string dcObjType = null,
                string dcObjKey  = null,
                string memName   = null,
                object[] args    = null)
            {
                if (FirstCall)
                {
                    // Lazy connection to MongoDB
                    QueryHelper  = new QueryHelper();
                    AnswerHelper = new AnswerHelper();
                    EventHelper  = new EventHelper();

                    isDCClosedChekingTimer.Interval  = isDCClosedChekingInterval;
                    isDCClosedChekingTimer.Elapsed  += isDCClosedChekingTimer_Tick;
                    isDCClosedChekingTimer.AutoReset = false;
                    isDCClosedChekingTimer.Enabled   = true;
                }

                Dictionary <int, string> argKeys;
                Dictionary <int, object> argVals;

                PutArgsFromArrayIntoTwoDicts(args, true, out argKeys, out argVals);

                string queryKey = CreateUniqueKey();

                QueryInfo queryInfo = CreateQuery(queryType, queryKey, dcObjType, dcObjKey, memName, argKeys, argVals);

                QueryHelper.PushQuery(queryInfo);

                AnswerInfo result = WaitingForAnAnswer(queryKey, queryType);

                if (FirstCall)
                {
                    // Start handshaking
                    Subscriber.ListenForHanshaking();

                    FirstCall = false;
                }

                if (result == null)
                {
                    return(default(object));
                }

                if (result.IsCQGException)
                {
                    var exception = new Exception(result.CQGException.Message);
                    exception.Source = result.CQGException.Source;
                    throw exception;
                }

                if (result.ValueKey == "value")
                {
                    return(result.Value);
                }
                else if (result.ValueKey == "true")
                {
                    return(true);
                }
                else
                {
                    return(result.ValueKey);
                }
            }
        // Main query processing method
        public void ProcessQuery(QueryInfo query)
        {
            // Object where the data obtained after query execution is placed
            // This object will be sent to the DB
            AnswerInfo answer;

            // Get a name of a symbol if it's CQGTimedBarsRequestClass object's request
            // and show it in MiniMonitor form
            if (query.ObjectType == "CQGTimedBarsRequestClass")
            {
                object qObj      = UsedObjs.Contains(query.ObjectKey) ? UsedObjs[query.ObjectKey] : ServerDictionaries.GetObjectFromTheDictionary(query.ObjectKey);
                string instrName = (string)qObj.GetType().InvokeMember("Symbol",
                                                                       BindingFlags.GetProperty, null, qObj, null);
                if (!DCMiniMonitor.symbolsList.Contains(instrName))
                {
                    DCMiniMonitor.symbolsList.Add(instrName);
                    Program.MiniMonitor.SymbolsListsUpdate();
                }
            }

            // Handling of the request depending on its kind
            switch (query.QueryType)
            {
            case QueryType.CallCtor:
            {
                try
                {
                    string key;

                    // Handling of the ctor calling request and creation of an object depending on its type
                    switch (query.MemberName)
                    {
                    // Handling of CQGCEL ctor calling request
                    case "CQG.CQGCELClass":
                        key = CqgDataManagement.CEL_key;
                        break;

                    // Common case
                    default:
                        object[] args = Core.GetArgsIntoArrayFromTwoDicts(query.ArgKeys, query.ArgValues);
                        object   qObj = CQGAssm.CreateInstance(query.MemberName, false,
                                                               BindingFlags.CreateInstance, null, args, null, null);
                        key = Core.CreateUniqueKey();

                        ServerDictionaries.PutObjectToTheDictionary(key, qObj);
                        UsedObjs.Add(key, qObj);
                        break;
                    }

                    answer = new AnswerInfo(query.QueryKey, query.ObjectKey, query.MemberName, valueKey: key);
                    PushAnswerAndDeleteQuery(answer);
                }
                catch
                {
                    try
                    {
                        AutoGenQueryProcessing(query);
                    }
                    catch (Exception ex)
                    {
                        answer = CreateExceptionAnswer(ex, query);
                        PushAnswerAndDeleteQuery(answer);
                    }
                }
            }
            break;

            case QueryType.CallDtor:
            {
                if (query.ObjectKey != CqgDataManagement.CEL_key)
                {
                    UsedObjs.Remove(query.ObjectKey);
                    ServerDictionaries.RemoveObjectFromTheDictionary(query.ObjectKey);
                }

                // Remove name of a symbol if it's CQG.CQGTimedBarsRequest object deleting
                // from MiniMonitor form
                if (query.MemberName == "CQG.CQGTimedBarsRequest")
                {
                    object qObj     = UsedObjs.Contains(query.ObjectKey) ? UsedObjs[query.ObjectKey] : ServerDictionaries.GetObjectFromTheDictionary(query.ObjectKey);
                    string symbName = (string)qObj.GetType().InvokeMember("Symbol",
                                                                          BindingFlags.GetProperty, null, qObj, null);
                    DCMiniMonitor.symbolsList.Remove(symbName);
                    Program.MiniMonitor.SymbolsListsUpdate();
                }

                answer = new AnswerInfo(query.QueryKey, query.ObjectKey, query.MemberName, value: true);

                PushAnswerAndDeleteQuery(answer);
            }
            break;

            case QueryType.GetProperty:
            {
                object qObj = UsedObjs.Contains(query.ObjectKey) ? UsedObjs[query.ObjectKey] : ServerDictionaries.GetObjectFromTheDictionary(query.ObjectKey);

                object[] args = Core.GetArgsIntoArrayFromTwoDicts(query.ArgKeys, query.ArgValues);

                try
                {
                    // Getting of property value
                    var propV = qObj.GetType().InvokeMember(query.MemberName, BindingFlags.GetProperty, null, qObj, args);

                    // Checking type of property value and returning value or value key
                    // (second, if it's not able to be transmitted through the database)
                    answer = Core.IsSerializableType(propV.GetType()) ?
                             CreateValAnswer(query.QueryKey, query.ObjectKey, query.MemberName, propV) :
                             CreateKeyAnswer(query.QueryKey, query.ObjectKey, query.MemberName, propV);

                    PushAnswerAndDeleteQuery(answer);
                }
                catch
                {
                    try
                    {
                        AutoGenQueryProcessing(query);
                    }
                    catch (Exception ex)
                    {
                        answer = CreateExceptionAnswer(ex, query);
                        PushAnswerAndDeleteQuery(answer);
                    }
                }
            }
            break;

            case QueryType.SetProperty:
            {
                object qObj = UsedObjs.Contains(query.ObjectKey) ? UsedObjs[query.ObjectKey] : ServerDictionaries.GetObjectFromTheDictionary(query.ObjectKey);

                object[] args = Core.GetArgsIntoArrayFromTwoDicts(query.ArgKeys, query.ArgValues);

                if (string.Concat(qObj.GetType()) == "CQG.CQGTimedBarsRequest" && query.MemberName == "Symbol")
                {
                    DCMiniMonitor.symbolsList.Add(string.Concat(args[0]));
                    Program.MiniMonitor.SymbolsListsUpdate();
                }

                try
                {
                    // Setting of property value
                    qObj.GetType().InvokeMember(query.MemberName, BindingFlags.SetProperty, null, qObj, args);
                    answer = new AnswerInfo(query.QueryKey, query.ObjectKey, query.MemberName, value: true);

                    PushAnswerAndDeleteQuery(answer);
                }
                catch
                {
                    try
                    {
                        AutoGenQueryProcessing(query);
                    }
                    catch (Exception ex)
                    {
                        answer = CreateExceptionAnswer(ex, query);
                        PushAnswerAndDeleteQuery(answer);
                    }
                }
            }
            break;

            case QueryType.CallMethod:
            {
                // Handling of Shutdown method calling by CQGCEL object. This method has not be called from client applications
                if (query.MemberName == "Shutdown")
                {
                    var returnKey = "true";
                    answer = new AnswerInfo(query.QueryKey, query.ObjectKey, query.MemberName, valueKey: returnKey);
                    PushAnswerAndDeleteQuery(answer);
                    break;
                }

                object qObj = UsedObjs.Contains(query.ObjectKey) ? UsedObjs[query.ObjectKey] : ServerDictionaries.GetObjectFromTheDictionary(query.ObjectKey);

                object[] args = Core.GetArgsIntoArrayFromTwoDicts(query.ArgKeys, query.ArgValues);

                try
                {
                    object returnV;

                    bool isGetter = query.MemberName.StartsWith("get_");
                    bool isSetter = query.MemberName.StartsWith("set_");
                    if (isGetter || isSetter)
                    {
                        // Access property instead of calling method
                        string       propName   = query.MemberName.Substring(4);
                        BindingFlags invokeAttr = isGetter ? BindingFlags.GetProperty : BindingFlags.SetProperty;
                        returnV = qObj.GetType().InvokeMember(propName, invokeAttr, null, qObj, args);
                    }
                    else
                    {
                        returnV = qObj.GetType().InvokeMember(query.MemberName, BindingFlags.InvokeMethod, null, qObj, args);
                    }

                    if (!object.ReferenceEquals(returnV, null))
                    {
                        // Handling method call request depending of return value type
                        answer = Core.IsSerializableType(returnV.GetType()) ?
                                 CreateValAnswer(query.QueryKey, query.ObjectKey, query.MemberName, returnV) :
                                 CreateKeyAnswer(query.QueryKey, query.ObjectKey, query.MemberName, returnV);
                    }
                    else
                    {
                        // Handling void method call
                        var returnKey = "true";
                        answer = new AnswerInfo(query.QueryKey, query.ObjectKey, query.MemberName, valueKey: returnKey);
                    }

                    PushAnswerAndDeleteQuery(answer);
                }
                catch
                {
                    try
                    {
                        AutoGenQueryProcessing(query);
                    }
                    catch (Exception ex)
                    {
                        answer = CreateExceptionAnswer(ex, query);
                        PushAnswerAndDeleteQuery(answer);
                    }
                }
            }
            break;

            case QueryType.SubscribeToEvent:
            case QueryType.UnsubscribeFromEvent:
            {
                object qObj = UsedObjs.Contains(query.ObjectKey) ? UsedObjs[query.ObjectKey] : ServerDictionaries.GetObjectFromTheDictionary(query.ObjectKey);

                try
                {
                    System.Reflection.EventInfo ei = qObj.GetType().GetEvent(query.MemberName);

                    if (EventHandler.EventAppsSubscribersNum.ContainsKey(query.MemberName))
                    {
                        EventHandler.EventAppsSubscribersNum[query.MemberName] =
                            query.QueryType == QueryType.SubscribeToEvent ?
                            EventHandler.EventAppsSubscribersNum[query.MemberName] + 1 :
                            EventHandler.EventAppsSubscribersNum[query.MemberName] - 1;
                    }
                    else
                    {
                        EventHandler.EventAppsSubscribersNum.Add(query.MemberName, 1);
                    }

                    // Find corresponding CQG delegate
                    Type delType = FindDelegateType(CQGAssm, query.MemberName);

                    // Instantiate the delegate with our own handler
                    var        eventHandlersMethods = typeof(CQGEventHandlers).GetMethods();
                    MethodInfo handlerInfo          = null;

                    for (int i = 0; i < eventHandlersMethods.Length; i++)
                    {
                        if (eventHandlersMethods[i].Name.Contains(query.MemberName))
                        {
                            handlerInfo = eventHandlersMethods[i];
                        }
                    }

                    Delegate d = Delegate.CreateDelegate(delType, handlerInfo);

                    if (query.QueryType == QueryType.SubscribeToEvent)
                    {
                        // Subscribe our handler to CQG event
                        ei.AddEventHandler(qObj, d);
                    }
                    else if (query.QueryType == QueryType.UnsubscribeFromEvent)
                    {
                        // Unsubscribe our handler from CQG event
                        ei.RemoveEventHandler(qObj, d);
                    }

                    answer = new AnswerInfo(query.QueryKey, query.ObjectKey, query.MemberName, value: true);

                    PushAnswerAndDeleteQuery(answer);
                }
                catch
                {
                    try
                    {
                        AutoGenQueryProcessing(query);
                    }
                    catch (Exception ex)
                    {
                        answer = CreateExceptionAnswer(ex, query);
                        PushAnswerAndDeleteQuery(answer);
                    }
                }

                if (query.QueryType == QueryType.SubscribeToEvent &&
                    query.MemberName == "DataConnectionStatusChanged")
                {
                    // Fire this event explicitly, because data collector connects to real CQG beforehand and does not fire it anymore
                    CQGEventHandlers._ICQGCELEvents_DataConnectionStatusChangedEventHandlerImpl(CqgDataManagement.currConnStat);
                }
            }
            break;

            default:
            {
                throw new ArgumentOutOfRangeException();
            }
            }
        }