Add delete commands to ManageUsersDisplay

This commit is contained in:
2021-01-23 14:35:44 +01:00
parent 25c9ee5771
commit b7436ed451
3 changed files with 43 additions and 3 deletions

View File

@@ -79,6 +79,19 @@ namespace Akari.Provider.WaveshareUART.Users
return false; return false;
} }
public bool Remove(IEnumerable<User> users)
{
foreach (var user in users)
{
if (!Remove(user))
{
return false;
}
}
return true;
}
public bool Clear() public bool Clear()
{ {
_users.Clear(); _users.Clear();

View File

@@ -54,7 +54,7 @@ namespace Akari.Provider.WaveshareUART.Views
}; };
_listView.OpenSelectedItem += ListView_OpenSelectedItem; _listView.OpenSelectedItem += ListView_OpenSelectedItem;
_listView.SetSource(UsersManager.Users.ToList()); UpdateList();
var addButton = new Button("_Add") var addButton = new Button("_Add")
{ {
@@ -87,6 +87,13 @@ namespace Akari.Provider.WaveshareUART.Views
win.Add(_listView, addButton, deleteButton, deleteAllButton, quitButton); win.Add(_listView, addButton, deleteButton, deleteAllButton, quitButton);
} }
private void UpdateList()
{
_listView.SetSource(UsersManager.Users.ToList());
_listView.SetFocus();
}
private void ListView_OpenSelectedItem(ListViewItemEventArgs item) private void ListView_OpenSelectedItem(ListViewItemEventArgs item)
{ {
@@ -99,14 +106,32 @@ namespace Akari.Provider.WaveshareUART.Views
private void DeleteButton_Clicked() private void DeleteButton_Clicked()
{ {
var marked = UsersManager.Users.Where((item, index) => _listView.Source.IsMarked(index)); var marked = UsersManager.Users.Where((_, index) => _listView.Source.IsMarked(index)).ToHashSet();
MessageBox.Query("Selected", string.Join(", ", marked), "Ok"); if (UsersManager.Remove(marked))
{
MessageBox.Query("Delete Users", $"Successfully deleted {marked.Count} user{(marked.Count > 1 ? "s" : "")}", "Ok");
}
else
{
MessageBox.ErrorQuery("Delete Users", "Can't delete all selected users", "Ok");
}
UpdateList();
} }
private void DeleteAllButton_Clicked() private void DeleteAllButton_Clicked()
{ {
if (UsersManager.Clear())
{
MessageBox.Query("Delete Users", $"Successfully deleted all users", "Ok");
}
else
{
MessageBox.Query("Delete Users", $"Can't delete all users", "Ok");
}
UpdateList();
} }
} }
} }

View File

@@ -208,6 +208,8 @@ namespace Akari.Provider.WaveshareUART.Views
private void ManageUsersButton_Clicked() private void ManageUsersButton_Clicked()
{ {
Application.Run(new ManageUsersDisplay()); Application.Run(new ManageUsersDisplay());
UpdateUserCount();
} }
private void ChangeConfig() private void ChangeConfig()