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); }
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()); } } }
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; } } } } }