public async Task <IActionResult> RegisterManager([FromBody] RegisterManagerViewModel model) { logger.LogInformation($"Register manager: {model?.Email}"); if (!ModelState.IsValid) { return(BadRequest(ErrorResult.GetResult(ModelState))); } var address = ethService.GenerateAddress(); var user = new ApplicationUser { UserName = model.Email, Email = model.Email, IsEnabled = true, Type = UserType.Manager, Profile = new Profiles(), Wallets = new List <Wallets> { new Wallets { Currency = Currency.GVT } }, BlockchainAddresses = new List <BlockchainAddresses> { new BlockchainAddresses { Address = address.PublicAddress, Currency = Currency.GVT, IsDefault = true } } }; var result = await userManager.CreateAsync(user, model.Password); if (!result.Succeeded) { return(BadRequest(ErrorResult.GetResult(result))); } var code = await userManager.GenerateEmailConfirmationTokenAsync(user); if (Constants.IsDevelopment) { await userManager.ConfirmEmailAsync(user, code); return(Ok()); } else { var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code }, HttpContext.Request.Scheme); var text = $"Confirmation url: {callbackUrl}"; emailSender.SendEmailAsync(model.Email, "Registration", text, text); return(Ok()); } }
public EthAccount GenerateAccount() { return(ethService.GenerateAddress()); }