예제 #1
0
        private async Task <List <int> > GetSelectedQuestionIdListAsync(Member member, PracticeTypeDto model)
        {
            switch (model.PracticeType)
            {
            case PracticeType.Favorite:
                return(await _Db.QuestionFavorites.Where(o => o.MemberId == member.Id
                                                         & o.QuestionTypeId == model.QuestionTypeId
                                                         & o.IsFavorite
                                                         ).Select(o => o.QuestionId).Distinct().ToListAsync());

            case PracticeType.Error:
            case PracticeType.Ignore:
                AnswerStatus answerStatus = model.PracticeType == PracticeType.Error ? AnswerStatus.Error : AnswerStatus.Ignore;
                IQueryable <AnswerRecord> answerRecordsQueryable = _Db.AnswerRecords.Where(o => o.MemberId == member.Id
                                                                                           & o.AnswerStatus == answerStatus);
                if (model.ExamId != 0)
                {
                    answerRecordsQueryable = answerRecordsQueryable.Where(o => o.ExamId == model.ExamId);
                }
                return(await(from a in answerRecordsQueryable
                             join b in _Db.Questions.Where(o => o.QuestionTypeId == model.QuestionTypeId) on a.QuestionId equals b.Id
                             select a.QuestionId
                             ).Distinct().ToListAsync());

            case PracticeType.Exam:
            case PracticeType.Order:
            case PracticeType.Random:
            default:
                return(null);
            }
        }
예제 #2
0
        public SimplexAnswer(SimplexTable finalTable, AnswerStatus status = AnswerStatus.NoSolutions)
        {
            Status = status;
            Solution solution = new Solution();

            solution.BasisIndexes = (int[])finalTable.BasisVariablesIndexes.Clone();
            solution.OptimalValue = finalTable.GoalFunctionValue;
            double[]   optimalCoefficients = new double[finalTable.CountOfVariables];
            List <int> freeIndexes         = new List <int>();

            // все небазисные (свободные) переменные равны 0
            for (int i = 0; i < finalTable.CountOfVariables; i++)
            {
                if (finalTable.BasisVariablesIndexes.Contains(i))
                {
                    optimalCoefficients[i] = finalTable.FreeMemebers[i];
                }
                else
                {
                    freeIndexes.Add(i);
                    optimalCoefficients[i] = 0;
                }
            }
            solution.FreeIndexes         = freeIndexes.ToArray();
            solution.OptimalCoefficients = optimalCoefficients;
            solution.StartIndexes        = finalTable.StartVariablesIndexes;
            Solutions.Add(solution);
        }
예제 #3
0
        private double GetReactionTime(TimeSpan spentTime, AnswerStatus answerStatus)
        {
            double reactionTime          = 0;
            var    expectedReactionTime  = TimeSpan.FromSeconds(examinationQuestions[iterationsService.Current].DefaultReactionTime);
            var    additionalRactionTime = examinationQuestions[iterationsService.Current].MaxReactionTime;

            switch (answerStatus)
            {
            case (AnswerStatus.Correct):
            case (AnswerStatus.Incorrect):
            {
                var difference = TimeSpan.FromSeconds(examinationQuestions[iterationsService.Current].DefaultReactionTime) - spentTime;
                reactionTime = Math.Abs(difference.TotalMilliseconds);
                break;
            }

            case (AnswerStatus.TimeUp):
            {
                var difference        = totalReactionTime - expectedReactionTime;
                var maxTimeAsTimeSpan = TimeSpan.FromSeconds(examinationQuestions[iterationsService.Current].MaxReactionTime);
                reactionTime = difference <= maxTimeAsTimeSpan?TimeSpan.FromSeconds(additionalRactionTime).TotalMilliseconds
                               : Math.Abs(difference.TotalMilliseconds);

                break;
            }

            default:
                break;
            }

            return(reactionTime);
        }
예제 #4
0
        public AnswerStatus SaveUserAnswer()
        {
            var result = new AnswerStatus();
            var ds     = SqlHelper.ExecuteDataset(_connectionString, SqlObject.CommandText, SqlObject.Parameters);

            result.AnswerResult = JsonConvert.SerializeObject(ds.Tables[0]);
            return(result);
        }
