diff options
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.cs | 45 |
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); |
