Ejemplo n.º 1
0
        public async Task <IActionResult> ChangeUser([FromBody] UserForDto model)
        {
            if (ModelState.IsValid)
            {
                var userId = User.FindFirst(ClaimTypes.NameIdentifier).Value;
                var result = await _userService.ChangeUser(model, userId);

                if (result.IsSuccess)
                {
                    return(Ok(result));
                }
                return(BadRequest(result));
            }

            return(BadRequest("Some properties are not valid."));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Register(UserForDto userForDto)
        {
            userForDto.Username = userForDto.Username.ToLower();

            if (await _repo.UserExist(userForDto.Username))
            {
                return(BadRequest("User already exist"));
            }

            var usertocreate = new User
            {
                Username = userForDto.Username
            };

            var createdUser = await _repo.Register(usertocreate, userForDto.Password);

            return(StatusCode(201));
        }
Ejemplo n.º 3
0
        public async Task <UserManagerResponse> ChangeUser(UserForDto model, string userId)
        {
            var user = await _userManager.FindByIdAsync(userId);

            if (user == null)
            {
                return new UserManagerResponse
                       {
                           IsSuccess = false,
                           Message   = "Kullanıcı bulunamadı."
                       }
            }
            ;

            var userName = _context.Users.SingleOrDefaultAsync(x => x.UserName == model.UserName).Result;

            if (userName != null && userName.UserName != model.UserName)
            {
                return(new UserManagerResponse
                {
                    IsSuccess = false,
                    Message = "Kullanıcı adı kullanılıyor."
                });
            }

            if (model.FirstName != null && user.FirstName != model.FirstName)
            {
                user.FirstName = model.FirstName;
            }
            if (model.LastName != null && user.LastName != model.LastName)
            {
                user.LastName = model.LastName;
            }
            if (model.UserName != null && user.UserName != model.UserName)
            {
                user.UserName = model.UserName;
            }
            var result = await _userManager.UpdateAsync(user);

            if (result.Succeeded)
            {
                IdentityOptions _options = new IdentityOptions();

                var claims = new List <Claim>()
                {
                    new Claim(ClaimTypes.Email, user.Email),
                    new Claim(ClaimTypes.NameIdentifier, user.Id),
                };

                var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["AuthSettings:Key"]));

                var token = new JwtSecurityToken(
                    issuer: _configuration["AuthSettings:Issuer"],
                    audience: _configuration["AuthSettings:Audience"],
                    claims: claims,
                    expires: DateTime.Now.AddDays(30),
                    signingCredentials: new SigningCredentials(key, SecurityAlgorithms.HmacSha256)
                    );

                string tokenAsString = new JwtSecurityTokenHandler().WriteToken(token);
                var    currentUser   = new
                {
                    Id             = user.Id,
                    FirstName      = user.FirstName,
                    LastName       = user.LastName,
                    Email          = user.Email,
                    EmailConfirmed = user.EmailConfirmed,
                    PhoneNumber    = user.PhoneNumber,
                    Remainder      = user.Remainder,
                    OverAllRating  = user.OverAllRating,
                    UserName       = user.UserName
                };
                return(new UserManagerResponse
                {
                    IsSuccess = true,
                    Message = tokenAsString,
                    User = currentUser,
                    ExpireDate = token.ValidTo
                });
            }
            return(new UserManagerResponse
            {
                IsSuccess = false,
                Message = "Bir şeyler yanlış gitti.",
                Errors = result.Errors.Select(e => e.Description)
            });
        }
    }