Exemple #1
0
        private void SaveExeruciseSerie()
        {
            DateTime testCheckDate = DateTime.Now;
            double   time          = (testEndDate - testStartDate).TotalSeconds;
            double   timeCheck     = (testCheckDate - testEndDate).TotalSeconds;

            ExerciseAttemptAssociationsСonsecutive attempt = new ExerciseAttemptAssociationsСonsecutive(testStartDate, testEndDate, testCheckDate, time, timeCheck);

            attempt.WithRepeats = this.WithRepeats;
            attempt.WithNumber  = this.WithNumber;
            if (attempt.WithNumber)
            {
                attempt.Random = this.RandomOrder;
            }

            foreach (AssociationQuestion item in this.associationQuestions)
            {
                attempt.Questions.Add(item);
            }

            ExerciseSerie currentSerie = new ExerciseSerie(new ExerciseType(TrainType.ConsecutiveAssociations));

            currentSerie.Attempts.Add(attempt);

            LogExercise.AddNewExerciseSerie(currentSerie);
            LogExercise.SaveProgramsLogs();

            attempt.CreateTestTextFile();
        }
        private void SaveExeruciseSerie()
        {
            DateTime testCheckDate = DateTime.Now;
            double   time          = (testEndDate - testStartDate).TotalSeconds;
            double   timeCheck     = (testCheckDate - testEndDate).TotalSeconds;

            ExerciseAttemptAssociationsClosed attempt = new ExerciseAttemptAssociationsClosed(testStartDate, testEndDate, testCheckDate, time, timeCheck);

            foreach (AssociationQuestion item in this.associationQuestions)
            {
                attempt.Questions.Add(item);
            }

            if (this.TestType == TrainTypeAssociationClosed.WordDictionary)
            {
                attempt.FromDictionary = true;
            }
            else
            {
                attempt.ListName = this.SelectedClosedList.Name;
            }

            ExerciseSerie currentSerie = new ExerciseSerie(new ExerciseType(TrainType.ClosedAssociations));

            currentSerie.Attempts.Add(attempt);

            LogExercise.AddNewExerciseSerie(currentSerie);
            LogExercise.SaveProgramsLogs();

            attempt.CreateTestTextFile();
        }
        public Collection <AssociationQuestion> CreateNewQuestionList()
        {
            Collection <AssociationQuestion> associationQuestions = new Collection <AssociationQuestion>();

            Hashtable oldTestWords = new Hashtable();

            if (this.WithoutOldWords)
            {
                oldTestWords = LogExercise.GetOldTestWords(this.oldWordsCount);
            }

            Collection <string> questions = new Collection <string>();

            for (int i = 0; i < this.questionsCount; i++)
            {
                string nextWord;

                do
                {
                    int nextWordIndex = rnd.Next(programDictionary.Count);

                    nextWord = (string)programDictionary[nextWordIndex];
                } while (oldTestWords.ContainsKey(nextWord) || (questions.Contains(nextWord) && !this.WithRepeats));

                questions.Add(nextWord);

                AssociationQuestion temp = new AssociationQuestion();
                temp.QuestionSerie.Add(new AssociationQuestionPart(nextWord));
                temp.Number = i + 1;

                associationQuestions.Add(temp);
            }

            if (this.WithNumber && this.RandomOrder)
            {
                Collection <int> allPositions = new Collection <int>();

                for (int i = 0; i < associationQuestions.Count; i++)
                {
                    allPositions.Add(i);
                }

                for (int i = 0; i < associationQuestions.Count; i++)
                {
                    int ind = allPositions[rnd.Next(allPositions.Count)];
                    allPositions.Remove(ind);

                    associationQuestions[ind].ShowPosition = i + 1;
                }
            }
            else
            {
                foreach (AssociationQuestion item in associationQuestions)
                {
                    item.ShowPosition = item.Number;
                }
            }

            return(associationQuestions);
        }
Exemple #4
0
        public void SaveExeruciseSerie()
        {
            if (status != MachineStatus.NotStarted)
            {
                this.Stop();
            }

            if (currentSerie.Attempts.Count > 0)
            {
                LogExercise.AddNewExerciseSerie(currentSerie);
                LogExercise.SaveProgramsLogs();

                currentSerie = new ExerciseSerie(new ExerciseTypeInterruptionReading());
            }
        }
        private void CreateTextReport(DateTime date)
        {
            StringBuilder sb = new StringBuilder();

            DirectoryInfo mainTempDir = new DirectoryInfo(Config.LogFolder);

            if (mainTempDir.Exists)
            {
                FileInfo[] xmlFiles;

                // Получение файлов для Меркурия.
                xmlFiles = mainTempDir.GetFiles(string.Format(LogExercise.searchPattern, date.ToString("yyyy-MM-dd") + "*"), SearchOption.TopDirectoryOnly);
                foreach (FileInfo file in xmlFiles)
                {
                    Collection <ExerciseSerie> col = LogExercise.CreateSeriesFromFile(file.FullName);

                    foreach (ExerciseSerie item in col)
                    {
                        sb.AppendLine(item.GetDescription(true));

                        sb.AppendLine();
                        sb.AppendLine();
                    }

                    sb.AppendLine();
                    sb.AppendLine();
                }
            }

            if (sb.ToString() != string.Empty)
            {
                string pathFile = Path.Combine(Config.ReportFolder, string.Format("Тренировки за {0}.txt", date.ToString("yyyy-MM-dd")));
                if (!Directory.Exists(Config.ReportFolder))
                {
                    Directory.CreateDirectory(Config.ReportFolder);
                }

                using (StreamWriter sw = File.CreateText(pathFile))
                {
                    sw.Write(sb.ToString());
                }
            }
        }
Exemple #6
0
        private void UpdateLabelsText()
        {
            //foreach (Control item in this.Controls)
            //{
            //    if (item is Label)
            //    {
            //        ((Label)item).Text = string.Empty;
            //    }
            //}

            Collection <ExerciseSerie> series = LogExercise.CreateSeriesForDate(DateTime.Now);

            Array trains = Enum.GetValues(typeof(TrainType));

            foreach (TrainType tr in trains)
            {
                if (tr != TrainType.None)
                {
                    Control[] controls = this.Controls.Find("lbl" + tr.ToString(), true);
                    if (controls.Length == 1 && controls[0] is Label)
                    {
                        Label lab = (Label)controls[0];

                        int    totalCount  = 0;
                        int    totalErrors = 0;
                        double totalTime   = 0;

                        foreach (ExerciseSerie ser in series)
                        {
                            if (ser.Type.Type == tr)
                            {
                                totalCount  += ser.GetAttemptsCount;
                                totalErrors += ser.GetErrorsCount;
                                totalTime   += ser.GetTimeTotal;
                            }
                        }

                        DateTime d = new DateTime();

                        if (totalTime != 0 && totalCount != 0)
                        {
                            d = d.AddSeconds(totalTime);

                            lab.Text = string.Format("{0} {1}({2})", d.ToLongTimeString(), totalCount.ToString(), totalErrors.ToString());
                        }
                        else
                        {
                            lab.Text = d.ToLongTimeString();
                        }

                        TimeSpan t = TimeSpan.FromSeconds(totalTime);
                        if (t.TotalMinutes < 15)
                        {
                            lab.ForeColor = Color.Black;
                        }
                        else
                        {
                            lab.ForeColor = Color.Green;
                        }
                    }
                }
            }
        }