diff options
| author | Victoria Plitt <Victoria.Plitt@twine-s.com> | 2021-01-19 13:08:27 +0200 |
|---|---|---|
| committer | Victoria Plitt <Victoria.Plitt@twine-s.com> | 2021-01-19 13:08:27 +0200 |
| commit | c536bc430907a15bb5bd4d8c0c1fec0934d5a9c8 (patch) | |
| tree | fed2aa28af290a877ea53891bc5e59c68fa60ca2 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels | |
| parent | 18e79aebd6cb8269b31520ddbc93aaf0aa4b4591 (diff) | |
| download | Tango-c536bc430907a15bb5bd4d8c0c1fec0934d5a9c8.tar.gz Tango-c536bc430907a15bb5bd4d8c0c1fec0934d5a9c8.zip | |
MS. Check organization's connections to users, machines, sites before deleting. Simple query to db.
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels')
| -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); |
