Ejemplo n.º 1
0
        public async Task <IActionResult> OnPost()
        {
            if (!ModelState.IsValid || string.IsNullOrWhiteSpace(UserId))
            {
                return(Page());
            }

            ApplicationUser user = new ApplicationUser
            {
                Name        = ViewModel.Name,
                Gender      = ViewModel.Gender,
                DateOfBirth = ViewModel.DateOfBirth.Date,
                DateAdded   = DateTime.Now,
                Nationality = ViewModel.Nationality,
                UserId      = UserId
            };

            var response = await _services.AddUserAsync(user);

            if (response == null)
            {
                TempData["Failed"] = "";
                RedirectToPage("/Areas/Identity/Account/Register");
            }

            TempData["Success"] = "Registration was successful";
            return(RedirectToPage("/Volunteer/Index"));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> RegisterUser()
        {
            var login       = User.FindFirst(c => c.Type == "urn:github:login")?.Value;
            var credentials = new Credentials(await HttpContext.GetTokenAsync("access_token"));

            var github  = new GitHubClient(new ProductHeaderValue("AspNetCoreGitHubAuth"));
            var gitUser = await github.User.Get(login);

            var user = new Entities.User
            {
                GitHubId = gitUser.Id,
                Login    = gitUser.Login,
            };

            var userId = await _usersServices.AddUserAsync(user);

            return(Redirect($"http://localhost:3000/authorize?id={userId}"));
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> OnPost()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            ApplicationUser applicationUser = new ApplicationUser
            {
                Name        = ViewModel.Name,
                Gender      = ViewModel.Gender,
                DateAdded   = DateTime.Now,
                DateOfBirth = ViewModel.DateOfBirth.Date,
                Nationality = ViewModel.Nationality
            };

            // process file upload
            if (ViewModel.Photograph != null)
            {
                using (var memoryStream = new MemoryStream())
                {
                    await ViewModel.Photograph.CopyToAsync(memoryStream);

                    // Upload the file if less than 2 MB
                    if (memoryStream.Length < 2097152)
                    {
                        applicationUser.Photograph = memoryStream.ToArray();
                    }
                    else
                    {
                        ModelState.AddModelError("File", "The file is too large.");
                    }
                }
            }

            IdentityUser identityUser = new IdentityUser
            {
                Email       = ViewModel.Email,
                UserName    = ViewModel.Email,
                PhoneNumber = ViewModel.Phone
            };

            var user = await _userManager.CreateAsync(identityUser, $"StaffPassword@{ViewModel.DateOfBirth.Year}");

            if (user.Succeeded)
            {
                var newUser = await _userManager.FindByNameAsync(ViewModel.Email);

                var roleResponse = await _userManager.AddToRoleAsync(newUser, "Administrator");

                if (roleResponse.Succeeded)
                {
                    applicationUser.UserId = newUser.Id;
                    var appUser = await _userServices.AddUserAsync(applicationUser);

                    if (appUser != null)
                    {
                        TempData["Success"] = "Staff was created successfully";
                        return(RedirectToPage("/Admin/Staffs"));
                    }
                    else
                    {
                        TempData["Failed"] = "The operation failed, try again";
                        _ = await _userManager.DeleteAsync(newUser);
                    }
                }
            }

            return(Page());
        }