diff --git a/.idea/.idea.UserService/.idea/indexLayout.xml b/.idea/.idea.UserService/.idea/indexLayout.xml
new file mode 100644
index 0000000..27ba142
--- /dev/null
+++ b/.idea/.idea.UserService/.idea/indexLayout.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.UserService/.idea/modules.xml b/.idea/.idea.UserService/.idea/modules.xml
new file mode 100644
index 0000000..9ed9bc0
--- /dev/null
+++ b/.idea/.idea.UserService/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.UserService/.idea/projectSettingsUpdater.xml b/.idea/.idea.UserService/.idea/projectSettingsUpdater.xml
new file mode 100644
index 0000000..4bb9f4d
--- /dev/null
+++ b/.idea/.idea.UserService/.idea/projectSettingsUpdater.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.UserService/.idea/vcs.xml b/.idea/.idea.UserService/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/.idea.UserService/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.UserService/riderModule.iml b/.idea/.idea.UserService/riderModule.iml
new file mode 100644
index 0000000..19473e1
--- /dev/null
+++ b/.idea/.idea.UserService/riderModule.iml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/UserService.DatabaseLayer/DataModels/Node.cs b/UserService.DatabaseLayer/DataModels/Node.cs
index 881ad38..c5b63f1 100644
--- a/UserService.DatabaseLayer/DataModels/Node.cs
+++ b/UserService.DatabaseLayer/DataModels/Node.cs
@@ -52,7 +52,7 @@ namespace UserService.DatabaseLayer.DataModels
public Node? Parent { get; set; } //Parent
public int? ParentId { get; set; }
- public override string ToString() => $"[{GetType().Name}] {Id:D5} {CommonName}";
+ public override string ToString() => CommonName;
public int Level => Parent?.Level + 1 ?? 0;
diff --git a/UserService.DatabaseLayer/Repository/BaseRepository.cs b/UserService.DatabaseLayer/Repository/BaseRepository.cs
index 32065b7..2df2c97 100644
--- a/UserService.DatabaseLayer/Repository/BaseRepository.cs
+++ b/UserService.DatabaseLayer/Repository/BaseRepository.cs
@@ -38,11 +38,12 @@ namespace UserService.DatabaseLayer.Repository
await db.SaveChangesAsync(token);
}
- public async Task UpdateAsync(T entity, CancellationToken token = default)
+ public async Task UpdateAsync(T entity, CancellationToken token = default)
{
await using var db = new UserServiceDbContext();
Context(db).Update(entity);
- await db.SaveChangesAsync(token);
+ var items= await db.SaveChangesAsync(token);
+ return items > 0;
}
public async Task DeleteAsync(T entity, CancellationToken token = default)
diff --git a/UserService.DatabaseLayer/Repository/IRepository.cs b/UserService.DatabaseLayer/Repository/IRepository.cs
index 189c21a..5a95ac4 100644
--- a/UserService.DatabaseLayer/Repository/IRepository.cs
+++ b/UserService.DatabaseLayer/Repository/IRepository.cs
@@ -13,7 +13,7 @@ namespace UserService.DatabaseLayer.Repository
Task> GetAllAsync(Expression>? predicate = null, CancellationToken token = default);
Task GetAsync(Expression> predicate, CancellationToken token = default);
Task AddAsync(T entity, CancellationToken token = default);
- Task UpdateAsync(T entity, CancellationToken token = default);
+ Task UpdateAsync(T entity, CancellationToken token = default);
Task DeleteAsync(T entity, CancellationToken token = default);
}
diff --git a/UserService.db b/UserService.db
index 52aa9e5..dd1435b 100644
Binary files a/UserService.db and b/UserService.db differ
diff --git a/UserService/Pages/Users.razor b/UserService/Pages/Users.razor
index a0cfbc3..d420664 100644
--- a/UserService/Pages/Users.razor
+++ b/UserService/Pages/Users.razor
@@ -12,7 +12,7 @@
}
else
{
-
+
@@ -29,7 +29,7 @@ else
-
+
}
\ No newline at end of file
diff --git a/UserService/Pages/Users.razor.cs b/UserService/Pages/Users.razor.cs
index 0c712a9..cc16240 100644
--- a/UserService/Pages/Users.razor.cs
+++ b/UserService/Pages/Users.razor.cs
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Blazorise.DataGrid;
+using Microsoft.JSInterop;
using UserService.DatabaseLayer.DataModels;
using UserService.DatabaseLayer.Repository;
@@ -12,8 +13,7 @@ namespace UserService.Pages
[Inject] private IUsersRepository UsersRepository { get; set; } = null!;
[Inject] private IOrganizationUnitsRepository OrganizationUnitsRepository { get; set; } = null!;
- protected bool DialogIsOpen { get; set; }
- protected User? UserToEdit { get; private set; }
+ [Inject] private IJSRuntime JsRuntime { get; set; } = null!;
protected IReadOnlyList? Users { get; private set; }
protected IReadOnlyList? OrganizationUnits { get; private set; }
@@ -24,29 +24,31 @@ namespace UserService.Pages
OrganizationUnits = await OrganizationUnitsRepository.GetAllAsync().ConfigureAwait(false);
}
- protected void EditUser(User user)
+ protected async Task RowInsertedCallback(SavedRowItem> arg)
{
- DialogIsOpen = true;
- UserToEdit = user;
- }
-
- protected async Task OkClick()
- {
- if (UserToEdit is null) return;
- await UsersRepository.UpdateAsync(UserToEdit).ConfigureAwait(false);
- DialogIsOpen = false;
- }
-
- protected async Task DeleteUser(User user)
- {
- await UsersRepository.DeleteAsync(user).ConfigureAwait(false);
- }
-
- protected async Task RowInsertedCallback(SavedRowItem> obj)
- {
- var user = obj.Item;
+ var user = arg.Item;
user.ParentId = -2;
await UsersRepository.AddAsync(user);
}
+
+ protected async Task RowDeletingCallback(CancellableRowChange arg)
+ {
+ var confirmed = await JsRuntime.InvokeAsync("confirm",
+ $"You are about to delete the user {arg.Item.FullName}. Are you sure?").ConfigureAwait(false);
+ if (confirmed)
+ {
+ await UsersRepository.DeleteAsync(arg.Item).ConfigureAwait(false);
+ return;
+ }
+
+ arg.Cancel = true;
+ }
+
+ protected async Task RowUpdatingCallback(CancellableRowChange> arg)
+ {
+ var result = await UsersRepository.UpdateAsync(arg.Item);
+ arg.Cancel = !result;
+ }
+
}
}
\ No newline at end of file