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" })); }