예제 #1
0
        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());
        }
예제 #2
0
        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"] = "******";
        }
예제 #3
0
        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_();
                }
            });
        }
예제 #4
0
        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;
                    }
                }
            }
        }