private async Task OnExecute()

in src/Tools/Administrative.Cli/Commands/Admin/CreateAdminCommand.cs [50:105]


        private async Task<int> OnExecute(IConsole console)
        {
            var userManager = identityServicesAccessor.GetIdentityService<ConsoleUserManager<ApplicationUser>>(Verbose);

            console.CancelKeyPress += userManager.ConsoleOnCancelKeyPress;

            var user = new ApplicationUser(Guid.NewGuid().ToString())
            {
                UserName = Name
            };

            if (!Verbose)
            {
                console.WriteLine($"Start creating new user with {Name} name.");
            }

            IdentityResult result = await userManager.CreateAsync(user, Password);

            if (!result.Succeeded)
            {
                if (!Verbose)
                {
                    console.Error.WriteLine($"Error on creating user: {FormatIdentityErrors(result.Errors)}");
                }

                return 1;
            }

            var adminRoleName = Roles.Admin.ToString("G");

            if (!Verbose)
            {
                console.WriteLine($"Successfully created user with {Name} name.");

                console.WriteLine($"Start assigning {adminRoleName} to {Name} user.");
            }

            result = await userManager.AddToRoleAsync(user, Roles.Admin.ToString("G"));

            if (!result.Succeeded)
            {
                if (!Verbose)
                {
                    console.Error.WriteLine($"Error on assigning {adminRoleName} to user {FormatIdentityErrors(result.Errors)}");
                }

                return 1;
            }

            if (!Verbose)
            {
                console.WriteLine($"Successfully assigning {adminRoleName} to {Name} user.");
            }

            return 1;
        }