コード例 #1
0
ファイル: AuthController.cs プロジェクト: EngBett/JamboPay
        public async Task <IActionResult> Register(RegisterViewModel model, string networkKey)
        {
            if (!ModelState.IsValid)
            {
                return(StatusCode(StatusCodes.Status400BadRequest,
                                  new Response {
                    Status = "Error", Message = "fill all fields"
                }));
            }

            var userExist = await _userManager.FindByEmailAsync(model.Email);

            if (userExist != null)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError,
                                  new Response {
                    Status = "Error", Message = "User with that email exists"
                }));
            }

            ApplicationUser user = new ApplicationUser
            {
                FullName      = model.FullName,
                SecurityStamp = Guid.NewGuid().ToString(),
                UserName      = model.Email,
                Email         = model.Email,
            };

            var res = await _userManager.CreateAsync(user, model.Password);

            if (res.Succeeded)
            {
                Network network = await _networkRepository.GetNetwork(networkKey);

                _userNetworkRepository.AddUserNetwork(new UserNetwork {
                    NetworkId = network.Id, ApplicationUserId = user.Id
                });

                if (await _userNetworkRepository.SaveChangesAsync())
                {
                    return(Ok(new Response {
                        Status = "Success", Message = "Registered successfully"
                    }));
                }
            }

            return(StatusCode(StatusCodes.Status500InternalServerError,
                              new Response {
                Status = "Error", Message = "Registration failed"
            }));
        }