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 }); }