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); } }