예제 #5
0
    public void Init(AnswerStatus value, AnswerStatus isGood)
    {
        isGoodAnswer = isGood;

        type = value == AnswerStatus.None? sprites[2] : value == AnswerStatus.Good?  sprites[1] : sprites[0];

        StartCoroutine(ExampleCoroutine());
    }
예제 #6
0
 void RaiseEventChoiseAnswer(AnswerStatus status, string countryName, double scoreDelta)
 {
     if (ChoiseAnswer != null)
     {
         ChoiseAnswerEventArgs answerData = new ChoiseAnswerEventArgs()
         {
             Status = status, CountryName = countryName, ScoreDelta = scoreDelta
         };
         ChoiseAnswer(this, answerData);
     }
 }
예제 #7
0
        private void SaveAnswer(ExaminationAnswerModel answer, TimeSpan spentTime, AnswerStatus answerStatus)
        {
            reportService.AddReport(
                iterationsService.Current,
                TimeSpan.FromMilliseconds(GetReactionTime(spentTime, answerStatus)),
                answer,
                answerStatus,
                examinationQuestions[iterationsService.Current].QuestionId);

            progressViewModel.SetGivenAnswerStatusLabel(answerStatus, IsNextTestCaseExist);

            if (IsNextTestCaseExist)
            {
                PlayNextAudio();
            }
        }
