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