Exemplo n.º 1
0
        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());
            }
        }
Exemplo n.º 2
0
 public EthAccount GenerateAccount()
 {
     return(ethService.GenerateAddress());
 }