示例#1
0
        public async Task<ActionResult> CreateUser(FormCollection form)
        {
            try
            {
                var user = new ParseUser()
                {
                    Username = form["username"],
                    Password = form["password"],
                    Email = form["email"]
                };

                user["firstName"] = form["firstName"].ToString();
                user["lastName"] = form["lastName"].ToString();
                user["phoneNumber"] = form["phoneNumber"].ToString();
                user["address"] = form["address"].ToString();
                user["birthday"] = DateTime.Parse(form["birthday"].ToString());
                user["gender"] = bool.Parse(form["gender"]);
                user["role"] = form["role"].ToString();

                await user.SaveAsync();
                return RedirectToAction("UserList");
            }
            catch (ParseException pe)
            {
                ViewBag.Error = "Error input form " + pe.Message + " ! Please retry";
                return View();
            }
        }
        private async Task SignUp(int registrationTestScore)
        {
            ParseRole adminRole = await Constants.Role.Admin();
            var user = new ParseUser()
            {
                Username = MyRegistrationInfo.Email.ToLower(),
                Password = MyRegistrationInfo.Password,
                Email = MyRegistrationInfo.Email.ToLower(),
            };
            await user.SignUpAsync();

            ParseRole tutorRole = await Constants.Role.Tutor();
            tutorRole.Users.Add(user);
            await tutorRole.SaveAsync();

            PrivateTutorData privateTutorData = new PrivateTutorData();
            privateTutorData.BaseUserId = user.ObjectId;
            privateTutorData.Students = new List<PublicUserData>();
            privateTutorData.RequestsFromStudents = new List<PublicUserData>();
            privateTutorData.Blocked = new List<ParseUser>();
            privateTutorData.ACL = new ParseACL(user);
            privateTutorData.ACL.SetRoleReadAccess(adminRole, true);
            privateTutorData.ACL.SetRoleWriteAccess(adminRole, true);
            await privateTutorData.SaveAsync();

            Tutor tutor = new Tutor();
            tutor.NumQuestionsCreated = 0;
            tutor.NumQuestionsReviewed = 0;
            tutor.BaseUserId = user.ObjectId;
            tutor.Biography = "";
            tutor.PrivateTutorData = privateTutorData;
            tutor.ACL = new ParseACL();
            tutor.ACL.PublicReadAccess = true;
            tutor.ACL.PublicWriteAccess = false;
            tutor.ACL.SetWriteAccess(user, true);
            tutor.ACL.SetRoleReadAccess(adminRole, true);
            tutor.ACL.SetRoleWriteAccess(adminRole, true);
            await tutor.SaveAsync();

            PublicUserData publicUserData = new PublicUserData();
            publicUserData.UserType = Constants.UserType.TUTOR;
            publicUserData.DisplayName = MyRegistrationInfo.FirstName.Trim() + " " + MyRegistrationInfo.LastName.Trim();
            publicUserData.SearchableDisplayName = MyRegistrationInfo.FirstName.Trim().ToLower() + MyRegistrationInfo.LastName.Trim().ToLower();
            publicUserData.BaseUserId = user.ObjectId;
            publicUserData.Tutor = tutor;
            string path = HttpContext.Current.Server.MapPath("~/Images/default_prof_pic.png");
            byte[] pic = File.ReadAllBytes(path);
            publicUserData.ProfilePic = new ParseFile("default-profile-pic", pic);
            publicUserData.ACL = new ParseACL();
            publicUserData.ACL.PublicReadAccess = true;
            publicUserData.ACL.PublicWriteAccess = false;
            publicUserData.ACL.SetWriteAccess(user, true);
            publicUserData.ACL.SetRoleReadAccess(adminRole, true);
            publicUserData.ACL.SetRoleWriteAccess(adminRole, true);
            await publicUserData.SaveAsync();

            user["registrationTestScore"] = registrationTestScore;
            user.ACL = new ParseACL(user);
            user.ACL.SetRoleReadAccess(adminRole, true);
            user["publicUserData"] = publicUserData;
            //user.phoneNumber = tbPhoneNumber.Text;
            //user.zipCode = tbZipCode.Text;
            //user.address = tbStreetAddress.Text;
            //user.address2 = tbAddress2.Text;
            //user.city = tbCity.Text;
            //user.state = ddState.SelectedValue;
            await user.SaveAsync();
        }
        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;
                    }

                }
                
            }
        }
    IEnumerator registerUserAsync(string username)
    {
        ParseUser user = new ParseUser()
        {
            Username = username,
            Password = username
        };

        foreach (UserValues.Value val in userValues.coreValues.Concat(userValues.customValues))
        {
            user[val.name] = null;
            if (val.isList)
            {
                user[val.name] = new List<object>();
            } else
            {
                if (val.type == UserValues.FIELD_TYPE.TYPE_boolean)
                {
                    user[val.name] = false;
                }
                if (val.type == UserValues.FIELD_TYPE.TYPE_String)
                {
                    user[val.name] = "";
                    if (val.inputField != null)
                    {
                        user[val.name] = val.inputField.text;
                    }
                }
                if (val.type == UserValues.FIELD_TYPE.TYPE_Integer)
                {
                    user[val.name] = 0;
                }
            }
        }

        user[UserValues.ACTIVE] = true;

        Task signUpTask = user.SignUpAsync();
        signUpTask.ContinueWith(t =>
        {
            Debug.Log("success register user? " + !t.IsFaulted );
        });
        while (!signUpTask.IsCompleted) yield return null;

        ParseObject timeTable = new ParseObject("Timetable");
        timeTable["user"] = user;
        timeTable[UserValues.NICK] = userNickInput.GetComponent<InputField>().text;
        foreach (string time in times)
        {
            timeTable[time] = false;
        }

        Task saveTimetableTask = timeTable.SaveAsync();
        saveTimetableTask.ContinueWith(t =>
        {
            Debug.Log("success save user in time table? " + !t.IsFaulted);
        });
        while (!saveTimetableTask.IsCompleted) yield return null;

        ParseUser.CurrentUser[UserValues.TIMETABLE] = timeTable;
        Task saveUserInTimeTable = ParseUser.CurrentUser.SaveAsync();
        saveUserInTimeTable.ContinueWith(t =>
        {
            Debug.Log("success save time table in user? " + !t.IsFaulted);
        });
        while (!saveUserInTimeTable.IsCompleted) yield return null;

        user[UserValues.LAST_LOGIN] = DateTime.Now;
        user.SaveAsync();

        ParseInstallation.CurrentInstallation["user"] = ParseUser.CurrentUser;
        Task saveUserInInstallation = ParseInstallation.CurrentInstallation.SaveAsync();
        saveUserInInstallation.ContinueWith(t =>
        {
            Debug.Log("success save user in installation? " + !t.IsFaulted);
        });
        while (!saveUserInInstallation.IsCompleted) yield return null;
    }
 private Task conversationAdded(ParseUser user, ParseUser partner)
 {
     Debug.Log("add conversation  ");
     List<ParseUser> partners = partnerList;
         //getUserPartners(user);
     if (!listContainsPartner(partners,partner))
     {
         Debug.Log("added partner");
         partners.Add(partner);
         user[UserValues.PARTNERS] = partners;
         return user.SaveAsync();
     }
     return null;
 }
示例#6
0
 /// <summary>
 /// Send the unsent locations to the server.
 /// </summary>
 /// <param name="user">the user whose location data is to be sent</param>
 /// <returns>true if successful</returns>
 public async Task<bool> SendLocations(ParseUser user)
 {
     Queue<GeoPosition<GeoCoordinate>> temp = new Queue<GeoPosition<GeoCoordinate>>();
     if (QueueSize() == 0)
         return true;
     try
     {
         await user.FetchIfNeededAsync();
         while (QueueSize() > 0)
         {
             GeoPosition<GeoCoordinate> last = Dequeue();
             temp.Enqueue(last);
             Utilities.SaveLocationToParseUser(user, last);
         }
         await user.SaveAsync();
     }
     catch (Exception e)
     {
         Debug.WriteLine("Failed to send the unsent locations");
         Debug.WriteLine(e.ToString());
         while (temp.Count > 0)
         {
             Enqueue(temp.Dequeue());
         }
         Save();
         return false;
     }
     Save();
     return true;
 }