コード例 #1
0
        public bool AddNewUser(CreateUserInfo newUserInfo)
        {
            VisDashboardDataDataContext db = new VisDashboardDataDataContext();

            using (TransactionScope ts = new TransactionScope())
            {
                try
                {
                    // Lookup the role ID
                    Role desiredRole = null;
                    var  query       = from p in db.Roles where p.RoleName == newUserInfo.UserInRole select p;

                    try
                    {
                        desiredRole = query.Single();
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Could not process user role.", "User Creation Failed", MessageBoxButton.OK, MessageBoxImage.Error);
                        return(false);
                    }

                    // Try to add new user to database
                    User newUser = new User {
                        Username = newUserInfo.Username, Password = newUserInfo.Password
                    };
                    UserInRole newUserInRole = new UserInRole
                    {
                        ApplicationName = "DashboardPermissionTool",
                        RoleID          = desiredRole.RoleID
                    };

                    newUserInRole.User = newUser;
                    db.UserInRoles.InsertOnSubmit(newUserInRole);
                    db.SubmitChanges();
                    ts.Complete();
                }
                catch (SqlException e)
                {
                    if (e.Message.Contains("Violation of UNIQUE KEY constraint 'U_Username'. Cannot insert duplicate key in object 'dbo.User'"))
                    {
                        MessageBox.Show("This user already exists.", "User Creation Failed", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                    else
                    {
                        MessageBox.Show("Database Error: " + e.Message, "User Creation Failed", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                    return(false);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                    return(false);
                }
            }

            return(true);
        }
コード例 #2
0
ファイル: UserDataModel.cs プロジェクト: wshanshan/DDD
        public bool AddNewUser(CreateUserInfo newUserInfo)
        {
            VisDashboardDataDataContext db = new VisDashboardDataDataContext();

            using (TransactionScope ts = new TransactionScope())
            {
                try
                {
                    // Lookup the role ID
                    Role desiredRole = null;
                    var query = from p in db.Roles where p.RoleName == newUserInfo.UserInRole select p;

                    try
                    {
                        desiredRole = query.Single();
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Could not process user role.", "User Creation Failed", MessageBoxButton.OK, MessageBoxImage.Error);
                        return false;
                    }

                    // Try to add new user to database
                    User newUser = new User { Username = newUserInfo.Username, Password = newUserInfo.Password };
                    UserInRole newUserInRole = new UserInRole
                        {
                            ApplicationName = "DashboardPermissionTool",
                            RoleID = desiredRole.RoleID                            
                        };

                    newUserInRole.User = newUser;
                    db.UserInRoles.InsertOnSubmit(newUserInRole);
                    db.SubmitChanges();
                    ts.Complete();
                }
                catch (SqlException e)
                {
                    if (e.Message.Contains("Violation of UNIQUE KEY constraint 'U_Username'. Cannot insert duplicate key in object 'dbo.User'"))
                    {
                        MessageBox.Show("This user already exists.", "User Creation Failed", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                    else
                    {
                        MessageBox.Show("Database Error: " + e.Message, "User Creation Failed", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                    return false;
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                    return false;
                }
            }

            return true;
        }
コード例 #3
0
        private void addUserMenuItem_Click(object sender, RoutedEventArgs e)
        {
            // Create new user information
            CreateUserInfo newUserInfo = new CreateUserInfo();

            // Instantiate the dialog box
            CreateUserDialog dlg = new CreateUserDialog();

            // Configure the dialog box
            dlg.Owner = this;
            dlg.DataContext = newUserInfo;
            newUserInfo.Username = "";

            // Open the dialog box modally 
            dlg.ShowDialog();

            // Process data entered by user if dialog box is accepted
            if (dlg.DialogResult == true)
            {
                // Try to add this new user to the database
                if (userDataModel.AddNewUser(newUserInfo))
                {
                }
                else
                {
                }
            }
        }