コード例 #1
0
        public async Task <Answer> AddAnswerToQuestion(Answer answer)
        {
            try
            {
                var result = await _context.Answers.AddAsync(answer);

                await _context.SaveChangesAsync();

                return(answer);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #2
0
        public async Task <Question> AddQuestionToQuiz(Question qstn)
        {
            try
            {
                var result = await _context.Questions.AddAsync(qstn);

                await _context.SaveChangesAsync();

                return(qstn);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #3
0
        //create

        public async Task <Quiz> AddQuizAsync(Quiz quiz)
        {
            try
            {
                var result = await _context.Quizzes.AddAsync(quiz);

                await _context.SaveChangesAsync();

                return(quiz);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.InnerException.Message);
                return(null);
            }
        }
コード例 #4
0
ファイル: AccountController.cs プロジェクト: tadivaka/QLibApi
        public async Task <IActionResult> Login([FromBody] LoginDto loginDto)
        {
            _logger.WriteLogInformation(ComponentLayer.API, $"{nameof(AccountController)}", $"{nameof(Login)}", MethodLine.BEGIN, loginDto.Email);
            var result = _signInManager.PasswordSignInAsync(loginDto.Email, loginDto.Password, false, false).Result;

            if (result.Succeeded)
            {
                var appUser = _userManager.Users.SingleOrDefault(r => String.Equals(r.Email.Trim(), loginDto.Email.Trim(), StringComparison.CurrentCultureIgnoreCase));

                if (appUser.LockoutEnabled == false)
                {
                    return(BadRequest(new
                    {
                        message = Messages.AccountLocked,
                        IsAccountLocked = true
                    }));
                }

                var userFullName = await _usersService.GetUserFullName(appUser.Id);

                var jwtToken = _apiJwtToken.GenerateJwtToken(loginDto.Email, appUser, userFullName);
                using (var db = new DevDbContext())
                {
                    var efUser = db.AspNetUsers.First(x => x.Id == appUser.Id);
                    if (efUser != null)
                    {
                        efUser.LockoutEnabled    = true;
                        efUser.AccessFailedCount = 0;
                    }
                    await db.SaveChangesAsync();
                }
                _logger.WriteLogInformation(ComponentLayer.API, $"{nameof(AccountController)}", $"{nameof(Login)}", MethodLine.END, loginDto.Email);
                return(Ok(new
                {
                    token = jwtToken,
                    userId = appUser.Id
                }));
            }
            else
            {
                var appUser = _userManager.Users.SingleOrDefault(r => r.Email.Trim().ToLower() == loginDto.Email.Trim().ToLower());
                if (appUser == null)
                {
                    return(BadRequest(new
                    {
                        message = Messages.InvalidEmail,
                        IsAccountLocked = false
                    }));
                }
                else
                {
                    return(BadRequest(new
                    {
                        message = Messages.AccountLocked,
                        IsAccountLocked = true
                    }));
                }
            }
        }
コード例 #5
0
        public async Task <Rating> AddRatingAsync(Rating rating)
        {
            try
            {
                var result = await _context.Ratings.AddAsync(rating);

                await _context.SaveChangesAsync();

                return(rating);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #6
0
        public async Task <Scores> AddScoreAsync(Scores score)
        {
            try
            {
                var reslust = await _context.Scores.AddAsync(score);

                await _context.SaveChangesAsync();

                return(score);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #7
0
        public async Task <UserDetails> Register(UserDetails user, string password)
        {
            try
            {
                byte[] passwordHash, salt;
                CreatePasswordHash(password, out passwordHash, out salt);
                user.Password = passwordHash;
                user.Salt     = salt;

                await _dbContext.UserDetails.AddAsync(user);

                await _dbContext.SaveChangesAsync();
            }
            catch (Exception ex)
            {
                throw;
            }
            return(user);
        }