Esempio n. 1
0
        private static void PopulateSharePointEnterpriseItem(Organization org, EnterpriseSolutionStatisticsReport report, string topReseller)
        {
            List <SharePointEnterpriseSiteCollection> siteCollections;

            try
            {
                siteCollections = HostedSharePointServerEntController.GetSiteCollections(org.Id);
            }
            catch (Exception ex)
            {
                throw new ApplicationException(string.Format("Could not get site collections. OrgId: {0}", org.Id), ex);
            }

            if (siteCollections == null || siteCollections.Count == 0)
            {
                return;
            }


            HostedSharePointServerEnt srvEnt;

            try
            {
                int serviceId = GetHostedSharePointEntServiceId(org.PackageId);
                srvEnt = GetHostedSharePointServerEnt(serviceId);
            }
            catch (Exception ex)
            {
                throw new ApplicationException(
                          string.Format("Could not get sharepoint enterprise server. PackageId: {0}", org.PackageId), ex);
            }

            foreach (SharePointEnterpriseSiteCollection siteCollection in siteCollections)
            {
                try
                {
                    SharePointEnterpriseStatistics stats = new SharePointEnterpriseStatistics();
                    PopulateBaseItem(stats, org, topReseller);

                    stats.SiteCollectionUrl   = siteCollection.PhysicalAddress;
                    stats.SiteCollectionOwner = siteCollection.OwnerName;
                    stats.SiteCollectionQuota = siteCollection.MaxSiteStorage;

                    stats.SiteCollectionCreated = siteCollection.CreatedDate;

                    stats.SiteCollectionSize = srvEnt.Enterprise_GetSiteCollectionSize(siteCollection.PhysicalAddress);

                    report.SharePointEnterpriseReport.Items.Add(stats);
                }
                catch (Exception ex)
                {
                    TaskManager.WriteError(ex);
                }
            }
        }
 public List <SharePointEnterpriseSiteCollection> Enterprise_GetSiteCollections(int packageId, bool recursive)
 {
     return(HostedSharePointServerEntController.GetSiteCollections(packageId, recursive));
 }
 public int Enterprise_SetStorageSettings(int itemId, int maxStorage, int warningStorage, bool applyToSiteCollections)
 {
     return(HostedSharePointServerEntController.SetStorageSettings(itemId, maxStorage, warningStorage, applyToSiteCollections));
 }
 public SharePointEnterpriseSiteCollectionListPaged Enterprise_GetSiteCollectionsPaged(int packageId, int organizationId,
                                                                                       string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows)
 {
     return(HostedSharePointServerEntController.GetSiteCollectionsPaged(packageId, organizationId, filterColumn, filterValue,
                                                                        sortColumn, startRow, maximumRows));
 }
 public int[] Enterprise_GetSupportedLanguages(int packageId)
 {
     return(HostedSharePointServerEntController.GetSupportedLanguages(packageId));
 }
 public SharePointSiteDiskSpace[] Enterprise_CalculateSharePointSitesDiskSpace(int itemId, out int errorCode)
 {
     return(HostedSharePointServerEntController.CalculateSharePointSitesDiskSpace(itemId, out errorCode));
 }
 public void Enterprise_UpdateQuota(int itemId, int siteCollectionId, int maxSize, int warningSize)
 {
     HostedSharePointServerEntController.UpdateQuota(itemId, siteCollectionId, maxSize, warningSize);
 }
 public byte[] Enterprise_GetBackupBinaryChunk(int itemId, string path, int offset, int length)
 {
     return(HostedSharePointServerEntController.GetBackupBinaryChunk(itemId, path, offset, length));
 }
 public string Enterprise_AppendBackupBinaryChunk(int itemId, string fileName, string path, byte[] chunk)
 {
     return(HostedSharePointServerEntController.AppendBackupBinaryChunk(itemId, fileName, path, chunk));
 }
 public string Enterprise_BackupSiteCollection(int itemId, string fileName, bool zipBackup, bool download, string folderName)
 {
     return(HostedSharePointServerEntController.BackupSiteCollection(itemId, fileName, zipBackup, download, folderName));
 }
 public int Enterprise_RestoreSiteCollection(int itemId, string uploadedFile, string packageFile)
 {
     return(HostedSharePointServerEntController.RestoreSiteCollection(itemId, uploadedFile, packageFile));
 }
 public int Enterprise_DeleteSiteCollections(int organizationId)
 {
     HostedSharePointServerEntController.DeleteSiteCollections(organizationId);
     return(0);
 }
 public int Enterprise_DeleteSiteCollection(int itemId)
 {
     return(HostedSharePointServerEntController.DeleteSiteCollection(itemId));
 }
 public int Enterprise_AddSiteCollection(SharePointEnterpriseSiteCollection item)
 {
     return(HostedSharePointServerEntController.AddSiteCollection(item));
 }
 public SharePointEnterpriseSiteCollection Enterprise_GetSiteCollection(int itemId)
 {
     return(HostedSharePointServerEntController.GetSiteCollection(itemId));
 }
