Exemplo n.º 1
0
        public async Task ApplyConfiguration(JToken configJson)
        {
            var config = new PretomeConfiguration();
            config.LoadValuesFromJson(configJson);

            var loginPage = await webclient.GetString(new WebRequest()
            {
                Url = LoginUrl,
                Type = RequestType.GET
            });

            var pairs = new Dictionary<string, string> {
                { "returnto", "%2F" },
                { "login_pin", config.Pin.Value },
                { "username", config.Username.Value },
                { "password", config.Password.Value },
                { "login", "Login" }
            };


            // Send Post
            var loginPost = await webclient.GetString(new WebRequest()
            {
                Url = LoginUrl,
                PostData = pairs,
                Referer = LoginReferer,
                Type = RequestType.POST,
                Cookies = loginPage.Cookies
            });

            if (loginPost.RedirectingTo == null)
            {
                throw new ExceptionWithConfigData("Login failed. Did you use the PIN number that pretome emailed you?", (ConfigurationData)config);
            }

            // Get result from redirect
            var loginResult = await webclient.GetString(new WebRequest()
            {
                Url = loginPost.RedirectingTo,
                Type = RequestType.GET,
                Cookies = loginPost.Cookies
            });

            if (!loginResult.Content.Contains("logout.php"))
            {
                throw new ExceptionWithConfigData("Failed", (ConfigurationData)config);
            }
            else
            {
                cookieHeader = loginPost.Cookies;
                var configSaveData = new JObject();
                configSaveData["cookies"] = cookieHeader;
                SaveConfig(configSaveData);
                IsConfigured = true;
            }
        }
Exemplo n.º 2
0
 public Task<ConfigurationData> GetConfigurationForSetup()
 {
     var config = new PretomeConfiguration();
     return Task.FromResult<ConfigurationData>(config);
 }