public void ClearStatisticsTest() { var ts = new TestStatistic { Id = 1, NumberOfCorrect = 2, PercentOfCorrect = 50, Test = new Test(), TimeInMinutes = 1 }; var ent = new List <TestStatistic> { ts }; var mockObj = TestsMethodsTests.Create(ent); var mockContext = new Mock <Test2DBContainer>(); mockContext.Setup(m => m.TestStatistics).Returns(mockObj.Object); var service = new Service(mockContext.Object); service.ClearStatistics(); var list = service.GetStatistics(); //mockObj.Verify(x => x.RemoveRange(ent), Times.Once); mockContext.Verify(m => m.SaveChanges(), Times.Once); }
public SelectedTestViewModel(Test test) { _test = test; SelectedTest.Name = _test.Name; SelectedTest.Theme = _test.Theme; QuestionsCount = _test.Questions.Count; testStatistic = statisticLogic.GetTestStatistic(_test.Name); SelectedTestStatistic.AttempsCount = testStatistic.AttempsCount; SelectedTestStatistic.SuccessCount = testStatistic.SuccessCount; /// TODO if (testStatistic.AttempsCount > 0) { SelectedTestStatistic.SuccessRate = Math.Round((double)testStatistic.SuccessCount * 100 / testStatistic.AttempsCount, 2); SelectedTestStatistic.RightAnswersRate = Math.Round(testStatistic.RightAnswersProcent.AsQueryable().Sum() / testStatistic.AttempsCount, 2); } else { SelectedTestStatistic.SuccessRate = 0; SelectedTestStatistic.RightAnswersRate = 0; } Execution = new CommandParameter(); Execution.Test = test; }
/// TODO Check if not Statistic public List <TestStatistic> GetAllStatistic() { List <TestStatistic> statistics = new List <TestStatistic>(); string path = $"{Constants.StatisticPath}"; DirectoryInfo dirInfo = new DirectoryInfo(path); if (!dirInfo.Exists) { dirInfo.Create(); } BinaryFormatter formatter = new BinaryFormatter(); foreach (string file in Directory.EnumerateFiles(path, "*.dat")) { using (FileStream fileStream = File.Open(file, FileMode.OpenOrCreate)) { TestStatistic testStatistic = (TestStatistic)formatter.Deserialize(fileStream); statistics.Add(testStatistic); } } return(statistics); }
public void SaveTestStatistic(TestStatistic testStatistic) { BinaryFormatter formatter = new BinaryFormatter(); using (FileStream fileStream = File.Open($"{Constants.StatisticPath}\\{testStatistic.Name}.dat", FileMode.OpenOrCreate)) { formatter.Serialize(fileStream, testStatistic); } }
public TestStatistic OpenTestStatistic(string testName) { BinaryFormatter formatter = new BinaryFormatter(); using (FileStream fileStream = File.Open($"{Constants.StatisticPath}\\{testName}.dat", FileMode.OpenOrCreate)) { TestStatistic testStatistic = (TestStatistic)formatter.Deserialize(fileStream); return(testStatistic); } }
public void SaveStatistics(UIStatistics statistics) { var t = DbContext.Tests.FirstOrDefault(x => x.Name == statistics.TestName); var ts = new TestStatistic { NumberOfCorrect = statistics.NumberOfCorrect, PercentOfCorrect = statistics.PercentOfCorrect, TimeInMinutes = statistics.TimeInMinutes }; t.TestStatistics.Add(ts); DbContext.SaveChanges(); }
public void GetStatisticsTest() { var ts = new TestStatistic { Id = 1, NumberOfCorrect = 2, PercentOfCorrect = 50, Test = new Test(), TimeInMinutes = 1 }; var mockObj = TestsMethodsTests.Create(new List <TestStatistic> { ts }); var mockContext = new Mock <Test2DBContainer>(); mockContext.Setup(m => m.TestStatistics).Returns(mockObj.Object); var service = new Service(mockContext.Object); var list = service.GetStatistics(); Assert.IsTrue(list.Count == 1); Assert.AreEqual(2, list[0].NumberOfCorrect); }
/// TODO Procents and mb something else public void UpdateTestStatistic(string testName, TestResult testResult, int questionsAmount) { if (statisticFiles.CheckIfFileExists(testName, Constants.StatisticPath, "dat")) { TestStatistic testStatistic = statisticFiles.OpenTestStatistic(testName); testStatistic.AttempsCount++; testStatistic.RightAnswersProcent.Add(System.Math.Round((double)(Constants.Percent * testResult.AmountOfRight / questionsAmount), 2)); testStatistic.RightAnswersCount.Add(testResult.AmountOfRight); if (testResult.Passed) { testStatistic.SuccessCount++; } statisticFiles.SaveTestStatistic(testStatistic); } else { TestStatistic testStatistic = new TestStatistic() { Name = testName, AttempsCount = 1, RightAnswersCount = new List <int>() { testResult.AmountOfRight }, RightAnswersProcent = new List <double> { System.Math.Round((double)(Constants.Percent * testResult.AmountOfRight / questionsAmount), 2) } }; if (testResult.Passed) { testStatistic.SuccessCount++; } statisticFiles.CreateTestStatistic(testStatistic); } }
/// TODO Right answers, success count etc public TestStatistic GetTestStatistic(string testName) { if (statisticFiles.CheckIfFileExists(testName, Constants.StatisticPath, "dat")) { TestStatistic testStatistic = statisticFiles.OpenTestStatistic(testName); return(testStatistic); } else { TestStatistic testStatistic = new TestStatistic() { Name = testName, AttempsCount = 0, RightAnswersCount = new List <int>(), SuccessCount = 0, RightAnswersProcent = new List <double>() }; statisticFiles.CreateTestStatistic(testStatistic); return(testStatistic); } }