Esempio n. 16
0
        public ServiceProviderItemDiskSpace[] CalculateItems(int serviceId, List <ServiceProviderItem> items)
        {
            // convert items to SoapObjects
            List <SoapServiceProviderItem> objItems = new List <SoapServiceProviderItem>();

            //hack for organization... Refactoring!!!


            List <ServiceProviderItemDiskSpace> organizationDiskSpaces = new List <ServiceProviderItemDiskSpace>();

            foreach (ServiceProviderItem item in items)
            {
                long size = 0;
                if (item is Organization)
                {
                    Organization org = (Organization)item;

                    //Exchange DiskSpace
                    if (!string.IsNullOrEmpty(org.GlobalAddressList))
                    {
                        int exchangeServiceId = GetExchangeServiceID(org.PackageId);
                        if (exchangeServiceId > 0)
                        {
                            ServiceProvider exchangeProvider = ExchangeServerController.GetExchangeServiceProvider(exchangeServiceId, item.ServiceId);

                            SoapServiceProviderItem        soapOrg        = SoapServiceProviderItem.Wrap(org);
                            ServiceProviderItemDiskSpace[] itemsDiskspace =
                                exchangeProvider.GetServiceItemsDiskSpace(new SoapServiceProviderItem[] { soapOrg });

                            if (itemsDiskspace != null && itemsDiskspace.Length > 0)
                            {
                                size += itemsDiskspace[0].DiskSpace;
                            }
                        }
                    }

                    // Crm DiskSpace
                    if (org.CrmOrganizationId != Guid.Empty)
                    {
                        //CalculateCrm DiskSpace
                    }

                    //SharePoint DiskSpace

                    int res;

                    PackageContext cntx = PackageController.GetPackageContext(org.PackageId);

                    if (cntx.Groups.ContainsKey(ResourceGroups.SharepointFoundationServer))
                    {
                        SharePointSiteDiskSpace[] sharePointSiteDiskSpaces =
                            HostedSharePointServerController.CalculateSharePointSitesDiskSpace(org.Id, out res);
                        if (res == 0)
                        {
                            foreach (SharePointSiteDiskSpace currecnt in sharePointSiteDiskSpaces)
                            {
                                size += currecnt.DiskSpace;
                            }
                        }
                    }

                    if (cntx.Groups.ContainsKey(ResourceGroups.SharepointEnterpriseServer))
                    {
                        SharePointSiteDiskSpace[] sharePointSiteDiskSpaces =
                            HostedSharePointServerEntController.CalculateSharePointSitesDiskSpace(org.Id, out res);
                        if (res == 0)
                        {
                            foreach (SharePointSiteDiskSpace currecnt in sharePointSiteDiskSpaces)
                            {
                                size += currecnt.DiskSpace;
                            }
                        }
                    }

                    ServiceProviderItemDiskSpace tmp = new ServiceProviderItemDiskSpace();
                    tmp.ItemId    = item.Id;
                    tmp.DiskSpace = size;
                    organizationDiskSpaces.Add(tmp);
                }
                else
                {
                    objItems.Add(SoapServiceProviderItem.Wrap(item));
                }
            }


            int attempt  = 0;
            int ATTEMPTS = 3;

            while (attempt < ATTEMPTS)
            {
                // increment attempt
                attempt++;

                try
                {
                    // send packet for calculation
                    // invoke service provider
                    //TaskManager.Write(String.Format("{0} - Invoke GetServiceItemsDiskSpace method ('{1}' items) - {2} attempt",
                    //    DateTime.Now, objItems.Count, attempt));

                    if (objItems.Count > 0)
                    {
                        ServiceProvider prov = new ServiceProvider();
                        ServiceProviderProxy.Init(prov, serviceId);
                        ServiceProviderItemDiskSpace[] itemsDiskSpace = prov.GetServiceItemsDiskSpace(objItems.ToArray());
                        if (itemsDiskSpace != null && itemsDiskSpace.Length > 0)
                        {
                            organizationDiskSpaces.AddRange(itemsDiskSpace);
                        }
                    }

                    return(organizationDiskSpaces.ToArray());
                }
                catch (Exception ex)
                {
                    TaskManager.WriteError(ex.ToString());
                }
            }

            throw new Exception("The number of attemtps has been reached. The package calculation has been aborted.");
        }