private void ProcessUserForm(EditUserForm userForm, IUser user, IUserInfo userInfo) { var login = userForm.Login; var password = userForm.Password; var isManager = userForm.IsManager; if (string.IsNullOrWhiteSpace(password)) { userForm.ShowError("Введите пароль!"); } else if (string.IsNullOrWhiteSpace(login)) { userForm.ShowError("Введите логин!"); } else { if (user != null) { if (login == user.Login || !_adminService.ContainsUser(login)) { _adminService.DeleteUser(userInfo.UserId); CreateUser(login, password, isManager); userForm.DialogResult = DialogResult.OK; employeeSource.ResetBindings(false); employeeSource.ResetCurrentItem(); } else { userForm.ShowError("Такой пользователь уже есть в системе"); } } else { if (_adminService.ContainsUser(login)) { userForm.ShowError("Такой пользователь уже есть в системе"); } else { CreateUser(login, password, isManager); userForm.DialogResult = DialogResult.OK; employeeSource.ResetBindings(false); employeeSource.ResetCurrentItem(); } } } }
private void assignUserButton_Click(object sender, EventArgs e) { var currentEmployee = (EmployeeWrapperItem)employeeSource.Current; var userInfo = currentEmployee.UserInfo; IUser user = null; if (userInfo != null) { switch (userInfo.Type) { case UserType.Employee: user = _adminService.GetEmployeeUserById(userInfo.UserId); break; case UserType.Manager: user = _adminService.GetManagerUserById(userInfo.UserId); break; default: throw new ConstraintException("userInfo contains only Employee or Manager type"); } } var editUserForm = new EditUserForm(); if (userInfo != null) { editUserForm.IsManager = (userInfo.Type == UserType.Manager); editUserForm.Login = user.Login; editUserForm.Password = user.Password; } editUserForm.Confirmed += (s, a) => ProcessUserForm((EditUserForm)s, user, userInfo); editUserForm.ShowDialog(); }