Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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"
                });
            }
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        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));
        }
Esempio n. 5
0
        public ResponseResult JoinGym(int userId, int gymId)
        {
            var newGymUser = new GymUser
            {
                GymId         = gymId,
                RegularUserId = userId,
            };

            _dbContext.GymUsers.Add(newGymUser);
            _dbContext.SaveChanges();

            return(ResponseResult.Ok);
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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);
                }
            }
        }