aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs45
1 files changed, 26 insertions, 19 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs
index 75e4af225..9143f50a8 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs
@@ -205,28 +205,35 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels
{
if (_notification.ShowQuestion("Are you sure you want to remove " + SelectedOrganization.Name + " organization?"))
{
- Organization selectedToRemoveOrganization = null;
- await Task.Factory.StartNew(() =>
- {
- _manageContext = ObservablesContext.CreateDefault();
- selectedToRemoveOrganization = new OrganizationBuilder(_manageContext).Set(SelectedOrganization.Guid).WithUsers(true).WithMachines().WithSites().Build();
- });
- if (selectedToRemoveOrganization != null && selectedToRemoveOrganization.Machines.Count > 0)
- {
- _notification.ShowError("The organization cannot be removed as it contains Machines.");
- return;
- }
- if (selectedToRemoveOrganization != null && selectedToRemoveOrganization.Sites.Count > 0)
- {
- _notification.ShowError("The organization cannot be removed as it contains Sites.");
- return;
- }
- if (selectedToRemoveOrganization != null && selectedToRemoveOrganization.Users.Count(x => x.OrganizationGuid == SelectedOrganization.Guid && x.Deleted == false) > 0)
+
+ using (ObservablesContext db = ObservablesContext.CreateDefault())
{
- _notification.ShowError("The organization cannot be removed as it contains active users.");
- return;
+ var usersCount = db.Users.Count(x => x.OrganizationGuid == SelectedOrganization.Guid);
+
+ if (usersCount > 0)
+ {
+ _notification.ShowError($"The organization cannot be removed as it contains {usersCount} users.");
+ return;
+ }
+
+ var machinesCount = db.Machines.Count(x => x.OrganizationGuid == SelectedOrganization.Guid);
+
+ if (machinesCount > 0)
+ {
+ _notification.ShowError($"The organization cannot be removed as it contains {machinesCount} machines.");
+ return;
+ }
+
+ var sitesCount = db.Sites.Count(x => x.OrganizationGuid == SelectedOrganization.Guid);
+
+ if (sitesCount > 0)
+ {
+ _notification.ShowError($"The organization cannot be removed as it contains {sitesCount} sites.");
+ return;
+ }
}
+
using (_notification.PushTaskItem("Removing organization..."))
{
await SelectedOrganization.DeleteCascadeAsync(_organizationsContext);