public async Task AddAndSaveTest() { var member1 = new Member() { Id = 1, Name = "test member 1", Email = "*****@*****.**" }; var member2 = new Member() { Id = 2, Name = "test member 2", Email = "*****@*****.**" }; var members = new List <Member> { member1, member2 }; var member3 = new Member() { Id = 3, Name = "test member 3", Email = "*****@*****.**" }; var fakeRepositoryMock = new Mock <IMemberRepository>(); fakeRepositoryMock.Setup(x => x.Add(It.IsAny <Member>())).Callback <Member>(arg => members.Add(arg)); var memberService = new MemberService(fakeRepositoryMock.Object); await memberService.AddAndSave(member3); Assert.Equal(3, members.Count); }
public async Task <IActionResult> Create([Bind("Id,Name,Email")] Member member) { if (ModelState.IsValid) { await _memberService.AddAndSave(member); return(RedirectToAction(nameof(Index))); } return(View(member)); }
public async Task <IActionResult> OnPostAsync(string returnUrl = null) { returnUrl = returnUrl ?? Url.Content("~/"); ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList(); if (ModelState.IsValid) { var user = new IdentityUser { UserName = Input.Email, Email = Input.Email }; var result = await _userManager.CreateAsync(user, Input.Password); if (result.Succeeded) { //await _userManager.AddToRoleAsync(user, "Admin"); await _userManager.AddToRoleAsync(user, "User"); await _memberService.AddAndSave(new Models.Member(user.UserName, user.Email)); _logger.LogInformation("User created a new account with password."); var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code)); var callbackUrl = Url.Page( "/Account/ConfirmEmail", pageHandler: null, values: new { area = "Identity", userId = user.Id, code = code }, protocol: Request.Scheme); await _emailSender.SendEmailAsync(Input.Email, "Confirm your email", $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>."); if (_userManager.Options.SignIn.RequireConfirmedAccount) { return(RedirectToPage("RegisterConfirmation", new { email = Input.Email })); } else { await _signInManager.SignInAsync(user, isPersistent : false); return(LocalRedirect(returnUrl)); } } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } // If we got this far, something failed, redisplay form return(Page()); }