protected override async Task ExecuteAsync(IConsole console)
        {
            var registerTask = ServerAccessor.RegisterUserAsync(Username, Password);

            var userInfo = await registerTask.Try();

            if (userInfo == null)
            {
                var response = (registerTask.Exception.InnerException as HttpRequestException)?.StatusCode;
                if (response == null || !response.HasValue)
                {
                    throw registerTask.Exception.InnerException;
                }
                var responseCode = response.Value;

                if (responseCode == HttpStatusCode.NotFound)
                {
                    await ErrorLineAsync("This pool does not support user registration!");
                }
                else if (responseCode == HttpStatusCode.Conflict)
                {
                    await WarnLineAsync("This username has already been taken!");
                }
                else if (response == HttpStatusCode.UnprocessableEntity)
                {
                    await WarnLineAsync("Username & Password cannot be empty!");
                }
                else
                {
                    throw registerTask.Exception.InnerException;
                }

                return;
            }

            await SuccessLineAsync("Successfully created user!");
            await TableAsync(new Dictionary <string, Func <UserInfo, object> >()
            {
                ["Id"]       = x => x.Id,
                ["Username"] = x => x.Name,
                ["Password"] = x => Password,
            }, new[] { userInfo });
        }