public static async Task performAuth(DBUserLoginRequest user, statusResponseList <DBBasicAuthority> callback) { //throw new Exception("TEST EXCEPTION"); if (callback == null) { throw new Exception("Callback must not be null"); } var httpWebRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(ServerURLs.authURL); httpWebRequest.ContentType = "application/json"; httpWebRequest.Method = "POST"; httpWebRequest.ServicePoint.ConnectionLimit = 3; httpWebRequest.Timeout = 30000; httpWebRequest.KeepAlive = false; var loginContext = new LoginContext(user); var jsonUser = JsonConvert.SerializeObject(loginContext); using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { streamWriter.Write(jsonUser); } var response = await httpWebRequest.GetResponseAsync(); string responseData = new StreamReader(response.GetResponseStream()).ReadToEnd(); httpWebRequest.Abort(); var exchangeInfo = JsonConvert.DeserializeObject <ExchengeInfo>(responseData); if (!exchangeInfo.success) { callback(false, "Login failed", "Incorrect username/password detected, please try again", null); return; } if (exchangeInfo.profiles == null || exchangeInfo.profiles.Length == 0) { callback(false, "Warning:", "You currently have no app setups available, go to your dashboard and create one!", null); return; } var localDataStore = DBLocalDataStore.GetInstance(); localDataStore.AddUserInfo(user); localDataStore.ClearBasicAuthority(); var profilesList = new List <DBBasicAuthority>(); foreach (DBBasicAuthority profile in exchangeInfo.profiles) { profilesList.Add(profile); localDataStore.AddBasicAuthority(profile); } callback(true, null, "OK", profilesList); }
public static async Task getProfiles(DBUserLoginRequest user) { var httpWebRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(ServerURLs.profilesURL); httpWebRequest.ContentType = "application/json"; httpWebRequest.Method = "POST"; httpWebRequest.ServicePoint.ConnectionLimit = 3; httpWebRequest.Timeout = 30000; httpWebRequest.KeepAlive = false; var loginContext = new LoginContext(user); var jsonUser = JsonConvert.SerializeObject(loginContext); using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { streamWriter.Write(jsonUser); } var response = await httpWebRequest.GetResponseAsync(); string responseData = new StreamReader(response.GetResponseStream()).ReadToEnd(); httpWebRequest.Abort(); var exchangeInfo = JsonConvert.DeserializeObject <ExchengeInfo>(responseData); var localDataStore = DBLocalDataStore.GetInstance(); var profilesList = new List <DBBasicAuthority>(); localDataStore.ClearBasicAuthority(); foreach (DBBasicAuthority profile in exchangeInfo.profiles) { profilesList.Add(profile); localDataStore.AddBasicAuthority(profile); } }
public LoginContext(DBUserLoginRequest user) { this.username = user.username; this.password = user.password; this.tags = new string[] { user.tags }; }