diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/ExchangeServer/ExchangeServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/ExchangeServer/ExchangeServerController.cs index 530a56d2..2b3fef03 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/ExchangeServer/ExchangeServerController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/ExchangeServer/ExchangeServerController.cs @@ -586,6 +586,7 @@ namespace WebsitePanel.EnterpriseServer List acceptedDomains = GetOrganizationDomains(itemId); int exchangeServiceId = GetExchangeServiceID(org.PackageId); + ExchangeServer exchange = GetExchangeServer(exchangeServiceId, org.ServiceId); bool successful = exchange.DeleteOrganization( @@ -599,6 +600,18 @@ namespace WebsitePanel.EnterpriseServer org.AddressBookPolicy, acceptedDomains.ToArray()); + // delete public folders + if (successful) + { + List folders = GetAccounts(itemId, ExchangeAccountType.PublicFolder); + folders.Sort(delegate(ExchangeAccount f1, ExchangeAccount f2) { return f2.AccountId.CompareTo(f1.AccountId);}); + + foreach(ExchangeAccount folder in folders) + DeletePublicFolder(itemId, folder.AccountId); + + exchange.DeletePublicFolder(org.OrganizationId, "\\" + org.OrganizationId); + } + return successful ? 0 : BusinessErrorCodes.ERROR_EXCHANGE_DELETE_SOME_PROBLEMS; }