示例#1
0
        public async Task <IActionResult> OnPostAddMentorAsync()
        {
            Console.WriteLine("The Email is: " + RegisterViewModel.Username);
            if (ModelState.IsValid)
            {
                try {
                    var profile = new Profile {
                        FirstName = RegisterViewModel.FirstName,
                        LastName  = RegisterViewModel.LastName,
                    };

                    //TODO: include language
                    var userAcc = new MentorAccount {
                        UserName    = RegisterViewModel.Username,
                        Email       = RegisterViewModel.Username,
                        PhoneNumber = RegisterViewModel.Phone,
                        SIN         = RegisterViewModel.SIN,
                        Profile     = profile
                    };
                    var result = await _userManager.CreateAsync(userAcc);

                    //await _userManager.CreateAsync(userAcc, RegisterViewModel.Password);
                    if (result.Succeeded)
                    {
                        /// IEmailSender neeeded
                        System.Console.WriteLine("New Account Created");
                        var code = await _userManager.GeneratePasswordResetTokenAsync(userAcc);

                        //_userManager.GenerateEmailConfirmationTokenAsync(userAcc);

                        var callbackUrl = Url.Page(
                            "/Account/ResetPassword",
                            pageHandler: null,
                            values: new { userId = userAcc.Id, code = code },
                            protocol: Request.Scheme);

                        await _emailsender.SendEmailAsync(RegisterViewModel.Username, "Confirm your email",
                                                          $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");
                    }
                    foreach (var error in result.Errors)
                    {
                        ModelState.AddModelError(string.Empty, error.Description);
                    }
                } catch (System.Exception) {
                    System.Console.WriteLine("Add mentor not working!");
                }
            }
            System.Console.WriteLine("Unable to Add User...");
            return(Page());
        }
        public async Task <IActionResult> CreateMentors()
        {
            var mentors = new List <string>
            {
                /*
                 * "*****@*****.**",  "*****@*****.**",  "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**"
                 */
                "*****@*****.**",
                "*****@*****.**",
                "*****@*****.**",
                "*****@*****.**",
                "*****@*****.**",
                "*****@*****.**",
                "*****@*****.**",
                "*****@*****.**",
                "*****@*****.**",
                "*****@*****.**"
            };

            if (_userManager.Users.Where(u => u.AccountType == Account.Mentor).Count() == 0)
            {
                foreach (var m in mentors)
                {
                    //Populate mentors
                    var prf = new Profile {
                        FirstName = "tester",
                        LastName  = "tester"
                    };
                    var mentor = new MentorAccount {
                        Profile  = prf,
                        Email    = m,
                        UserName = m,
                    };
                    var result = await _userManager.CreateAsync(mentor, "Passw0rd!");

                    if (result.Succeeded)
                    {
                        var newuser = await _userManager.FindByEmailAsync(m);

                        var claimres = await _userManager.AddClaimAsync(newuser, new Claim ("Account", "Mentor"));
                    }
                }

                return(Ok("Newly Added!"));
            }
            return(Ok("Already Polulated!"));
        }
示例#3
0
        public async Task <IActionResult> Register([FromBody] RegisterModel model)
        {
            if (ModelState.IsValid)
            {
                var prf = new Profile {
                    FirstName = model.FirstName,
                    LastName  = model.LastName
                };

                var user = new MentorAccount
                {
                    UserName = model.UserName,
                    Email    = model.UserName,
                    Profile  = prf
                };

                var result = await _userManager.CreateAsync(user);

                if (result.Succeeded)
                {
                    var code = await _userManager.GeneratePasswordResetTokenAsync(user);

                    var callbackUrl = Url.Page(
                        "/Account/ResetPassword",
                        pageHandler: null,
                        values: new { userId = user.Id, code = code },
                        protocol: Request.Scheme);

                    await _emailSender.SendEmailAsync(model.UserName, "Confirm your email",
                                                      $"Please confirm your account and Create a Password by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");

                    var newuser = await _userManager.FindByEmailAsync(model.UserName);

                    var claimres = await _userManager.AddClaimAsync(newuser, new Claim("Account", "Mentor"));

                    return(Ok("Add Mentor Success"));
                }
            }
            return(BadRequest("Unable to Process Registration..."));
        }