示例#1
0
        public void Set(User model)
        {
            try
            {
                //Проверяем, есть ли уже такой логин в СУБД , если нет - запрашиваем для нового пароль, он будет создан
                switch (DatabaseUtility.ExecStorageProcWithReturnValue("sp_CheckLogin", new List <SqlParameter>
                {
                    new SqlParameter("@UserName", model.UserName)
                }))
                {
                case -1:      // нет ни логина ни пользователя
                case 1:       //нет логина
                {
                    PasswordWindow pwdWindow = new PasswordWindow();
                    foreach (Window window in System.Windows.Application.Current.Windows)
                    {
                        if (window is RecordWindow)
                        {
                            pwdWindow.Owner = window;
                        }
                    }
                    if (pwdWindow.ShowDialog() == true)
                    {
                        model.UserPassword = pwdWindow.Password;
                    }
                    else
                    {
                        throw new Exception("PwdEnterCancelled");
                    }
                    break;
                }

                case 0:        //нет пользователя
                {
                    break;
                }

                case 2:     //есть и пользователь и логин
                {
                    MessageBox.Show("Такой пользователь уже есть", "Внимание!", MessageBoxButton.OK, MessageBoxImage.Asterisk);
                    break;
                }
                }

                DatabaseUtility.ExecStorageProc("sp_CreateUserMSSQL2005",
                                                new List <SqlParameter>
                {
                    new SqlParameter("@Name", (object)model.Name ?? DBNull.Value),
                    new SqlParameter("@Position", (object)model.Position ?? DBNull.Value),
                    new SqlParameter("@UserName", model.UserName),
                    new SqlParameter("@Password", (object)model.UserPassword ?? DBNull.Value),
                    new SqlParameter("@AccessToRegion", (object)model.AccessToRegion ?? DBNull.Value),
                    new SqlParameter("@AccessToBook", (object)model.AccessToBook ?? DBNull.Value)
                });
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message == "PwdEnterCancelled" ? "Создание пользователя отменено" : e.Message);
            }
        }