예제 #1
0
        public int CreateUserTest(UserTest usertest)
        {
            int result = 0;

            try
            {
                result = _usertest_object.CreateUserTest(usertest);
                if (result > 0)
                {
                    return(result);
                }
                else
                {
                    throw new OASCustomException("Operation failed.");
                }
            }
            catch (SqlException sqlex)
            {
                log.Error(sqlex);
            }
            catch (OASCustomException customex)
            {
                log.Error(customex.Message);
            }
            catch (Exception ex)
            {
                log.Error(ex.Message);
            }
            return(result);
        }
예제 #2
0
        public async Task <ActionResult> Put(string id, [FromBody] UserTest value)
        {
            try
            {
                //kiểm tra giống ID hay không
                if (id.Equals(value.Id, StringComparison.OrdinalIgnoreCase))
                {
                    //get user from DB
                    UserTest dbUser = await _serviceUserTest.GetByIDAsync(value.Code);

                    value.Code = value.Code.ToLower().Trim();
                    if (!String.IsNullOrEmpty(value.Email))
                    {
                        value.Email = value.Email.ToLower()?.Trim();
                    }
                    //CỐ TÌNH - ÉP KHÔNG CHO ĐỔI PASSWORD Ở ĐÂY
                    value.Password = dbUser.Password;
                    //cập nhật UpdatedOn
                    value.UpdatedOn = DateTime.Now;
                    value.UpdatedBy = UserClaim.UserId;
                    //gọi hàm update
                    var result = await _serviceUserTest.UpdateAsync(id, value);

                    return(Ok(result));
                }
                return(BadRequest(StaticVar.MessageNotFound));
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
예제 #3
0
        /// <summary>
        /// 读取分数
        /// </summary>
        private void getTestUser()
        {
            string  sql = "select a.userId,b.userName from tbl_Test_User a,tbl_User b where a.userId=b.ID and a.testId=" + testId.ToString();
            DataSet ds  = db.ReturnDataSet(sql);

            if (ds.Tables[0].Rows.Count > 0)
            {
                int userCount = ds.Tables[0].Rows.Count;
                if (userCount > Max_User_Count)
                {
                    userCount = Max_User_Count;
                }
                userTests = new UserTest[userCount];
                for (int i = 0; i < userCount; i++)
                {
                    userTests[i] = new UserTest(db);
                    string userName = (string)ds.Tables[0].Rows[i]["userName"];
                    userTests[i].setUserName(userName);
                    int userId = (int)ds.Tables[0].Rows[i]["userId"];
                    userTests[i].setUserId(userId);
                    userTests[i].Parent   = this;
                    userTests[i].Top      = 346 + (i / 5) * (userTests[i].Height + 2);
                    userTests[i].Left     = 44 + (i % 5) * (userTests[i].Width + 2);
                    userTests[i].OnClick += new UserTest.ClickHandler(btn_OnClick);
                }
            }
            else
            {
                MessageBox.Show("没有参赛者!");
            }
        }
예제 #4
0
        public IActionResult Login(ClubModel club)
        {
            iClubRetrieveContext context  = HttpContext.RequestServices.GetService(typeof(BarBoekASP.Data.MySQL.ClubMySQLContext)) as iClubRetrieveContext;
            iUserRetrieveContext ucontext = HttpContext.RequestServices.GetService(typeof(BarBoekASP.Data.MySQL.UserMySQLContext)) as iUserRetrieveContext;
            UserTest             user     = new UserTest();

            user.UEmail   = club.ClubNumber;
            user.Password = club.Postcode;
            bool check  = context.Inloggen(club);
            bool ucheck = ucontext.Inloggen(user);

            if (check)
            {
                return(View("Confirm"));
            }
            else
            {
                if (ucheck)
                {
                    int?test = HttpContext.Session.GetInt32("loggedIn");
                    HttpContext.Session.SetInt32("loggedIn", 1);

                    return(RedirectToAction("Index", "Dashboard"));
                }
                else
                {
                    ModelState.AddModelError("Postcode", "Password incorrect.");
                    return(View("Index"));
                }
            }
        }
        public void 途中でNGユーザに指定された時に非表示になるか()
        {
            var userId      = "abc";
            var options     = new Mock <ICommentOptions>();
            var nicoOptions = new Mock <INicoSiteOptions>();

            nicoOptions.Setup(o => o.IsShow184).Returns(true);
            nicoOptions.Setup(o => o.IsAutoSetNickname).Returns(true);
            var user = new UserTest(userId)
            {
                IsNgUser = false
            };
            var chat = new Chat()
            {
                UserId = userId,
                Text   = "",
            };
            var ms              = new Mock <IMs>();
            var roomInfo        = new Mock <RoomInfo>(ms.Object, "");
            var commentProvider = new Mock <ICommentProvider>();
            var cvm             = new NicoCommentViewModel2(options.Object, nicoOptions.Object, chat, roomInfo.Object.RoomLabel, user, commentProvider.Object, false);

            Assert.IsTrue(cvm.IsVisible);
            user.IsNgUser = true;
            Assert.IsFalse(cvm.IsVisible);
        }
예제 #6
0
 private void ThrowIfTestAlreadyEnded(UserTest userTest)
 {
     if (userTest.End < DateTime.UtcNow)
     {
         throw new InvalidOperationException("Can't add answer to test which is already ended");
     }
 }
예제 #7
0
 public TestHandler()
 {
     xAnswer    = new List <Answer>();
     xQuestions = new List <Questions>();
     xTest      = new Test();
     xUserTest  = new UserTest();
 }
예제 #8
0
        public void GetUserTestsMethod_Should_Return_Correct_TestsObject()
        {
            // Arrange
            var result = new UserTest();
            var test   = new Test();

            test.TestName = "Test1";
            var category = new Category();
            var id       = Guid.NewGuid();

            test.Category = category;
            result.UserId = id.ToString();
            result.Test   = test;
            var resultDto = new TestDto();


            var all = new List <UserTest>()
            {
                result
            };
            var results = new List <TestDto>()
            {
                resultDto
            };

            resultRepoMock.Setup(x => x.All).Verifiable();
            resultRepoMock.Setup(x => x.All).Returns(all.AsQueryable());
            mapperMock.Setup(x => x.ProjectTo <TestDto>(It.IsAny <IQueryable <Test> >())).Returns(results.AsQueryable());

            // Act
            var actual = resultService.GetUserResults(id.ToString());

            // Assert
            Assert.AreEqual(resultDto, actual.First());
        }
예제 #9
0
        public void GetUserTestsMethod_Should_Call_ResultRepo_All()
        {
            // Arrange
            var result   = new UserTest();
            var test     = new Test();
            var category = new Category();
            var id       = Guid.NewGuid();

            test.Category = category;

            result.Id   = id;
            result.Test = test;

            var all = new List <UserTest>()
            {
                result
            };

            resultRepoMock.Setup(x => x.All).Verifiable();
            resultRepoMock.Setup(x => x.All).Returns(all.AsQueryable());

            // Act
            var tests = resultService.GetUserResults("some id");

            // Assert
            resultRepoMock.Verify(x => x.All, Times.Once);
        }
        public IHttpActionResult PutUserTest(UserTest usertest)
        {
            int result = 0;

            try
            {
                if (ModelState.IsValid)
                {
                    result = _blusertest.UpdateUserTest(usertest);
                    if (result > 0)
                    {
                        return(Ok());
                    }
                    else
                    {
                        log.Error("User test failed to update");
                        return(BadRequest(ModelState));
                    }
                }
                else
                {
                    log.Error("Invalid model state encountered.");

                    return(BadRequest(ModelState));
                }
            }
            catch (Exception ex)
            {
                log.Error(ex);

                return(BadRequest(ModelState));
            }
        }
예제 #11
0
        public void AddResult_Should_Call_Saver_SaveChanges()
        {
            // Arrange
            var id     = Guid.NewGuid();
            var entity = new UserTest()
            {
                Id = id
            };
            var result = new UserTestDto()
            {
                Id = id
            };
            var all = new List <UserTest>()
            {
                entity
            };

            resultRepoMock.Setup(x => x.All).Returns(all.AsQueryable());
            resultRepoMock.Setup(x => x.Add(It.IsAny <UserTest>())).Verifiable();
            saverMock.Setup(x => x.SaveChanges()).Verifiable();

            // Act
            resultService.AddResult(result);

            // Assert
            saverMock.Verify(x => x.SaveChanges(), Times.Once);
        }
예제 #12
0
        private List <UserTest> AddUserTest()
        {
            List <UserTest> lxUserTest = new List <UserTest>();

            UserTest xUserTets = new UserTest()
            {
                UserFk = 5,
                TestFk = 5,
            };
            UserTest xUserTets1 = new UserTest()
            {
                UserFk = 5,
                TestFk = 6,
            };
            UserTest xUserTets2 = new UserTest()
            {
                UserFk = 6,
                TestFk = 6,
            };
            UserTest xUserTets3 = new UserTest()
            {
                UserFk = 6,
                TestFk = 5,
            };

            lxUserTest.Add(xUserTets);
            lxUserTest.Add(xUserTets1);
            lxUserTest.Add(xUserTets2);
            lxUserTest.Add(xUserTets3);

            return(lxUserTest);
        }
예제 #13
0
 private void UserTestResultPermission(UserTest userTest)
 {
     if (GetUserId(userTest.IsPrerequisite) != userTest.UserId)
     {
         throw new PermissionException(GetUserId(userTest.IsPrerequisite) + " != " + userTest.UserId);
     }
 }
예제 #14
0
        private void SendTestResult(string testName, UserTest userTest, int?companyId)
        {
            var courseName = DictionaryUtils.GetValueNotDefaultKey(
                CourseService.GetAllActiveCourseNames(), userTest.Course_TC);
            var userTestLink = Url.UserTestLink(userTest, courseName ?? testName).AbsoluteHref();

            if (companyId.HasValue)
            {
                var email = UserService.GetAll(x => x.CompanyID == companyId).Select(x => x.Email).First();
                MailService.Send(Services.Common.MailService.info, new MailAddress(email),
                                 userTestLink.ToString(), "Результат тестирования " + User.FullName);
            }
            if (!userTest.IsPass || !userTest.NormalTest)
            {
                return;
            }


            var courseTC = RecomendCourseTCs(userTest).ToList();

            if (courseTC.Any())
            {
                var courseLink = CourseService.GetCourseLinkList(courseTC);
                if (courseLink.Any())
                {
                    MailService.TestResult(AuthService.CurrentUser,
                                           userTestLink,
                                           courseLink.Select(cl =>
                                                             Html.CourseLinkAnchor(cl.UrlName, cl.GetName()).AbsoluteHref()).ToList(), userTest);
                }
            }
        }
        public int CreateUserTest(UserTest usertest)
        {
            int    result = 0;
            string exceptionMessage;

            try
            {
                ctx.UserTests.Add(usertest);
                result = ctx.SaveChanges();
                return(result);
            }
            catch (SqlException sqlex)
            {
                exceptionMessage = sqlex.Message;
            }
            catch (OASCustomException customex)
            {
                exceptionMessage = customex.Message;
            }
            catch (Exception ex)
            {
                exceptionMessage = ex.Message;
            }
            return(result);
        }
예제 #16
0
        public void CheckForTakenTest_Should_Return_3_When_Test_Found_And_Submitted()
        {
            // Arrange
            var userId = Guid.NewGuid().ToString();
            var user   = new User()
            {
                Id = userId
            };
            var test = new Test()
            {
                Category = new Category()
                {
                    Name = "Java"
                }
            };
            var result = new UserTest()
            {
                UserId = userId, Test = test, SubmittedOn = DateTime.Now
            };
            var all = new List <UserTest>()
            {
                result
            };

            resultRepoMock.Setup(x => x.All).Returns(all.AsQueryable());

            // Act
            var actual = resultService.CheckForTakenTest(userId, "Java");

            // Assert
            Assert.AreEqual(StatusType.TestSubmitted, actual);
        }
예제 #17
0
 private void ThrowIfUserTestAlreadyStarted(UserTest userTest)
 {
     if (userTest.Start != null)
     {
         throw new InvalidOperationException("Can't start test which is already started");
     }
 }
예제 #18
0
        public void Update_Should_Call_Repo_Update()
        {
            // Arrange
            var id     = Guid.NewGuid();
            var entity = new UserTest()
            {
                Id = id
            };
            var result = new UserTestDto()
            {
                Id = id, Score = 0.0, SubmittedOn = DateTime.Now, AnsweredQuestions = new List <AnsweredQuestionDto>()
            };
            var all = new List <UserTest>()
            {
                entity
            };
            var aq = new List <AnsweredQuestion>();

            resultRepoMock.Setup(x => x.All).Returns(all.AsQueryable());
            mapperMock.Setup(x => x.ProjectTo <AnsweredQuestion>(It.IsAny <IQueryable <AnsweredQuestionDto> >())).Returns(aq.AsQueryable());

            resultRepoMock.Setup(x => x.Update(It.IsAny <UserTest>())).Verifiable();
            saverMock.Setup(x => x.SaveChanges()).Verifiable();

            // Act
            resultService.Update(result);

            // Assert
            resultRepoMock.Verify(x => x.Update(It.IsAny <UserTest>()), Times.Once);
        }
예제 #19
0
 private void TestCertificatePermission(OrderDetail orderDetail, UserTest userTest)
 {
     if (userTest.UserId != User.UserID || orderDetail == null)
     {
         throw new PermissionException();
     }
 }
예제 #20
0
        public void コメント中にコテハンがあった場合にコテハンがちゃんと付くか()
        {
            var serverMock      = new Mock <IDataServer>();
            var loggerMock      = new Mock <ILogger>();
            var optionsMock     = new Mock <ICommentOptions>();
            var siteOptionsMock = new Mock <IMirrativSiteOptions>();

            siteOptionsMock.Setup(s => s.NeedAutoSubNickname).Returns(true);
            var userStoreMock = new Mock <IUserStoreManager>();
            var user          = new UserTest("5867403");

            userStoreMock.Setup(u => u.GetUser(SiteType.Mirrativ, "5867403")).Returns(user);

            var server      = serverMock.Object;
            var logger      = loggerMock.Object;
            var options     = optionsMock.Object;
            var siteOptions = siteOptionsMock.Object;
            var userStore   = userStoreMock.Object;
            var cp          = new MirrativCommentProvider(server, logger, options, siteOptions, userStore);

            var commentText = "test@nick";
            var comment     = MessageProvider.ParseMessage("{\"push_image_url\":\"\",\"speech\":\"abc\",\"d\":1,\"ac\":\"Ryu\",\"burl\":\"\",\"iurl\":\"https://cdn.mirrativ.com/mirrorman-prod/image/profile_image/c6d0a7dc58221445c3945e9cda3037de7fa4f089e4caf3f61d91c2bc120ac8b3_m.jpeg?1551989435\",\"cm\":\"" + commentText + "\",\"created_at\":1552156435,\"u\":\"5867403\",\"is_moderator\":0,\"lci\":\"1654341365\",\"t\":1}", (msg, type) => { });
            var method      = typeof(MirrativCommentProvider).GetMethod("CreateMessageContext",
                                                                        BindingFlags.InvokeMethod | BindingFlags.NonPublic | BindingFlags.Instance,
                                                                        Type.DefaultBinder,
                                                                        new[] { typeof(IMirrativMessage) }, null);
            var context = method.Invoke(cp, new[] { comment }) as MirrativMessageContext;

            Assert.AreEqual("nick", user.Nickname);
        }
예제 #21
0
        public static IUser FromJson(string json)
        {
            dynamic d         = Newtonsoft.Json.JsonConvert.DeserializeObject(json);
            var     userId    = d.userid.Value;
            var     nick      = d.nickname.Value;
            var     backColor = d.backcolor.Value;
            var     foreColor = d.forecolor.Value;
            var     isNg      = d.is_ng.Value.ToLower() == "true";
            var     name      = d.name;
            var     nameItems = new List <IMessagePart>();

            foreach (var nameItem in d.name)
            {
                if (nameItem.type == "text")
                {
                    var val = nameItem.value.Value;
                    nameItems.Add(MessagePartFactory.CreateMessageText(val));
                }
            }
            var user = new UserTest(userId)
            {
                Name = nameItems, Nickname = nick, BackColorArgb = backColor, ForeColorArgb = foreColor, IsNgUser = isNg
            };

            return(user);
        }
예제 #22
0
        public async Task <UserTest> GetUserTestResult(UserAnswer userAnswer)
        {
            var userId   = userAnswer.UserId;
            var question = await _db.TestQuestions
                           .Include(q => q.Test)
                           .ThenInclude(t => t.TestQuestions)
                           .SingleAsync(q => q.Id == userAnswer.TestQuestionId);

            var test          = question.Test;
            var testQuestions = test.TestQuestions.ToList();
            var userAnswers   = await _db.UserAnswers
                                .Where(ua => ua.UserId == userId && testQuestions.Select(tq => tq.Id).Contains(ua.TestQuestionId))
                                .ToListAsync();

            var correctAnswersCount = userAnswers.Count(ua => ua.IsCorrect);
            var result   = (double)correctAnswersCount / testQuestions.Count * 100;
            var userTest = new UserTest
            {
                CorrectAnswers = correctAnswersCount,
                TotalQuestions = testQuestions.Count,
                PassingTime    = DateTime.Now,
                Result         = (int)result,
                TestId         = test.Id,
                UserId         = userId
            };

            var userResult = await _db.UserTests.AddAsync(userTest);

            await _db.SaveChangesAsync();

            return(userResult.Entity);
        }
예제 #23
0
 internal void UpdateEntity(UserTest entity)
 {
     entity.UserId = UserId;
     entity.TestId = TestId;
     entity.Start  = Start;
     entity.End    = End;
 }
        public IActionResult Reset(int UserTestId)
        {
            var checkUserTest = _dbContext.tbl_UserTests.Where(w => w.Id == UserTestId).FirstOrDefault();

            if (checkUserTest != null)
            {
                checkUserTest.IsReset = true;
                _dbContext.SaveChanges();

                UserTest userTest = new UserTest
                {
                    TestId          = checkUserTest.TestId,
                    UserId          = checkUserTest.UserId,
                    IsReset         = false,
                    IsLocked        = false,
                    QuestionsAttend = 0,
                    QuestionsRight  = 0,
                    StartDate       = DateTime.Now
                };

                _dbContext.tbl_UserTests.Add(userTest);
                _dbContext.SaveChanges();
            }

            return(RedirectToAction("List", "CareGiver"));
        }
예제 #25
0
        public void 途中でNGユーザに指定された時に非表示になるか()
        {
            var userId           = "abc";
            var lineLiveUserMock = new Mock <LineLiveSitePlugin.ParseMessage.IUser>();

            lineLiveUserMock.Setup(u => u.Id).Returns(123);
            var messageMock = new Mock <LineLiveSitePlugin.ParseMessage.IMessageData>();
            var senderMock  = new Mock <LineLiveSitePlugin.ParseMessage.IUser>();
            var optionsMock = new Mock <ICommentOptions>();

            var siteOptionsMock = new Mock <ILineLiveSiteOptions>();

            siteOptionsMock.Setup(s => s.IsAutoSetNickname).Returns(true);

            var cpMock = new Mock <ICommentProvider>();
            var user   = new UserTest(userId);

            user.IsNgUser = false;

            var message = messageMock.Object;
            var sender  = senderMock.Object;
            var cvm     = new LineLiveCommentViewModel(optionsMock.Object, siteOptionsMock.Object, message, sender, user, cpMock.Object);

            Assert.IsTrue(cvm.IsVisible);
            user.IsNgUser = true;
            Assert.IsFalse(cvm.IsVisible);
        }
예제 #26
0
        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);
        }
