public async Task<ConfigurationData> GetConfigurationForSetup() { var response = await webclient.GetString(new Utils.Clients.WebRequest() { Url = LoginUrl }); cookieHeader = response.Cookies; var captchaImage = await RequestBytesWithCookies(CaptchaUrl); var config = new BmtvConfig(); config.CaptchaImage.Value = captchaImage.Content; config.CaptchaCookie.Value = captchaImage.Cookies; return (ConfigurationData)config; }
public async Task ApplyConfiguration(JToken configJson) { var config = new BmtvConfig(); config.LoadValuesFromJson(configJson); var pairs = new Dictionary<string, string> { { "username", config.Username.Value }, { "password", config.Password.Value }, { "secimage", config.CaptchaText.Value } }; var response = await RequestLoginAndFollowRedirect(LoginPost, pairs, config.CaptchaCookie.Value, true); await ConfigureIfOK(response.Cookies, response.Content.Contains("/logout.php"), async () => { CQ dom = response.Content; var messageEl = dom["table tr > td.embedded > h2"].Last(); var errorMessage = messageEl.Text(); var captchaImage = await RequestBytesWithCookies(CaptchaUrl); config.CaptchaImage.Value = captchaImage.Content; config.CaptchaText.Value = ""; config.CaptchaCookie.Value = captchaImage.Cookies; throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config); }); }