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