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 | 22 |
1 files changed, 22 insertions, 0 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 16395d6bc..75e4af225 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,6 +205,28 @@ 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) + { + _notification.ShowError("The organization cannot be removed as it contains active users."); + return; + } + using (_notification.PushTaskItem("Removing organization...")) { await SelectedOrganization.DeleteCascadeAsync(_organizationsContext); |
