Пример #1
0
        private dynamic UserSave(dynamic arg)
        {
            //User Information for Navigation
            var currentUser = (UserModel)Context.CurrentUser;

            var username    = (string)Request.Form.Username;
            var oldPassword = (string)Request.Form.OldPassword;
            var newPassword = (string)Request.Form.NewPassword;
            var repeat      = (string)Request.Form.Repeat;
            var email       = (string)Request.Form.Email;

            var message = "Changes saved";

            dynamic model = new ExpandoObject();

            model.Errored         = Request.Query.error.HasValue;
            model.RegisterErrored = Request.Query.repeatError.HasValue;

            model.Username    = currentUser.UserName;
            model.UserId      = currentUser.Id;
            model.UserIsAdmin = currentUser.IsAdmin;
            model.UserEmail   = currentUser.Email;

            if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(email) || newPassword != repeat)
            {
                //return Context.GetRedirect("~/login?repeatError=true");
                //error message
                message = "Username and Email must not be empty, new password and repeat must be the same";
            }
            else
            {
                if (oldPassword.CalculateMd5Hash() != currentUser.Password)
                {
                    //error message
                    message = "Password wrong";
                }
                else
                {
                    //no errors detected
                    if (string.IsNullOrEmpty(newPassword))
                    {
                        if (!UserSetting.ChangeNameAndEmail(currentUser.Id, username, email))
                        {
                            message = "Userdata could not be saved";
                        }
                    }
                    else
                    {
                        if (!UserSetting.ChangePassword(currentUser.Id, newPassword))
                        {
                            message = "Password could not be changed";
                        }
                    }
                }
            }

            model.Message = message;

            return(View["user", model]);
        }