public static ExchangeItemStatistics[] GetPublicFoldersStatistics(int itemId)
        {
            #region Demo Mode
            if (IsDemoMode)
            {
                List<ExchangeItemStatistics> items = new List<ExchangeItemStatistics>();
                ExchangeItemStatistics item1 = new ExchangeItemStatistics();
                item1.ItemName = "\\fabrikam\\Documents";
                item1.TotalItems = 6;
                item1.TotalSizeMB = 56;
                item1.LastModificationTime = DateTime.Now;
                item1.LastAccessTime = DateTime.Now;
                items.Add(item1);

                ExchangeItemStatistics item2 = new ExchangeItemStatistics();
                item2.ItemName = "\\fabrikam\\Documents\\Legal";
                item2.TotalItems = 5;
                item2.TotalSizeMB = 4;
                item2.LastModificationTime = DateTime.Now;
                item2.LastAccessTime = DateTime.Now;
                items.Add(item2);

                ExchangeItemStatistics item3 = new ExchangeItemStatistics();
                item3.ItemName = "\\fabrikam\\Documents\\Contracts";
                item3.TotalItems = 8;
                item3.TotalSizeMB = 2;
                item3.LastModificationTime = DateTime.Now;
                item3.LastAccessTime = DateTime.Now;
                items.Add(item3);

                return items.ToArray();
            }
            #endregion

            // place log record
            TaskManager.StartTask("EXCHANGE", "GET_FOLDERS_STATS", itemId);

            try
            {
                Organization org = GetOrganization(itemId);
                if (org == null)
                    return null;

                // get the list of all public folders
                List<string> folderNames = new List<string>();
                List<ExchangeAccount> folders = GetAccounts(itemId, ExchangeAccountType.PublicFolder);
                foreach (ExchangeAccount folder in folders)
                    folderNames.Add(folder.DisplayName);

                // get stats
                int exchangeServiceId = GetExchangeServiceID(org.PackageId);
                ExchangeServer exchange = GetExchangeServer(exchangeServiceId, org.ServiceId);
                return exchange.GetPublicFoldersStatistics(org.OrganizationId, folderNames.ToArray());
            }
            catch (Exception ex)
            {
                throw TaskManager.WriteError(ex);
            }
            finally
            {
                TaskManager.CompleteTask();
            }
        }
        public static ExchangeItemStatistics[] GetMailboxesStatistics(int itemId)
        {
            #region Demo Mode
            if (IsDemoMode)
            {
                List<ExchangeItemStatistics> items = new List<ExchangeItemStatistics>();
                ExchangeItemStatistics item1 = new ExchangeItemStatistics();
                item1.ItemName = "John Smith";
                item1.TotalItems = 105;
                item1.TotalSizeMB = 14;
                item1.LastLogon = DateTime.Now;
                item1.LastLogoff = DateTime.Now;
                items.Add(item1);

                ExchangeItemStatistics item2 = new ExchangeItemStatistics();
                item2.ItemName = "Jack Brown";
                item2.TotalItems = 5;
                item2.TotalSizeMB = 2;
                item2.LastLogon = DateTime.Now;
                item2.LastLogoff = DateTime.Now;
                items.Add(item2);

                ExchangeItemStatistics item3 = new ExchangeItemStatistics();
                item3.ItemName = "Marry Smith";
                item3.TotalItems = 1302;
                item3.TotalSizeMB = 45;
                item3.LastLogon = DateTime.Now;
                item3.LastLogoff = DateTime.Now;
                items.Add(item3);

                return items.ToArray();
            }
            #endregion

            // place log record
            TaskManager.StartTask("EXCHANGE", "GET_MAILBOXES_STATS", itemId);

            try
            {
                Organization org = GetOrganization(itemId);
                if (org == null)
                    return null;


                // get stats
                int exchangeServiceId = GetExchangeServiceID(org.PackageId);
                ExchangeServer exchange = GetExchangeServer(exchangeServiceId, org.ServiceId);

                return exchange.GetMailboxesStatistics(org.DistinguishedName);
            }
            catch (Exception ex)
            {
                throw TaskManager.WriteError(ex);
            }
            finally
            {
                TaskManager.CompleteTask();
            }
        }