public async Task TestSaveThisAttempt() { await using var context = GetAttemptContext("TestSaveThisAttempt"); var repository = new AttemptRepository(context); var taxFileNumber = "12345678"; var clientIpAddress = "192.168.1.1"; var insertTime = DateTime.Now; await repository.SaveThisAttempt(taxFileNumber, clientIpAddress); var attempts = await context.Attempts.ToListAsync(); Assert.AreEqual(1, attempts.Count); Assert.AreEqual(taxFileNumber, attempts[0].TaxFileNumber); Assert.AreEqual(clientIpAddress, attempts[0].ClientIpAddress); Assert.That(attempts[0].AttemptTime, Is.EqualTo(insertTime).Within(1).Minutes); }
private static TestDataViewModel GetTest(DataSource source) { if (TestViewModels.ContainsKey("average")) { return(TestViewModels["average"]); } TestViewModels.Add("average", new TestDataViewModel("average")); if (Tests.Count != AttemptRepository.GetTestCount(source)) { Tests.Clear(); foreach (var test in AttemptRepository.GetTests(source)) { Tests.Add(test.ID, test); } } var tests = Tests.Values.ToList(); var averageHitPercentagePerGesture = GetAverageHitPercentagePerTurn(tests); var averageTimePerTargetPerGesture = GetAverageTimePerTarget(tests); foreach (var gesture in AllGestures) { GestureInfo info = new GestureInfo(); info.HitData = GetJSPercentageArray(averageHitPercentagePerGesture[gesture], gesture); info.TimeData = GetJSTimeArray(averageTimePerTargetPerGesture[gesture], gesture); info.HitPercentage = averageHitPercentagePerGesture[gesture].Last() * 100f; List <Attempt> attempts = new List <Attempt>(); foreach (var test in tests) { attempts.AddRange(test.Attempts[gesture]); } TestViewModels["average"].GestureInformation[GetGestureTypeString(gesture)] = info; } return(TestViewModels["average"]); }
public async Task TestGetAttempts() { await using var context = GetAttemptContext("TestGetAttempts"); var repository = new AttemptRepository(context); var taxFileNumber1 = "12345678"; var clientIpAddress = "192.168.1.1"; await repository.SaveThisAttempt(taxFileNumber1, clientIpAddress); var taxFileNumber2 = "123456789"; await repository.SaveThisAttempt(taxFileNumber2, clientIpAddress); var taxFileOtherIp = "12341234"; await repository.SaveThisAttempt(taxFileOtherIp, "192.168.2.2"); var attempts = repository.GetAttemptsFor(clientIpAddress); Assert.AreEqual(2, attempts.Length); Assert.AreEqual(taxFileNumber1, attempts[0]); Assert.AreEqual(taxFileNumber2, attempts[1]); }
public async Task TestClearOldAttempts() { await using var context = GetAttemptContext("TestClearOldAttempts"); var repository = new AttemptRepository(context); var taxFileNumber1 = "12345678"; var clientIpAddress = "192.168.1.1"; await repository.SaveThisAttempt(taxFileNumber1, clientIpAddress); var delayTimeMs = 500; await Task.Delay(delayTimeMs); var taxFileNumber2 = "123456789"; await repository.SaveThisAttempt(taxFileNumber2, clientIpAddress); await repository.ClearOldAttempts(delayTimeMs); var attempts = repository.GetAttemptsFor(clientIpAddress); Assert.AreEqual(1, attempts.Length); Assert.AreEqual(taxFileNumber2, attempts[0]); }
public ActionResult GetImage(string testId, GestureType type, DataSource source = DataSource.Old) { List <Attempt> attempts = new List <Attempt>(); if (testId != "average") { attempts = AttemptRepository.GetTest(testId, source).Attempts[type]; } else { var tests = AttemptRepository.GetTests(source); foreach (var test in tests) { attempts.AddRange(test.Attempts[type]); } } MemoryStream ms; DataVisualizer.DrawHitBox(attempts, out ms); return(File(ms, "image/png")); }
public ActionResult UserInfo(string testId, DataSource source = DataSource.Old) { if (testId == null) { testId = "average"; } int totalCount = AttemptRepository.GetTestCount(source); if (testId == "average") { ViewBag.NextLink = 1; ViewBag.PrevLink = totalCount; } else { int curr = Int32.Parse(testId); if (curr + 1 > totalCount) { ViewBag.NextLink = "average"; } else { ViewBag.NextLink = (curr + 1).ToString(); } if (curr - 1 < 1) { ViewBag.PrevLink = "average"; } else { ViewBag.PrevLink = (curr - 1).ToString(); } } return(View(TestDataViewModelFactory.GetTest(testId, source))); }
public LoginService() { _user = new UserRepository(); _attempts = new AttemptRepository(); }