Example #1
0
        public static async Task <bool> loginSubmit(string username, string password, string captcha)
        {
            Models.Preferences.Token token = App.PreferenceDatabase.GetToken();
            if (token == null)
            {
                throw new Exceptions.SessionTimeoutException();
            }
            Models.GeneralReturn <Models.Responses.UserLoginSubmit> result = await DataFetch.post <Models.Responses.UserLoginSubmit>(String.Format(urlUserLoginSubmit, urlBase, token.AccessToken), new Dictionary <string, string> {
                { "username", username },
                { "password", password },
                { "captcha", captcha }
            });

            if (result.Status == 200)
            {
                if (result.Data.Success)
                {
                    token.IsLoggedIn  = true;
                    token.ValidBefore = DateTime.Now.AddMinutes(39);
                    App.PreferenceDatabase.SetToken(token);
                }
                else
                {
                    App.PreferenceDatabase.RemoveToken();
                }
                return(result.Data.Success);
            }
            else
            {
                throw new Exception(result.Return);
            }
        }
        public Models.Preferences.Token GetToken()
        {
            List <Models.Preferences.Token> tokens = db.GetAllWithChildren <Models.Preferences.Token>();

            Models.Preferences.Token token = null;
            if (tokens == null || tokens.Count <= 0 || tokens[0].ValidBefore <= DateTime.Now)
            {
                db.DeleteAll <Models.Preferences.Token>();
            }
            else
            {
                token = tokens[0];
            }
            return(token);
        }
Example #3
0
        public static async Task <List <Models.Lesson> > RefreshCurrentLessons()
        {
            Models.Preferences.Token token = App.PreferenceDatabase.GetToken();
            if (token == null || !token.IsLoggedIn)
            {
                throw new Exceptions.SessionTimeoutException();
            }
            Models.Schedule schedule = await fetchCurrent(token.AccessToken);

            if (schedule != null)
            {
                App.CurrentInfoDatabase.ResetAsync(schedule.Lessons);
                return(schedule.Lessons);
            }
            else
            {
                return(null);
            }
        }
 public void SetToken(Models.Preferences.Token token)
 {
     db.InsertOrReplaceWithChildren(token);
 }