public async Task <bool> Signup(User user, byte[] profilePicture) { try { var newUser = new ParseUser() { Email = user.Email, Username = user.Email, Password = user.Password, }; newUser.Add("name", user.Name); if (profilePicture != null) { ParseFile file = new ParseFile("profilePicture.jpg", profilePicture); await file.SaveAsync(); newUser.Add("profilePicture", file); } await newUser.SignUpAsync(); } catch (ParseException pex) { string exMessage; if (pex.Code == ParseException.ErrorCode.UsernameTaken) { exMessage = pex.Message; } else if (pex.Code == ParseException.ErrorCode.EmailTaken) { exMessage = pex.Message; } else { exMessage = pex.Message; } AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.AppContext); alert.SetTitle(AppConfig.ApplicationName); alert.SetMessage(exMessage); alert.SetPositiveButton("OK", (senderAlert, args) => { }); alert.Show(); } catch (InvalidOperationException inv) { AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.AppContext); alert.SetTitle(AppConfig.ApplicationName); alert.SetMessage(inv.Message); alert.SetPositiveButton("OK", (senderAlert, args) => { }); alert.Show(); } catch (Exception ex) { AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.AppContext); alert.SetTitle(AppConfig.ApplicationName); alert.SetMessage(ex.Message); alert.SetPositiveButton("OK", (senderAlert, args) => { }); alert.Show(); } return(IsLoggedIn()); }
public void TestImmutableKeys() { ParseUser user = new ParseUser(); string[] immutableKeys = new string[] { "sessionToken", "isNew" }; foreach (var key in immutableKeys) { Assert.Throws <InvalidOperationException>(() => user[key] = "1234567890" ); Assert.Throws <InvalidOperationException>(() => user.Add(key, "1234567890") ); Assert.Throws <InvalidOperationException>(() => user.AddRangeUniqueToList(key, new string[] { "1234567890" }) ); Assert.Throws <InvalidOperationException>(() => user.Remove(key) ); Assert.Throws <InvalidOperationException>(() => user.RemoveAllFromList(key, new string[] { "1234567890" }) ); } // Other special keys should be good user["username"] = "******"; user["password"] = "******"; }
public void SignUp(AuthData authData_, Action onSuccess_, Action onFail_) { ParseUser user = new ParseUser(); user.Add("Username", authData_.username); user.Add("Email", authData_.email); user.Add("Password", authData_.password); user.SignUpAsync().ContinueWith((Task task_) => { if (task_.IsCanceled || task_.IsFaulted) { onFail_(); } else { onSuccess_(); } }); }
private async void register(object sender, RoutedEventArgs e) { string name_c = name.Text; string mail = email.Text; string fecha = Fecha_Nacimiento.Date.Day + "/" + Fecha_Nacimiento.Date.Month + "/" + Fecha_Nacimiento.Date.Year; int s = sex.SelectedIndex; string sexo = ""; switch (s) { case 0: sexo = "Hombre"; break; case 1: sexo = "Mujer"; break; } string userr = user.Text; string passs = pass.Password; string re_passs = re_pass.Password; int cont_error = 0; if (name_c.Equals("") || userr.Equals("") || passs.Equals("") || re_passs.Equals("") || mail.Equals("")) { Errors.Text = "Por favor llene todos los campos."; Errors.Visibility = Visibility.Visible; var margin = panel.Margin; margin.Top = -17; panel.Margin = margin; cont_error = 1; } if (!passs.Equals(re_passs)) { Errors.Text = "Las contraseñas deben conicidir."; Errors.Visibility = Visibility.Visible; var margin = panel.Margin; margin.Top = -17; panel.Margin = margin; cont_error = 1; } if (cont_error == 0) { try { PrgRing.Visibility = Visibility.Visible; panel.Visibility = Visibility.Collapsed; if (photo == null) { var packageLocation = Windows.ApplicationModel.Package.Current.InstalledLocation; var assetsFolder = await packageLocation.GetFolderAsync("Assets"); if (sexo.Equals("Mujer")) { photo = await assetsFolder.GetFileAsync("mujer.jpg"); } else { photo = await assetsFolder.GetFileAsync("hombre.jpg"); } } var bytes = await GetBtyeFromFile(photo); ParseFile parseFile = new ParseFile(userr + ".jpg", bytes, "image/jpeg"); ParseUser user = new ParseUser() { Username = userr, Password = passs, Email = mail }; // other fields can be set just like with ParseObject user["name"] = name_c; user["sex"] = sexo; user["b_date"] = fecha; user.Add("photo", null); await user.SignUpAsync(); PrgRing.Visibility = Visibility.Collapsed; user["photo"] = parseFile; await user.SaveAsync(); await ParseUser.LogInAsync(userr, passs); Accept.Visibility = Visibility.Visible; await Task.Delay(2000); Frame rootFrame = Window.Current.Content as Frame; rootFrame.Navigate(typeof(MainPage)); } catch (Exception ex) { PrgRing.Visibility = Visibility.Collapsed; panel.Visibility = Visibility.Visible; string error = ex.Message; if (error.Contains("username")) { Errors.Text = "El usuario " + userr + " ya se encuentra registrado."; Errors.Visibility = Visibility.Visible; var margin = panel.Margin; margin.Top = -17; panel.Margin = margin; cont_error = 1; } if (error.Contains("email")) { Errors.Text = "El correo electrónico " + mail + " ya se encuentra registrado."; Errors.Visibility = Visibility.Visible; var margin = panel.Margin; margin.Top = -17; panel.Margin = margin; cont_error = 1; } } } }