public async Task <ApiResult <bool> > CreateAsync([FromBody] GymUser user) { ApiResult <bool> result = new ApiResult <bool>(); try { using (TransactionScope transaction = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled)) { user.PhoneNumber = ""; _context.Add(user); await _context.SaveChangesAsync(); transaction.Complete(); result.Value = true; result.Status = ApiResultStatus.SUCCESS; } } catch (Exception ex) { result.Status = ApiResultStatus.FAIL; } return(await Task.FromResult(result)); }
public IEnumerable <string> AddGymUser(GymUserDto dto) { try { var userManager = new UserManager <GymUser>(new UserStore <GymUser>(_context)); var gymUser = new GymUser() { Email = dto.Email, UserName = dto.UserName ?? dto.Email, FirstName = dto.FirstName ?? "", LastName = dto.LastName ?? "", DateCreated = DateTime.UtcNow }; var result = userManager.Create(gymUser, dto.Password); if (result.Succeeded) { userManager.AddToRole(gymUser.Id, RoleNames.AttendeeName); _logger.Info($"Gym user ID {gymUser.Id} successfully created"); return(null); } return(result.Errors); } catch (Exception e) { _logger.Error(e); return(new List <string>() { "Error occurred creating a new member" }); } }
public async Task <IActionResult> ExternalLoginConfirmation(ExternalLoginViewModel model, string returnUrl = null) { if (ModelState.IsValid) { // Get the information about the user from the external login provider var info = await _signInManager.GetExternalLoginInfoAsync(); if (info == null) { throw new ApplicationException("Error loading external login information during confirmation."); } var user = new GymUser { UserName = model.Email, Email = model.Email }; var result = await _userManager.CreateAsync(user); if (result.Succeeded) { result = await _userManager.AddLoginAsync(user, info); if (result.Succeeded) { await _signInManager.SignInAsync(user, isPersistent : false); _logger.LogInformation("User created an account using {Name} provider.", info.LoginProvider); return(RedirectToLocal(returnUrl)); } } AddErrors(result); } ViewData["ReturnUrl"] = returnUrl; return(View(nameof(ExternalLogin), model)); }
public async Task <ActionResult> Register(RegisterViewModel model) //public ActionResult Register(RegisterViewModel model) { if (ModelState.IsValid) { //var user = new GymUser { UserName = model.Email, Email = model.Email }; //var result = await UserManager.CreateAsync(user, model.Password); //if (result.Succeeded) //{ // await SignInManager.SignInAsync(user, isPersistent:false, rememberBrowser:false); // // For more information on how to enable account confirmation and password reset please visit https://go.microsoft.com/fwlink/?LinkID=320771 // // Send an email with this link // // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); // // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); // // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>"); // return RedirectToAction("Index", "Home"); //} var gymUser = new GymUserDto() { UserName = model.UserName, Email = model.Email, Password = model.Password }; var errors = await _accountService.AddUserByRegistration(gymUser); if (errors != null) { foreach (var error in errors) { ModelState.AddModelError("", error); } } else { var newlyCreatedUser = await _accountService.GetUserByEmailAddress(model.Email); var user = new GymUser() { Id = newlyCreatedUser.Id, Email = model.Email, UserName = model.Email }; await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); return(RedirectToAction("Index", "Home")); } } // If we got this far, something failed, redisplay form return(View(model)); }
public ResponseResult JoinGym(int userId, int gymId) { var newGymUser = new GymUser { GymId = gymId, RegularUserId = userId, }; _dbContext.GymUsers.Add(newGymUser); _dbContext.SaveChanges(); return(ResponseResult.Ok); }
private async Task LoadSharedKeyAndQrCodeUriAsync(GymUser user, EnableAuthenticatorViewModel model) { var unformattedKey = await _userManager.GetAuthenticatorKeyAsync(user); if (string.IsNullOrEmpty(unformattedKey)) { await _userManager.ResetAuthenticatorKeyAsync(user); unformattedKey = await _userManager.GetAuthenticatorKeyAsync(user); } model.SharedKey = FormatKey(unformattedKey); model.AuthenticatorUri = GenerateQrCodeUri(user.Email, unformattedKey); }
private void SeedRolesAndUsers(ProperArch01DbContext context) { var roleManager = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(context)); var userManager = new UserManager <GymUser>(new UserStore <GymUser>(context)); if (!roleManager.RoleExists(RoleNames.AdminName)) { var role = new IdentityRole { Name = RoleNames.AdminName }; roleManager.Create(role); //Here we create a Admin super user who will maintain the website var user = new GymUser { UserName = "******", Email = "*****@*****.**", FirstName = "Administrator", LastName = "One" }; string userPWD = "Ballygowan1!"; var chkUser = userManager.Create(user, userPWD); //Add default User to Role Admin if (chkUser.Succeeded) { var result1 = userManager.AddToRole(user.Id, RoleNames.AdminName); } } if (!roleManager.RoleExists(RoleNames.AttendeeName)) { var role = new IdentityRole { Name = RoleNames.AttendeeName }; roleManager.Create(role); var user = new GymUser { UserName = "******", Email = "*****@*****.**", FirstName = "Attendee", LastName = "One" }; string userPWD = "Ballygowan1!"; var chkUser = userManager.Create(user, userPWD); if (chkUser.Succeeded) { var result1 = userManager.AddToRole(user.Id, RoleNames.AttendeeName); } } if (!roleManager.RoleExists(RoleNames.InstructorName)) { var role = new IdentityRole { Name = RoleNames.InstructorName }; roleManager.Create(role); var user = new GymUser { UserName = "******", Email = "*****@*****.**", FirstName = "Instructor", LastName = "One" }; string userPWD = "Ballygowan1!"; var chkUser = userManager.Create(user, userPWD); if (chkUser.Succeeded) { var result1 = userManager.AddToRole(user.Id, RoleNames.InstructorName); } } }