Exemple #1
0
        public async Task <UserResponse> PostUser([FromBody] PostUserRequest request)
        {
            var appUser = userManager.FindByNameAsync(request.Email);

            if (appUser.Result != null)
            {
                return new UserResponse {
                           Data = null, Message = "ایمیل وارد شده توسط فرد دیگری استفاده می شود"
                }
            }
            ;

            var user = new User
            {
                Email        = request.Email,
                FirstName    = request.FirstName,
                LastName     = request.LastName,
                PasswordHash = request.Password,
                UserName     = request.Email
            };
            var result = await userManager.CreateAsync(user);

            if (!result.Succeeded)
            {
                return new UserResponse {
                           Data = null, Message = "اطلاعات با عدم موفقیت پایان یافت"
                }
            }
            ;

            string[] roles     = { "User" };
            string   jwtString = jwt.GenerateJwtToken(user, roles);
            await userManager.SetAuthenticationTokenAsync(user, "", "jwt", jwtString);

            await userManager.AddToRoleAsync(user, "User");

            return(new UserResponse {
                Message = "اطلاعات با موفقیت ثبت شد", Data = jwtString
            });
        }