Ejemplo n.º 1
0
        public async Task <IActionResult> Register([FromBody] RegisterViewModel model)
        {
            try
            {
                //Number to be registered
                var numberToBeRegistered = _candidate.GetNumberToBeRegistered("Enroll");
                //Number already registered
                var successfullyRegistered = _candidate.GetNumberSuccessfullyRegistered("Enroll");
                //Number already failed
                var failedRegistered = _candidate.GetNumberFailedRegistered("Enroll");
                //Total number of register and failed
                var totalRegistered     = successfullyRegistered + failedRegistered + 1;
                var totalRegisteredInDb = successfullyRegistered + failedRegistered;

                int success  = 0;
                int failed   = 0;
                var password = "";

                //Generated password that will be shown to the admin alone
                if (successfullyRegistered == 0)
                {
                    password = RandomPassword.GenerateRandomPassword(new PasswordOptions());
                }
                else
                {
                    password = _candidate.GetGeneratedPassword("Enroll");
                }

                if (totalRegisteredInDb < numberToBeRegistered)
                {
                    var user   = _candidate.GetUserViewModel(model);
                    var result = await _userManager.CreateAsync(user, password);

                    if (result.Succeeded)
                    {
                        //Update the number already registered and password
                        await _userManager.AddToRoleAsync(user, "UploadedStudent");

                        success = successfullyRegistered + 1;
                        _candidate.UpdateExamSettingAfterSuccessfulRegisteration(success, password, "Enroll");
                        return(Ok(new { success = RepsonseMessages.PrintResponseMessage("AuthRegister.Success") }));
                    }
                    else
                    {
                        //Update the number that failed and password
                        failed = failedRegistered + 1;
                        _candidate.UpdateExamSettingFailedRegisteration(failed, "Enroll");
                        return(BadRequest(new { error = result.Errors }));
                    }
                }
            }
            catch (Exception ex)
            {
                return(BadRequest(new { error = ex.Message }));
            }
            return(BadRequest(new { error = RepsonseMessages.PrintResponseMessage("AuthRegister.Error") }));
        }
Ejemplo n.º 2
0
 public IActionResult GetUserClaims()
 {
     try
     {
         var userId     = User.Claims.SingleOrDefault(c => c.Type == "UserId").Value;
         var userObject = _candidate.GetUserCLaims(userId);
         return(Ok(userObject));
     }
     catch
     {
         return(BadRequest(new { error = RepsonseMessages.PrintResponseMessage("CandidateGetUserClaims.Error") }));
     }
 }
Ejemplo n.º 3
0
        public IActionResult GetCategoryList()
        {
            var categoryList = _candidate.GetCatgoryList();

            if (categoryList.Count > 0)
            {
                return(Ok(categoryList));
            }
            else
            {
                return(BadRequest(new { error = RepsonseMessages.PrintResponseMessage("AuthGetToggleSetting.Error") }));
            }
        }
Ejemplo n.º 4
0
        public IActionResult GetExamQuestionModel(string timeLookUp)
        {
            var userId = User.Claims.SingleOrDefault(c => c.Type == "UserId").Value;
            var model  = _candidate.GetExamQuestionModels(userId, timeLookUp);

            if (model != null)
            {
                return(Ok(model));
            }
            else
            {
                return(BadRequest(new { error = RepsonseMessages.PrintResponseMessage("CandidateGetQuestions.Error") }));
            }
        }
Ejemplo n.º 5
0
        public IActionResult SubmitExamQuestionModel(List <ExamQuestions> examArrays)
        {
            var userId = User.Claims.SingleOrDefault(c => c.Type == "UserId").Value;

            if (examArrays != null && examArrays.Count() > 0)
            {
                var examResult = _candidate.SubmitExamQuestions(userId, examArrays);
                if (examResult != null)
                {
                    return(Ok(examResult));
                }
                else
                {
                    return(BadRequest(new { error = RepsonseMessages.PrintResponseMessage("CandidateGetQuestions.Error") }));
                }
            }
            return(BadRequest(new { error = RepsonseMessages.PrintResponseMessage("CandidateGetQuestions.Error") }));
        }
Ejemplo n.º 6
0
        public async Task <IActionResult> Login([FromBody] LoginViewModel model)
        {
            try
            {
                var user = await _userManager.FindByNameAsync(model.Username);

                if (user != null && await _userManager.CheckPasswordAsync(user, model.Password))
                {
                    var identityClaim = (ClaimsIdentity)User.Identity;
                    identityClaim.AddClaim(new Claim("UserId", user.Id));

                    var signingKey      = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("very_long_very_secret_secret"));
                    int expiryInMinutes = Convert.ToInt32(_configuration["jwt:ExpiryInMinutes"]);
                    var token           = new JwtSecurityToken(
                        issuer: "issuer",
                        audience: "audience",
                        expires: DateTime.UtcNow.AddMinutes(5),
                        signingCredentials: new SigningCredentials(signingKey, SecurityAlgorithms.HmacSha256),
                        claims: identityClaim.Claims
                        );

                    return(Ok(
                               new
                    {
                        token = new JwtSecurityTokenHandler().WriteToken(token),
                        expiration = token.ValidTo,
                        roles = await _userManager.GetRolesAsync(user)
                    }));
                }
                else
                {
                    return(BadRequest(new { error = RepsonseMessages.PrintResponseMessage("AuthLogin.Error") }));
                }
            }
            catch (Exception ex)
            {
                return(BadRequest(new { error = RepsonseMessages.PrintResponseMessage("AuthLogin.Error") }));
            }
        }