Exemplo n.º 1
0
        public OrganizationUser[] GetOrganizationUsersPaged(int itemId,
                                                            string filterColumn, string filterValue,
                                                            int maximumRows, int startRowIndex, string sortColumn)
        {
            if (!String.IsNullOrEmpty(filterValue))
            {
                filterValue = filterValue + "%";
            }
            if (maximumRows == 0)
            {
                maximumRows = Int32.MaxValue;
            }

            users = ES.Services.Organizations.GetOrganizationUsersPaged(itemId, filterColumn, filterValue, sortColumn, startRowIndex, maximumRows);

            return(users.PageUsers);
        }
        public int DeleteOrganization(int itemId)
        {
            // domain
            List <string> domainsList             = new List <string>();
            List <OrganizationDomainName> domains = OrganizationController.GetOrganizationDomains(itemId);

            foreach (OrganizationDomainName domain in domains)
            {
                domainsList.Add(domain.DomainName);
            }

            // users
            List <string>          usersList = new List <string>();
            OrganizationUsersPaged users     = OrganizationController.GetOrganizationUsersPaged(itemId, null, null, null, 0, 100000000);

            foreach (OrganizationUser user in users.PageUsers)
            {
                usersList.Add(user.PrimaryEmailAddress);
            }

            int res = OrganizationController.DeleteOrganization(itemId);

            return(res);
        }
Exemplo n.º 3
0
        public int DeletePackage(int packageId)
        {
            List <string> usersList   = new List <string>();
            List <string> domainsList = new List <string>();

            PackageInfo package = PackageController.GetPackage(packageId);

            // get package service items
            List <ServiceProviderItem> items = PackageController.GetServiceItemsForStatistics(
                0, package.PackageId, false, false, false, true); // disposable items

            // order items by service
            Dictionary <int, List <ServiceProviderItem> > orderedItems =
                PackageController.OrderServiceItemsByServices(items);

            int  maxItems          = 100000000;
            bool mailFilterEnabled = false;

            // delete service items by service sets
            foreach (int serviceId in orderedItems.Keys)
            {
                ServiceInfo service = ServerController.GetServiceInfo(serviceId);
                //Delete Exchange Organization
                if (service.ProviderId == 103 /*Organizations*/)
                {
                    int itemid = orderedItems[serviceId][0].Id;
                    OrganizationUsersPaged users    = OrganizationController.GetOrganizationUsersPaged(itemid, null, null, null, 0, maxItems);
                    StringDictionary       settings = ServerController.GetServiceSettings(serviceId);
                    if (settings != null && Convert.ToBoolean(settings["EnableMailFilter"]))
                    {
                        mailFilterEnabled = true;
                        foreach (OrganizationUser user in users.PageUsers)
                        {
                            SpamExpertsController.DeleteEmailFilter(packageId, user.PrimaryEmailAddress);
                        }
                    }
                }
            }
            if (mailFilterEnabled)
            {
                List <DomainInfo> domains = ServerController.GetDomains(packageId);
                foreach (DomainInfo domain in domains)
                {
                    SpamExpertsController.DeleteDomainFilter(domain);
                }
            }

            //Get VPS Package IPs
            PackageIPAddress[] ips = ServerController.GetPackageIPAddresses(packageId, 0,
                                                                            IPAddressPool.VpsExternalNetwork, "", "", "", 0, maxItems, true).Items;
            List <int> ipsIdList = new List <int>();

            foreach (PackageIPAddress ip in ips)
            {
                ipsIdList.Add(ip.AddressID);
            }

            //Delete Package
            int res = PackageController.DeletePackage(packageId);

            if (res >= 0)
            {
                // users
                //foreach (string user in usersList)
                //SEPlugin.SE.DeleteEmail(user);

                //domain
                //foreach (string domain in domainsList)
                //SEPlugin.SE.DeleteDomain(domain);

                //return IPs back to ParentPackage
                if (package.ParentPackageId != 1) // 1 is System (serveradmin), we don't want assign IP to the serveradmin.
                {
                    ServerController.AllocatePackageIPAddresses(package.ParentPackageId, ipsIdList.ToArray());
                }
            }

            return(res);
        }