예제 #8
0
        private AnswerStatus CreateCategories(BlogDto blogDTO, IUnitOfWork uow)
        {
            var categoryRepository = _repositoryFactory.CreateCategoryRepository(uow);


            foreach (var categoryToAdd in blogDTO.BlogCategories)
            {
                categoryToAdd.RelatedTo = blogDTO;
                AnswerStatus status = _categoryService.CreateCategory(categoryToAdd, categoryRepository);
                if (status == AnswerStatus.Failed)
                {
                    return(AnswerStatus.Failed);
                }
            }
            return(AnswerStatus.Successfull);
        }
        public JsonResult GetBaseData(string code)
        {
            var cm = CacheManager <Personnel_Info> .GetInstance()[PubGet.GetUserKey + code];

            var           orgName      = cm.Organization;
            var           fleet        = cm.MotorcadeName;
            var           plate_no     = cm.CabLicense;
            var           idCard       = cm.IdCard;
            var           date         = DateTime.Now.ToString("yyyy-MM");
            var           score        = "";
            List <string> BaseDataList = new List <string>();

            using (SqlSugarClient _dbMsSql = SugarDao_MsSql.GetInstance2())
            {
                score = _dbMsSql.SqlQuery <string>(@"select * from dbo.tb_query_score where id_no=@IDCard", new { IDCard = plate_no }).ToList().FirstOrDefault();
                if (score == null || score == "")
                {
                    score = "0";
                }
            }
            AnswerStatus answerStatusList = new AnswerStatus();

            using (SqlSugarClient _dbMsSql = SugarDao_MsSql.GetInstance())
            {
                var answerList = _dbMsSql.SqlQuery <AnswerStatus>(@"select * 
                                 from(
                                  select p.Name,p.IDNumber,convert(varchar(7),ei.CreatedDate,120) as sDate,
                                      case when eai.TotalScore>=60 then '合格' --已阅答题
                                     when eai.TotalScore<60 then '不合格' --已阅未答题
                                     else '未答题' --未阅未答题
                                      end as Result
                                  from [dbo].[Business_Personnel_Information] p
                                  left join Business_ExercisesAnswer_Information eai on p.Vguid=eai.BusinessPersonnelVguid and convert(varchar,eai.CreatedDate,23)>=@Date
                                  left join Business_Exercises_Infomation ei on eai.BusinessExercisesVguid=ei.Vguid    and convert(varchar,ei.CreatedDate,23)>=@Date
                                  where p.ApprovalStatus='2'
                                  )a PIVOT( MAX(Result) FOR sDate IN([Status]) ) AS T ", new { Date = date }).ToList();
                answerStatusList = answerList.Where(x => x.IDNumber == idCard).ToList().FirstOrDefault();
            }
            BaseDataList.Add(score);
            BaseDataList.Add(answerStatusList.Status);
            BaseDataList.Add(DateTime.Now.Month.ToString());
            BaseDataList.Add(cm.Name);
            BaseDataList.Add(plate_no);
            BaseDataList.Add(fleet);
            return(Json(BaseDataList, JsonRequestBehavior.AllowGet));
        }
예제 #10
0
        // Функция конфигурации элемента управления
        private void Init()
        {
            // Конфигурация фрагмента:
            statusLabel = new Label();
            this.Controls.Add(statusLabel);
            this.statusLabel.Size      = new Size(28, 28);              // Размер надписи
            this.statusLabel.Location  = new Point(4, 11);              // Место надписи на родительском элементе
            this.statusLabel.TextAlign = ContentAlignment.MiddleCenter; // Выравнивание текста
            this.statusLabel.Text      = $"{number}";                   // Надпись (номер вопроса)
            this.Size   = new Size(40, 50);                             // Размер самого элемента
            this.Margin = new Padding(0);                               // поля
            // Если во фрагменте нет элемента ответа, он должен быть серым
            if (answer == null)
            {
                Status = AnswerStatus.wait; // Устанавливается состояние
                return;
            }
            // Проверка правильности отвеченного вопроса
            switch (answer.question.Type)
            {
            // Если вопрос с одиночным или множественным выбором
            case Models.Type.single:
            case Models.Type.multiple:
                // Фильтруются варианты ответа на вопрос
                var rightOptions = GetRightOptions(answer.question.Options);
                // И проверяются с теми, которые ответил студент
                bool equal = answer.choosen.SequenceEqual(rightOptions, new OptionComparer());
                // Если они равны - закрашивается зеленым, иначе - красным
                Status = equal ? AnswerStatus.right : AnswerStatus.wrong;
                break;

            // Если вопрос на заполнение
            case Models.Type.filling:
                // Правильный вариант ответа и ответ студента приводятся к одному виду.
                // Если они не равны
                if (answer.choosen[0].option.TrimEnd().TrimStart().ToLower() == answer.question.Options[0].option.TrimEnd().TrimStart().ToLower())
                {
                    Status = AnswerStatus.right;     // Закрашивается зеленым
                }
                else
                {
                    Status = AnswerStatus.wrong;     // или красным
                }
                break;
            }
        }
예제 #11
0
    private void Change(AnswerStatus value)
    {
        if (value == AnswerStatus.None)
        {
            return;
        }

        _slider.DOValue(_slider.value + offset * (value == AnswerStatus.Good? -1 : 1), 0.3f)
        .OnComplete(() =>
        {
            var index = CheckHandle();

            if (_slider.value == 0 || _slider.value == 1)
            {
                DOVirtual.DelayedCall(0.0f, () =>
                {
                    //OnGameOver?.Invoke(_slider.value == 0);
                });
            }
        });
    }
예제 #12
0
        private AnswerStatus RemoveUserBlog(int userId, IUnitOfWork uow)
        {
            var blogServiceAnswer = _blogService.GetBlogByUserId(userId);

            if ((blogServiceAnswer.Status == AnswerStatus.Failed))
            {
                return(AnswerStatus.Failed);
            }

            if ((blogServiceAnswer.ReceivedEntity != null))
            {
                var          blogRepository = _repositoryFactory.CreateBlogRepository(uow);
                AnswerStatus status         = _blogService.DeleteBlog(blogServiceAnswer.ReceivedEntity, blogRepository);
                if (status == AnswerStatus.Failed)
                {
                    return(AnswerStatus.Failed);
                }
            }

            return(AnswerStatus.Successfull);
        }
예제 #13
0
        public void SetGivenAnswerStatusLabel(AnswerStatus answerStatus, bool isNextTestCaseExist)
        {
            switch (answerStatus)
            {
            case AnswerStatus.Correct:
                CurrentProggressLabel = $"{Resources.Correct}! ";
                break;

            case AnswerStatus.Incorrect:
                CurrentProggressLabel = $"{Resources.Incorrect}! ";
                break;

            case AnswerStatus.TimeUp:
                CurrentProggressLabel = $"{Resources.TimeUp}! ";
                break;

            default:
                break;
            }

            CurrentProggressLabel += isNextTestCaseExist ? Resources.PressNextToContinue : Resources.PressStopToFinishLabel;
        }
예제 #14
0
        private AnswerStatus DeleteCategories(int blogId, IUnitOfWork uow)
        {
            var categoryServiceAnswer = _categoryService.GetBlogCategories(blogId);

            if (categoryServiceAnswer.Status == AnswerStatus.Failed)
            {
                return(AnswerStatus.Failed);
            }

            var blogCategories     = categoryServiceAnswer.ReceivedEntity;
            var categoryRepository = _repositoryFactory.CreateCategoryRepository(uow);

            foreach (var categoryDTO in blogCategories)
            {
                AnswerStatus status = _categoryService.DeleteCategory(categoryDTO, categoryRepository);
                if (status == AnswerStatus.Failed)
                {
                    return(AnswerStatus.Failed);
                }
            }

            return(AnswerStatus.Successfull);
        }
예제 #15
0
        void SetItemChoiseResult(MapItem item, AnswerStatus status)
        {
            switch (status)
            {
            case AnswerStatus.Win:
                item.Attributes.Add(new MapItemAttribute()
                {
                    Name = AnswerAttributeName, Value = "Right"
                });
                ResetCountriesSelections(false);
                consecutiveWins++;
                OverlayManager.SetInfoMessage(consecutiveWins >= 3 ? ForEndGame : ForWinMessage);
                break;

            case AnswerStatus.Lose:
                item.Attributes.Add(new MapItemAttribute()
                {
                    Name = AnswerAttributeName, Value = "Wrong"
                });
                ResetCountriesSelections(false);
                consecutiveWins = 0;
                OverlayManager.SetInfoMessage(WrongSelectMessage);
                break;

            case AnswerStatus.WrongTry:
                SetCountryTrySelection(item);
                consecutiveWins = 0;
                break;

            case AnswerStatus.ShowCountry:
                MapControl.ZoomToFit(new List <MapItem>()
                {
                    item
                });
                break;
            }
        }
예제 #16
0
        private async Task <List <AnswerRecord> > GetAnswerRecordListAsync(Member member, int intQuestionRecordId, PracticeTypeDto practiceModel, QuestionDto questionModel)
        {
            List <AnswerRecord> answerRecordList = null;

            switch (practiceModel.PracticeType)
            {
            case PracticeType.Error:
            case PracticeType.Ignore:
                AnswerStatus answerStatus = practiceModel.PracticeType == PracticeType.Error ? AnswerStatus.Error : AnswerStatus.Ignore;
                answerRecordList = await _Db.AnswerRecords.Where(o => o.MemberId == member.Id
                                                                 & o.QuestionId == questionModel.Question.Id
                                                                 & o.AnswerStatus == answerStatus).ToListAsync();

                break;

            default:
                answerRecordList = await _Db.AnswerRecords.Where(o => o.MemberId == member.Id
                                                                 & o.QuestionRecordId == intQuestionRecordId
                                                                 & o.ExamId == practiceModel.ExamId
                                                                 & o.QuestionId == questionModel.Question.Id).ToListAsync();

                if (!answerRecordList.Any())
                {
                    answerRecordList.Add(new AnswerRecord
                    {
                        MemberId         = member.Id,
                        QuestionRecordId = intQuestionRecordId,
                        ExamId           = practiceModel.ExamId,
                        QuestionId       = questionModel.Question.Id,
                        UpdateTime       = DateTime.Now
                    });
                }
                break;
            }
            return(answerRecordList);
        }
예제 #17
0
        private AnswerStatus DeletePosts(int blogId, IUnitOfWork uow)
        {
            var postServiceAnswer = _postService.GetBlogPosts(blogId);

            if (postServiceAnswer.Status == AnswerStatus.Failed)
            {
                return(AnswerStatus.Failed);
            }

            var blogPosts = postServiceAnswer.ReceivedEntity;

            foreach (var postDTO in blogPosts)
            {
                var postRepository = _repositoryFactory.CreatePostRepository(uow);

                AnswerStatus status = _postService.DeletePost(postDTO, postRepository);
                if (status == AnswerStatus.Failed)
                {
                    return(AnswerStatus.Failed);
                }
            }

            return(AnswerStatus.Successfull);
        }
예제 #18
0
 public ServiceAnswer(T entityToReceive, AnswerStatus status)
 {
     ReceivedEntity = entityToReceive;
     Status         = status;
 }
예제 #19
0
        /// <summary>
        /// Validate the current answer : control the signature if present and parse the Yubico code answer
        /// </summary>
        public void Validate()
        {
            if (this.Parameters.ContainsKey(this.responseConfiguration.Signature))
            {
                string concat = String.Empty;
                foreach (string key in this.Parameters.Keys)
                {
                    if (key != this.responseConfiguration.Signature)
                    {
                        concat += String.Format("{0}={1}&", key, this.Parameters[key]);
                    }
                }

                this.IsSignatureValid = SignatureManager.GetInstance(this.credentialsConfiguration.PrivateKey).CheckSignature(
                    concat.Substring(0, concat.Length - 1),
                    this.Parameters[this.responseConfiguration.Signature]);
            }

            if (this.Parameters.ContainsKey(this.responseConfiguration.Status))
            {
                this.Status = this.ParseStatus(this.Parameters[this.responseConfiguration.Status]);
            }
        }
예제 #20
0
    private void ReceivedAnswer(AnswerStatus value)
    {
        var sm = Instantiate(prefab, pos.position, Quaternion.identity, parent);

        sm.GetComponent <UISmilesController>().Init(value, isGoodAnswer);
    }
예제 #21
0
 private void CheckAnswer(AnswerStatus value)
 {
     isGoodAnswer = value;
 }
예제 #22
0
        public void AddReport(string testCaseName, TimeSpan spentTime, ExaminationAnswerModel answer, AnswerStatus answerStatus, long questionId)
        {
            var report = new ExaminationReportModel
            {
                Answer       = answer,
                Status       = answerStatus,
                SpentTime    = spentTime,
                QuestionId   = questionId,
                TestCaseName = testCaseName
            };

            reports.Add(report);
        }
예제 #23
0
    private void AddToList(bool exit, int toNode, string text, int questStatus, string questName, bool isActive, AnswerStatus answerStatus)
    {
        buttonText[id].gameObject.SetActive(true);
        buttonText[id].ClearSelect(isActive);
        buttonText[id].text.text           = text;
        buttonText[id].textMesh.text       = text;
        buttonText[id].rect.sizeDelta      = new Vector2(buttonText[id].rect.sizeDelta.x, buttonText[id].text.preferredHeight + offset);
        buttonText[id].button.interactable = isActive;
        height = buttonText[id].rect.sizeDelta.y;
        buttonText[id].rect.anchoredPosition = new Vector2(0, -height / 2 - curY);

        if (exit)
        {
            SetExitDialogue(buttonText[id].button);
            if (questStatus != 0)
            {
                SetQuestStatus(buttonText[id].button, questStatus, questName);
            }
        }
        else
        {
            SetNextNode(buttonText[id].button, toNode);
            if (questStatus != 0)
            {
                SetQuestStatus(buttonText[id].button, questStatus, questName);
            }
        }

        if (isActive)
        {
            SetAnswerStatus(buttonText[id].button, answerStatus);
        }

        id++;

        curY += height + offset;
        RectContent();
    }
예제 #24
0
    private void SetAnswerStatus(Button button, AnswerStatus value)     // событие, для управлением статуса, текущего квеста
    {
        button.onClick.AddListener(() => AnswerStatus(value));

        button.gameObject.GetComponent <ButtonComponent>().status = value;
    }
예제 #25
0
 private void AnswerStatus(AnswerStatus value)
 {
     OnReceivedAnswer?.Invoke(value);
 }
예제 #26
0
 private void Change(AnswerStatus value)
 {
     reaction = value;
 }