public UsersListViewExtended() { InitializeComponent(); btEdit.IsEnabled = btChangePass.IsEnabled = false; listView.SelectionChanged += (ctrl) => btChangePass.IsEnabled = btEdit.IsEnabled = listView.SelectedUsersIds.Any(); btChangePass.Click += (o, e) => { var userId = listView.SelectedUsersIds.First(); var user = _repository.Users.First(x => x.Id.Equals(userId)); EditUserPasswordView.Show(() => { _repository.Save(user); _server.RevokeToken(user.Login); }, (args) => { if (args.Password.Length < 6) { args.Message = "Длина пароля должна быть не менее 6 символов"; args.Success = false; } else { args.Success = true; } }, user); }; btEdit.Click += (o, e) => { var userId = listView.SelectedUsersIds.First(); var user = _repository.Users.First(x => x.Id.Equals(userId)); var prevLogin = user.Login; EditUserView.Show( () => { _repository.Save(user); _server.RevokeToken(prevLogin); listView.Refresh(user); }, (args) => { if (_repository.Users.Any(x => x.Login.Equals(args.Login) && !x.Id.Equals(user.Id))) { args.Message = "Пользователь с таким логином уже существует"; args.Success = false; } else if (_repository.Users.Any(x => x.Name.Equals(args.Name) && !x.Id.Equals(user.Id))) { args.Message = "Пользователь с таким именем уже существует"; args.Success = false; } else { args.Success = true; } }, user); }; }
public UsersListView() { InitializeComponent(); Refresh(); itemsView.SelectionChanged += (o, e) => SelectionChanged?.Invoke(this); btAdd.Click += (o, e) => { var user = new User(); EditUserView.Show( () => { EditUserPasswordView.Show(() => { _repository.Add(user); AddInternal(user); }, (args) => { if (args.Password.Length < 6) { args.Message = "Длина пароля должна быть не менее 6 символов"; args.Success = false; } else { args.Success = true; } }, user); }, (args) => { if (_repository.Users.Any(x => x.Login.Equals(args.Login))) { args.Message = "Пользователь с таким логином уже существует"; args.Success = false; } else if (_repository.Users.Any(x => x.Name.Equals(args.Name))) { args.Message = "Пользователь с таким именем уже существует"; args.Success = false; } else { args.Success = true; } }, user); }; btRemove.Click += (o, e) => { MessageView.ShowYesNo("Вы уверены что хотите удалить выбранных пользователей?", "Удаление пользователей", Icons.Icon.UserDelete, (result) => { if (result) { var selectedUsers = SelectedUsersIds; foreach (var user in selectedUsers) { Remove(_repository.Users.First(x => x.Id.Equals(user))); } } }); }; SelectionChanged += (ctrl) => btRemove.IsEnabled = SelectedUsersIds.Any(); }