public async void Register(object sender, EventArgs e) { WebService conn = new WebService(); Login lg = (Login)BindingContext; Login toSend = new Login(); toSend.Email = lg.Email; toSend.Username = lg.Username; //Encrypt password with and Update Login Object to send on webservice var salt = Crypto.CreateSalt(64); var encrypted = Crypto.EncryptToSend(lg.Password,salt); toSend.Password = encrypted; var response = await conn.PerformRegister (toSend,salt); if(response != null) { var dataReceived = response[0]; if(dataReceived.result.Equals("True")){ await DisplayAlert("Successfull", "Registration Complete.","OK"); await Navigation.PopAsync(); } else{ await DisplayAlert("Error", dataReceived.error,"OK"); } } }
public async void ListView_Refreshing (object sender, EventArgs e) { WebService conn = new WebService (); var dbUpdated = await conn.GetData(App.Current.Properties["key"] as string); DependencyService.Get<ISQLite>().OverrideDatabase(dbUpdated[0].data); listView.ItemsSource = App.Database.GetBets (); listView.EndRefresh (); }
//Here you will receive all push notification messages //Messages arrives as a dictionary, the device type is also sent in order to check specific keys correctly depending on the platform. public async void OnMessage(IDictionary<string, object> Parameters, DeviceType deviceType) { Debug.WriteLine("Message Arrived"); //UPDATE ALL BETS FROM CLOUD WebService conn = new WebService (); var dbUpdated = await conn.GetData(App.Current.Properties["key"] as string); DependencyService.Get<ISQLite>().OverrideDatabase(dbUpdated[0].data); Debug.WriteLine("Data UPDATED"); IEnumerable<Bet> allBets = App.Database.GetBets ().ToList (); List<Dictionary<string, dynamic>> rep2 = null; rep2 = await conn.GetResults (App.Current.Properties ["key"] as string); var msg = JsonConvert.DeserializeObject<HelperAPI>(rep2[0]["drawn"]); Bet Sorteio = new Bet (); //Parse string[] to string string numbersFinal = ""; string starsFinal = ""; int counter = 0; foreach (string n in msg.numbers) { if (counter != 4) { numbersFinal += n + "-"; } else { numbersFinal += n; } } counter = 0; foreach (string s in msg.stars) { if (counter != 1) { starsFinal += s + "-"; } else { starsFinal += s; } } Sorteio.Numbers = numbersFinal; Sorteio.Stars = starsFinal; Sorteio.Date = DateTime.Now.ToString (); BetResult BetRes = new BetResult (); foreach (Bet b in allBets) { //Consoante resultado da funcao checkPrize(); if (b.Status.Equals("WAIT")) { //Consoante resultado da funcao checkPrize(); if (BetRes.checkPrize (b, Sorteio)) { b.Status = "WIN"; } else { b.Status = "LOSS"; } App.Database.SaveBet (b); } } }
public async void Login(object sender, EventArgs e) { try { WebService conn = new WebService(); Login lg = (Login)BindingContext; Login toSend = new Login(); toSend.Email = lg.Email; toSend.Username = lg.Username; var saltResponse = await conn.GetSalt(lg.Username); byte[] userSalt = null; if(saltResponse != null) { var saltData = saltResponse[0]; if(saltData.salt != null){ //Workaround - decoder for b64 string r1 = saltData.salt.Replace('-','+'); string r2 = r1.Replace('_','/'); string finalB64 = r2.Replace(',','='); userSalt = System.Convert.FromBase64String(finalB64); } else{ await DisplayAlert("Error", "This username does not exist","OK"); } } else{ await DisplayAlert("Error", "This username does not exist", "OK"); } //Encrypt password with and Update Login Object to send on webservice toSend.Password = Crypto.EncryptToSend(lg.Password, userSalt); var response = await conn.PerformLogin (toSend); if(response != null) { var dataReceived = response[0]; if(dataReceived.result.Equals("True")){ App.Current.Properties["key"] = dataReceived.key; var userID = await conn.GetID(dataReceived.key,toSend.Username); if(userID[0].id != null){ App.Current.Properties["id"] = userID[0].id as string; } var pushToken = conn.SendToken(Application.Current.Properties ["key"] as string,Application.Current.Properties ["token"] as string); App.Current.MainPage = new Homepage(); } else{ await DisplayAlert("Error", "Invalid Login/Password","OK"); } } } catch (Exception exc) { DisplayAlert("Error",exc.Message,"OK"); } }
async void Btn2_Clicked (object sender, EventArgs e) { try{ WebService conn = new WebService (); string token = Application.Current.Properties ["key"] as string; var response = await conn.RequestOCR (imgByte,token); if(response != null) { var dataReceived = response[0]; if(dataReceived.result.Equals("True")){ await DisplayAlert("Message", "Your photo has been sucessfully sent","OK"); bool _done = false; List<Dictionary<string, dynamic>> rep2 = null; await App.Sleep(2000); while(!_done){ rep2 = await conn.GetTicket(token, dataReceived.request); var responseResult = rep2[0]["result"]; if(!responseResult.Equals("WAIT")) { _done = true; } else { await App.Sleep(1000); } } var combinationResult = rep2[0]["response"]; var msg = JsonConvert.DeserializeObject<HelperAPI>(rep2[0]["response"]); await conn.DeleteTicket(token, dataReceived.request); if(rep2[0]["result"]) { await DisplayAlert("Message", "Ticket Received","OK"); //Move to AddPage var BetObject = new Bet(); var BetPage = new BetPage(); BetObject.Date = DateTime.Now.ToString (); //Parse string[] to string string numbersFinal = ""; string starsFinal = ""; int counter = 0; foreach (string n in msg.numbers) { if(counter != 4){ numbersFinal +=n+"-"; } else {numbersFinal +=n; } } counter = 0; foreach (string s in msg.stars) { if(counter != 1){ starsFinal +=s+"-"; }else{ starsFinal +=s; } } BetObject.Numbers = numbersFinal; BetObject.Stars = starsFinal; BetPage.BindingContext = BetObject; Navigation.PushAsync(BetPage); } else{ await DisplayAlert("Message", "Some error ocurred" ,"OK"); } } else{ await DisplayAlert("Error", "Deu merda amigo","OK"); } } } catch(Exception exc){ DisplayAlert("Error",exc.Message,"OK"); } }