예제 #27
0
        public async Task <IActionResult> ChangePassword([FromBody] Authenticate user)
        {
            if (user == null)
            {
                return(BadRequest(StaticVar.MessageNotFound));
            }
            //get user from DB
            UserTest dbUser = await _serviceUserTest.GetByIDAsync(user.Code).ConfigureAwait(false);

            if (dbUser == null)
            {
                return(BadRequest(StaticVar.MessageNotFound));
            }
            //kiểm tra password cũ có đúng không
            if (CustomPasswordHasher.VerifyPassword(dbUser.Password, user.OldPassword))
            {
                var passwordHashed = CustomPasswordHasher.HashPassword(user.Password);
                //đúng thì cho đổi password
                BsonDocument objBSON = new BsonDocument
                {
                    { "Password", passwordHashed }
                };
                await _serviceUserTest.UpdateCustomizeFieldByIdAsync(dbUser.Id, objBSON);

                return(Ok("Đổi password thành công"));
            }
            else
            {
                //sai thì báo lỗi
                return(BadRequest("User hoặc mật khẩu cũ không hợp lệ"));
            }
        }
예제 #28
0
        public IEnumerable <Test> GetTestsProfile(int id)
        {
            List <UserTest> tests = new List <UserTest>();

            using (MySqlCommand cmd = new MySqlCommand())
            {
                cmd.Connection  = connection;
                cmd.CommandText = @"SELECT distinctrow tests.* FROM tests
                                     INNER JOIN test_departments
                                    ON  tests.id = test_department_test
                                    INNER JOIN user_tests
                                    ON test_department_test = test_id
                                    WHERE 
                                     user_id = @userId
                                    AND  NOT test_finished
                                ";
                cmd.Parameters.AddWithValue("@userId", id);
                using (MySqlDataReader reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        UserTest test = new UserTest
                        {
                            Id     = (int)reader["id"],
                            Title  = reader["title"].ToString(),
                            Status = (int)ResultStatus.WaitingToBePassed,
                        };
                        tests.Add(test);
                    }
                }
            }
            return(tests);
        }
        public void SendCallsSmtpWrapper()
        {
            var wrapper       = new Mock <ISmtpWrapper>();
            var resultMessage = new EmailMessage();

            wrapper.Setup(w => w.Send(It.IsAny <EmailMessage>()))
            .Returns(SmtpStatusCode.Ok)
            .Callback <EmailMessage>(msg => resultMessage = msg);
            const string mailerAddress = "*****@*****.**";
            const string forumTitle    = "superawesome";
            var          user          = UserTest.GetTestUser();
            var          settings      = new Settings {
                MailerAddress = mailerAddress, ForumTitle = forumTitle
            };
            var settingsManager = new Mock <ISettingsManager>();

            settingsManager.Setup(s => s.Current).Returns(settings);
            var mailer = new NewAccountMailer(settingsManager.Object, wrapper.Object);

            var result = mailer.Send(user, "http://blah/");

            Assert.Equal(SmtpStatusCode.Ok, result);
            Assert.Equal(resultMessage.ToName, user.Name);
            Assert.Equal(resultMessage.ToEmail, user.Email);
            Assert.Equal(resultMessage.FromName, forumTitle);
            Assert.Equal(resultMessage.FromEmail, mailerAddress);
        }
예제 #30
0
        public UserTest GetUserTestDetails(int id)
        {
            UserTest existingUserTest = new UserTest();

            try
            {
                existingUserTest = _usertest_object.GetUserTestDetails(id);
                if (existingUserTest != null)
                {
                    return(existingUserTest);
                }
                else
                {
                    throw new OASCustomException("Null data encountered.");
                }
            }
            catch (SqlException sqlex)
            {
                log.Error(sqlex);
            }
            catch (OASCustomException customex)
            {
                log.Error(customex.Message);
            }
            catch (Exception ex)
            {
                log.Error(ex.Message);
            }
            return(existingUserTest);
        }