private IQueryable <UserTest> GetUserTests(int testId, List <int> userIds) { return(UserTestService.GetAll(x => x.IsBest && x.TestModuleSetId.HasValue && userIds.Contains(x.UserId) && x.TestId == testId)); }
public PublicProfileVM GetPublic(int userID) { var user = UserService.GetByPK(userID); if (user == null) { return(null); } var currentUser = AuthService.CurrentUser; var tests = new List <Test>(); if (!user.HideCourses) { tests = UserTestService.GetAll(x => x.UserId == userID && UserTestStatus.PassStatuses.Contains(x.Status)).OrderByDescending(x => x.RunDate) .Select(x => x.Test).Distinct().ToList(); } var model = new PublicProfileVM() { User = user, IsExcelMaster = IsExcelMaster(user), IsOwner = currentUser != null && currentUser.UserID == userID, Socials = GetSocials(user.UserContacts) .Where(x => !x.Contact.IsEmpty()).ToList(), SuccessStory = SuccessStoryService.GetAll() .FirstOrDefault(ss => ss.UserID == user.UserID), Tests = tests, Competitions = CompetitionService.GetAll() .Where(c => c.WinnerID == user.UserID).ToList(), IsBest = IsBest(user), }; return(model); }
public void Invoke_SaveChanges_DataSaver() { // Arrange var fakeTestId = new Guid(); string fakeUserId = "userId"; bool fakeIsPassed = true; var fakeUserTest = new UserTest() { UserId = fakeUserId, TestId = fakeTestId }; var fakeUserTests = new List <UserTest>() { fakeUserTest }.AsQueryable(); var testRepoStub = new Mock <IDataRepository <Test> >(); var mockDataSaver = new Mock <IDataSaver>(); var mappingProviderStub = new Mock <IMappingProvider>(); var categoryRepoStub = new Mock <IDataRepository <Category> >(); var userTestRepoStub = new Mock <IDataRepository <UserTest> >(); var timeProviderStub = new Mock <TimeProvider>(); var userTestService = new UserTestService(testRepoStub.Object, mockDataSaver.Object, mappingProviderStub.Object, userTestRepoStub.Object, timeProviderStub.Object); userTestRepoStub.SetupGet(utr => utr.All).Returns(fakeUserTests); // Act userTestService.SubmitUserTest(fakeTestId.ToString(), fakeUserId, fakeIsPassed); // Assert mockDataSaver.Verify(ds => ds.SaveChanges(), Times.Once); }
public void Return_False_WhenAttendedTest_IsNotSubmitted() { // Arrange var fakeTestId = new Guid(); string fakeUserId = "userId"; var fakeUserTest = new UserTest() { UserId = fakeUserId, TestId = fakeTestId, IsSubmited = false }; var fakeUserTests = new List <UserTest>() { fakeUserTest }.AsQueryable(); var testRepoStub = new Mock <IDataRepository <Test> >(); var dataSaverStub = new Mock <IDataSaver>(); var mappingProviderStub = new Mock <IMappingProvider>(); var categoryRepoStub = new Mock <IDataRepository <Category> >(); var userTestRepoStub = new Mock <IDataRepository <UserTest> >(); var timeProviderStub = new Mock <TimeProvider>(); var userTestService = new UserTestService(testRepoStub.Object, dataSaverStub.Object, mappingProviderStub.Object, userTestRepoStub.Object, timeProviderStub.Object); userTestRepoStub.SetupGet(utr => utr.All).Returns(fakeUserTests); // Act var result = userTestService.UserHasCompletedTest(fakeUserId, fakeTestId.ToString()); // Assert Assert.IsFalse(result); }
public ActionResult DownloadTestCertificate(decimal orderDetailId, bool second) { var orderDetail = OrderDetailsService.FirstOrDefault(x => x.OrderDetailID == orderDetailId && BerthTypes.AllPaidForTestCerts.Contains(x.StudentInGroup.BerthType_TC)); var userTestId = orderDetail.UserTestId.Value; UserTestService.LoadWith(x => x.Test, x => x.TestPassRule); var userTest = UserTestService.GetByPK(userTestId); TestCertificatePermission(orderDetail, userTest); var certificateFileSys = UserImages.GetTestCertFileSys(userTestId); try { System.IO.File.Delete(certificateFileSys); } catch (Exception e) { return(Content("Сертификат уже скачивается")); } var isEng = orderDetail.Params.Lang == TestCertLang.Eng; if (orderDetail.Params.Lang == TestCertLang.RusEng && second) { isEng = true; } using (var image = Image.FromFile(UserImages.GetTestCertFileSys(isEng ? 0 : 1))) { using (var result = ImageUtils.DrawTestString(image, isEng ? User.EngFullName : User.FullName, EntityUtils.GetTestCertName(isEng, userTest), userTest.RunDate.DefaultString(), userTest.Id)) result.Save(certificateFileSys); } return(File(certificateFileSys, "image/png", "certificate.png")); }
public void Throw_ArgumentNullException_When_UserTestIsNotFound() { // Arrange var fakeTestId = new Guid(); string fakeUserId = "userId"; double fakeTestDuration = 30d; var fakeUserTests = new List <UserTest>() { }.AsQueryable(); var testRepoStub = new Mock <IDataRepository <Test> >(); var dataSaverStub = new Mock <IDataSaver>(); var mappingProviderStub = new Mock <IMappingProvider>(); var categoryRepoStub = new Mock <IDataRepository <Category> >(); var userTestRepoStub = new Mock <IDataRepository <UserTest> >(); var timeProviderStub = new Mock <TimeProvider>(); var userTestService = new UserTestService(testRepoStub.Object, dataSaverStub.Object, mappingProviderStub.Object, userTestRepoStub.Object, timeProviderStub.Object); userTestRepoStub.SetupGet(utr => utr.All).Returns(fakeUserTests); Action executingGetTimeRemainingForUserTest = () => userTestService.GetTimeRemainingForUserTest(fakeUserId, fakeTestId.ToString(), fakeTestDuration); // Act & Assert Assert.ThrowsException <ArgumentNullException>(executingGetTimeRemainingForUserTest); }
private void UserTestPermission(int userTestId) { var userId = UserTestService.GetValues(userTestId, x => x.UserId); if (userId != AuthService.CurrentUser.UserID) { throw new PermissionException(); } }
public ActionResult TestResults() { UserTestService.LoadWith(x => x.User, x => x.Test); var testIds = _.List(707, 706, 708, 705); var userTests = UserTestService.GetAll(x => testIds.Contains(x.TestId)).ToList(); var data = UserTestResultService.GetResultData(_.List(userTests)); return(File(Encoding.GetEncoding(1251).GetBytes(CsvUtil.Render(data)), "text/csv", "TestResults.csv")); }
public GroupUserTests Create(GroupTest groupTest, List <int> userIds, UserTestService userTestService) { var userTests = userTestService.GetUserTests(groupTest).Where(x => userIds.Contains(x.UserId)).ToList(); var best = userTests.GroupBy(x => x.UserId).Select(x => x.OrderByDescending(y => y.Status).FirstOrDefault()) .ToList(); return(new GroupUserTests { GroupTest = groupTest, UserTests = best }); }
public bool IsPreTestPass(OrderDetail od) { var result = UserTestService.GetAll(x => x.UserId == od.Order.UserID && x.Course_TC == od.Course_TC).Select(x => x.Status) .OrderByDescending(x => x).FirstOrDefault(); if (result == 0) { return(false); } return(result > 1); }
public void CreateUserTest_WithCorrectData_UserTestMustBeCreated() { var uow = new Mock <IUnitOfWork>(); UserTestService uts = new UserTestService(uow.Object); uow.Setup(x => x.UserTests.Create(new UserTest())); uow.Setup(x => x.Tests.Get(It.IsAny <string>())).Returns(new Test()); uts.CreateUserTest(new UserTestDTO()); uow.Verify(x => x.Save()); }
public void CreateUserTest_WithNullData_ValidationExceptionMustBeThrown() { var uow = new Mock <IUnitOfWork>(); UserTestService uts = new UserTestService(uow.Object); uow.Setup(x => x.UserTests.Create(new UserTest())); Assert.Throws <ValidationException>(() => { uts.CreateUserTest(null); }); }
public void UpdateUserTest_WithInCorrectData_NotFoundExceptionMustBeThrown() { var uow = new Mock <IUnitOfWork>(); UserTestService uts = new UserTestService(uow.Object); uow.Setup(x => x.UserTests.Get(It.IsAny <string>())).Returns((UserTest)null); uow.Setup(x => x.UserTests.Update(new UserTest())); Assert.Throws <NotFoundException>(() => { uts.UpdateUserTest(new UserTestDTO()); }); }
public ActionResult Result(int groupInfoId) { List <int> userIds; var groupInfo = GetGroupInfo(groupInfoId, out userIds); UserTestService.LoadWith(x => x.User); var groupUserTestsList = groupInfo.GroupTests.Select(x => Create(x, userIds, UserTestService)).ToList(); return(BaseViewWithModel(new GroupTestResultView(), new GroupTestResultVM { GroupInfo = groupInfo, GroupUserTestsList = groupUserTestsList })); }
public ActionResult UserTestCert(int id, string name) { var userTest = UserTestService.GetByPK(id); var isEng = true; var certName = EntityUtils.GetTestCertName(isEng, userTest); var user = userTest.User; var userName = name ?? (isEng ? user.EngFullName ?? Linguistics.Translite(user.LastName + " " + user.FirstName, true) : user.FullName); return(View((string)"TestCert", (object)Tuple.New(userName, certName, userTest))); }
public UserSteps( ScenarioContext scenarioContext, UserTestService userTestService, TestDataUtil testDataUtil, NaheulbookHttpClient naheulbookHttpClient, NaheulbookApiServer naheulbookApiServer ) { _scenarioContext = scenarioContext; _userTestService = userTestService; _testDataUtil = testDataUtil; _naheulbookApiServer = naheulbookApiServer; }
public ActionResult DownloadResult(int groupInfoId) { List <int> userIds; var groupInfo = GetGroupInfo(groupInfoId, out userIds); UserTestService.LoadWith(x => x.User, x => x.Test); var userTests = groupInfo.GroupTests.Select(gt => UserTestService.GetUserTests(gt) .Where(x => userIds.Contains(x.UserId)).ToList()).ToList(); var data = UserTestResultService.GetResultData(userTests); return(File(Encoding.GetEncoding(1251).GetBytes(CsvUtil.Render(data)), "text/csv", "GroupResults-{0}.csv".FormatWith(groupInfo.Group_ID))); }
public void GetUserTestsByUserId_WithInCorrectData_NotFoundExceptionMustBeThrown() { var uow = new Mock <IUnitOfWork>(); UserTestService uts = new UserTestService(uow.Object); uow.Setup(x => x.Users.Get(It.IsAny <string>())).Returns((User)null); uow.Setup(x => x.UserTests.GetAll()).Returns(new List <UserTest>()); uow.Setup(x => x.Tests.GetAll()).Returns(new List <Test>()); Assert.Throws <NotFoundException>(() => { var actual = uts.GetUserTestsByUserId(It.IsAny <string>()); }); }
public void GetUserTestsByUserId_WithCorrectData_UserTestsMustBeReceived() { var uow = new Mock <IUnitOfWork>(); UserTestService uts = new UserTestService(uow.Object); uow.Setup(x => x.Users.Get(It.IsAny <string>())).Returns(new User()); uow.Setup(x => x.UserTests.GetAll()).Returns(new List <UserTest>()); uow.Setup(x => x.Tests.GetAll()).Returns(new List <Test>()); var expected = JsonConvert.SerializeObject(new List <UserTest>()); var actual = JsonConvert.SerializeObject(uts.GetUserTestsByUserId(It.IsAny <string>())); Assert.Equal(expected, actual); }
private UserTest GetUserTest(UserTestService userTestService, int userTestId) { var userTest = GetCurrentTests().FirstOrDefault(x => x.Id == userTestId); if (userTest == null) { userTest = userTestService.GetByPK(userTestId); // if (userTest.UserId != GetUserId(userTest.IsPrerequisite)) // throw new Exception("userTest.UserId != User.UserID"); GetCurrentTests().Add(userTest); // Logger.Exception(new Exception("Session without userTest"), User); } return(userTest); }
public void GetUserTestsForPagination_WithCorrectData_TestMustBeReceived() { var uow = new Mock <IUnitOfWork>(); UserTestService uts = new UserTestService(uow.Object); uow.Setup(x => x.UserTests.GetForPagination(new Pagination())).Returns(new List <UserTest>()); uow.Setup(x => x.Users.GetAll()).Returns(new List <User>()); uow.Setup(x => x.Tests.GetAll()).Returns(new List <Test>()); var expected = JsonConvert.SerializeObject(new List <Test>()); var actual = JsonConvert.SerializeObject(uts.GetUserTestsForPagination(new Pagination())); Assert.Equal(expected, actual); }
public ActionResult CertificateValidation(CertificateValidationVM model) { var fullName = string.Empty; var number = string.Empty; var desc = string.Empty; var date = string.Empty; var userTestId = StringUtils.ParseInt(model.Number); var fio = model.FullName; var exists = false; if (userTestId.HasValue) { var userTest = UserTestService.FirstOrDefault(x => x.Id == userTestId); if (userTest != null && userTest.IsPass && (string.Equals(userTest.User.FullName, fio, StringComparison.InvariantCultureIgnoreCase) || string.Equals(userTest.User.EngFullName, fio, StringComparison.InvariantCultureIgnoreCase))) { exists = true; fullName = userTest.User.FullName; number = userTest.Id.ToString(); desc = "Тест: " + userTest.Test.Name; date = "Дата: " + userTest.RunDate.DefaultString(); } } else { var certificate = CertificateService.FirstOrDefault(x => x.FullNumber == model.Number); if (certificate != null && (string.Equals(certificate.StudentInGroup.Student.FullName, fio, StringComparison.InvariantCultureIgnoreCase) )) { exists = true; fullName = certificate.StudentInGroup.Student.FullName; number = certificate.FullNumber; desc = "Курс: " + certificate.CourseFullName; date = "Обучение: " + certificate.DateBeg.DefaultString() + " - " + certificate.DateEnd.DefaultString(); } } if (!exists) { return(Content("Сертификата с данными параметрами не существует.")); } var message = _.List(("Сертификат № " + number).Tag("strong"), "ФИО: " + fullName, desc, date); return(Content(message.JoinWith("<br/>"))); }
public void StartUp() { mapperMock = new Mock <IMappingProvider>(); saverMock = new Mock <ISaver>(); userTestRepositoryMock = new Mock <IRepository <UserTest> >(); testServiceMock = new Mock <ITestService>(); userServiceMock = new Mock <IUserService>(); answerServiceMock = new Mock <IAnswerService>(); userAnswersServiceMock = new Mock <IUserAnswersService>(); userTestService = new UserTestService(userTestRepositoryMock.Object, testServiceMock.Object, userServiceMock.Object, saverMock.Object, userAnswersServiceMock.Object, mapperMock.Object, answerServiceMock.Object); }
public void GetUserTestById_WithCorrectData_UserTestMustBeReceived() { var uow = new Mock <IUnitOfWork>(); UserTestService uts = new UserTestService(uow.Object); uow.Setup(x => x.UserTests.Get(It.IsAny <string>())).Returns(new UserTest()); uow.Setup(x => x.Users.Get(It.IsAny <string>())).Returns(new User()); uow.Setup(x => x.Tests.Get(It.IsAny <string>())).Returns(new Test()); var expected = new UserTest().UserTestId; var userTest = uts.GetUserTestById(It.IsAny <string>()); var actual = userTest.GetType().GetProperty("UserTestId").GetValue(userTest, null); Assert.Equal(expected, actual); }
public void Assign_CorrectData_ToUserTest() { // Arrange var fakeTestId = new Guid(); string fakeUserId = "userId"; var fakeStartedDate = new DateTime(2017, 5, 10, 12, 0, 0); var fakeDateTimeNow = new DateTime(2017, 5, 10, 12, 10, 0); var executionTimeSpan = fakeStartedDate - fakeDateTimeNow; var expectedExecutionTime = Math.Abs(executionTimeSpan.TotalMinutes); bool expectedIsPassed = true; var fakeUserTest = new UserTest() { UserId = fakeUserId, TestId = fakeTestId, StartedOn = fakeStartedDate }; var fakeUserTests = new List <UserTest>() { fakeUserTest }.AsQueryable(); var testRepoStub = new Mock <IDataRepository <Test> >(); var dataSaverStub = new Mock <IDataSaver>(); var mappingProviderStub = new Mock <IMappingProvider>(); var categoryRepoStub = new Mock <IDataRepository <Category> >(); var userTestRepoStub = new Mock <IDataRepository <UserTest> >(); var timeProviderStub = new Mock <TimeProvider>(); var userTestService = new UserTestService(testRepoStub.Object, dataSaverStub.Object, mappingProviderStub.Object, userTestRepoStub.Object, timeProviderStub.Object); userTestRepoStub.SetupGet(utr => utr.All).Returns(fakeUserTests); timeProviderStub.SetupGet(tp => tp.Now).Returns(fakeDateTimeNow); // Act userTestService.SubmitUserTest(fakeTestId.ToString(), fakeUserId, expectedIsPassed); // Assert var actualIsPassed = fakeUserTest.IsPassed; var actualIsSubmited = fakeUserTest.IsSubmited; var actualExecutionTime = fakeUserTest.ExecutionTime; Assert.AreEqual(expectedIsPassed, actualIsPassed); Assert.IsTrue(actualIsSubmited.Value); Assert.AreEqual(expectedExecutionTime, actualExecutionTime); }
public void Throw_ArgumentNullException_WhenUserId_IsNullOrEmpty() { // Arrange string fakeUserId = ""; var testRepoStub = new Mock <IDataRepository <Test> >(); var dataSaverStub = new Mock <IDataSaver>(); var mappingProviderStub = new Mock <IMappingProvider>(); var categoryRepoStub = new Mock <IDataRepository <Category> >(); var userTestRepoStub = new Mock <IDataRepository <UserTest> >(); var timeProviderStub = new Mock <TimeProvider>(); var userTestService = new UserTestService(testRepoStub.Object, dataSaverStub.Object, mappingProviderStub.Object, userTestRepoStub.Object, timeProviderStub.Object); Action executingAddUserToTestMethod = () => userTestService.CheckForOverdueTestInProgress(fakeUserId); // Act & Assert Assert.ThrowsException <ArgumentNullException>(executingAddUserToTestMethod); }
public ActionResult TestCertGroup(TestCertGroupVM model) { var studentIds = StudentInGroupService.GetAll(x => x.Group_ID == model.GroupId) .Select(x => x.Student_ID).ToList(); model.UserTests = new List <UserTest>(); if (model.GroupId > 0) { var userIds = UserService.GetAll(x => x.Student_ID.HasValue && studentIds.Contains(x.Student_ID.Value)).Select(x => x.UserID).ToList(); var userTests = UserTestService.GetAll(x => x.TestId == model.TestId && userIds.Contains(x.UserId) && UserTestStatus.PassStatuses.Contains(x.Status)).ToList(); model.UserTests = userTests; } model.Tests = TestService.GetAll(x => x.Status == TestStatus.Active).ToList() .OrderBy(x => x.Name).ToList(); return(View(model)); }
private List <User> GetUsers(List <int> testIds) { var now = DateTime.Today; var start = new DateTime(now.Year, now.Month, 1).AddMonths(-1); var end = new DateTime(start.Year, start.Month, DateTime.DaysInMonth(start.Year, start.Month)); var userTests = UserTestService.GetAll(x => x.RunDate >= start && x.RunDate <= end && UserTestStatus.PassStatuses.Contains(x.Status)); if (testIds.Any()) { userTests = userTests.Where(x => testIds.Contains(x.TestId)); } var bestUserIds = userTests.Where(x => x.User.LastName.ToLower() != "qwe") .Select(x => new { x.UserId, x.TestId }).Distinct().GroupBy(x => x.UserId) .OrderByDescending(x => x.Count()).Select(x => x.Key).Take(10).ToList(); return(UserService.GetAll(x => bestUserIds.Contains(x.UserID)).ToList()); }
public void Return_False_When_NoTestsInProggress_AreFound() { // Arrange string fakeUserId = "userId"; var testRepoStub = new Mock <IDataRepository <Test> >(); var dataSaverStub = new Mock <IDataSaver>(); var mappingProviderStub = new Mock <IMappingProvider>(); var categoryRepoStub = new Mock <IDataRepository <Category> >(); var userTestRepoStub = new Mock <IDataRepository <UserTest> >(); var timeProviderStub = new Mock <TimeProvider>(); var userTestService = new UserTestService(testRepoStub.Object, dataSaverStub.Object, mappingProviderStub.Object, userTestRepoStub.Object, timeProviderStub.Object); // Act var result = userTestService.CheckForOverdueTestInProgress(fakeUserId); // Assert Assert.IsFalse(result); }
public void Return_CorrectTimeRemaining() { // Arrange var fakeTestId = new Guid(); string fakeUserId = "userId"; double fakeTestDuration = 30d; var fakeStartDateTime = new DateTime(2017, 5, 10, 12, 0, 0); var fakeDateTimeNow = new DateTime(2017, 5, 10, 12, 10, 0); var fakeUserTest = new UserTest() { UserId = fakeUserId, TestId = fakeTestId, StartedOn = fakeStartDateTime }; var fakeUserTests = new List <UserTest>() { fakeUserTest }.AsQueryable(); var testRepoStub = new Mock <IDataRepository <Test> >(); var dataSaverStub = new Mock <IDataSaver>(); var mappingProviderStub = new Mock <IMappingProvider>(); var categoryRepoStub = new Mock <IDataRepository <Category> >(); var userTestRepoStub = new Mock <IDataRepository <UserTest> >(); var timeProviderStub = new Mock <TimeProvider>(); var userTestService = new UserTestService(testRepoStub.Object, dataSaverStub.Object, mappingProviderStub.Object, userTestRepoStub.Object, timeProviderStub.Object); userTestRepoStub.SetupGet(utr => utr.All).Returns(fakeUserTests); timeProviderStub.SetupGet(tp => tp.Now).Returns(fakeDateTimeNow); var endTime = fakeUserTest.StartedOn.AddMinutes(fakeTestDuration); var expectedRemainingTime = Math.Round((endTime - fakeDateTimeNow).TotalSeconds); // Act var actualRemainingTime = userTestService.GetTimeRemainingForUserTest(fakeUserId, fakeTestId.ToString(), fakeTestDuration); // Assert Assert.AreEqual(expectedRemainingTime, actualRemainingTime); }