protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); var seedData = ProductLoader.GetProductsFromFile(); foreach (var product in seedData) { modelBuilder.Entity <Product>().HasData(new Product { ProductId = product.ProductId, ProductName = product.ProductName, Energy = product.Energy, Fat = product.Fat, Carbohydrates = product.Carbohydrates, Protein = product.Protein, Salt = product.Salt, Fiber = product.Fiber, Sugar = product.Sugar, Quantity = product.Quantity, PortionQuantity = product.PortionQuantity, PortionUnit = product.PortionUnit, IsFavorite = product.IsFavorite }); } }
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) { _logger.LogInformation("User created a new account with password."); var client = _httpClientFactory.CreateClient(); var action = CreateAction(user.UserName, UserAccountActionType.AccountCreated); await client.PostAsync("https://localhost:5001/VirtusFit/user", new StringContent(JsonSerializer.Serialize(action), Encoding.UTF8, "application/json")); var accountStatus = CreateAction(user.UserName, UserAccountActionType.UserUnlocked); await client.PostAsync("https://localhost:5001/VirtusFit/user", new StringContent(JsonSerializer.Serialize(accountStatus), Encoding.UTF8, "application/json")); var passwordStatus = CreateAction(user.UserName, UserAccountActionType.PasswordChanged); await client.PostAsync("https://localhost:5001/VirtusFit/user", new StringContent(JsonSerializer.Serialize(passwordStatus), Encoding.UTF8, "application/json")); var seedData = ProductLoader.GetProductsFromFile(); foreach (var product in seedData) { _productRepository.InsertProduct(new Product { ProductNo = product.ProductId, ProductName = product.ProductName, Energy = product.Energy, Fat = product.Fat, Carbohydrates = product.Carbohydrates, Protein = product.Protein, Salt = product.Salt, Fiber = product.Fiber, Sugar = product.Sugar, Quantity = product.Quantity, PortionQuantity = product.PortionQuantity, PortionUnit = product.PortionUnit, IsFavorite = product.IsFavorite, UserId = user.Id }); } 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, returnUrl = returnUrl }, 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, returnUrl = returnUrl })); } 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()); }