public override ServiceProviderItemDiskSpace[] GetServiceItemsDiskSpace(ServiceProviderItem[] items) { List <ServiceProviderItemDiskSpace> itemsDiskspace = new List <ServiceProviderItemDiskSpace>(); foreach (ServiceProviderItem item in items) { if (item is HomeFolder) { try { string path = item.Name; Log.WriteStart(String.Format("Calculating '{0}' folder size", path)); // calculate disk space ServiceProviderItemDiskSpace diskspace = new ServiceProviderItemDiskSpace(); diskspace.ItemId = item.Id; diskspace.DiskSpace = FileUtils.CalculateFolderSize(path); itemsDiskspace.Add(diskspace); Log.WriteEnd(String.Format("Calculating '{0}' folder size", path)); } catch (Exception ex) { Log.WriteError(ex); } } } return(itemsDiskspace.ToArray()); }
/// <summary>Calculates diskspace used by supplied service items.</summary> /// <param name="items">Service items to get diskspace usage for.</param> /// <returns>Calculated disk space usage statistics.</returns> public override ServiceProviderItemDiskSpace[] GetServiceItemsDiskSpace(ServiceProviderItem[] items) { var itemsDiskspace = new List <ServiceProviderItemDiskSpace>(); foreach (ServiceProviderItem item in items) { if (item is SharePointEnterpriseSiteCollection) { try { Log.WriteStart(String.Format("Calculating '{0}' site logs size", item.Name)); SharePointEnterpriseSiteCollection site = Enterprise_GetSiteCollection(item.Name); var diskspace = new ServiceProviderItemDiskSpace { ItemId = item.Id, DiskSpace = site.Diskspace }; itemsDiskspace.Add(diskspace); Log.WriteEnd(String.Format("Calculating '{0}' site logs size", item.Name)); } catch (Exception ex) { Log.WriteError(ex); } } } return(itemsDiskspace.ToArray()); }
public override ServiceProviderItemDiskSpace[] GetServiceItemsDiskSpace(ServiceProviderItem[] items) { List <ServiceProviderItemDiskSpace> itemsDiskspace = new List <ServiceProviderItemDiskSpace>(); // update items with diskspace foreach (ServiceProviderItem item in items) { if (item is SqlDatabase) { try { // get database details Log.WriteStart(String.Format("Calculating '{0}' database size", item.Name)); // calculate disk space ServiceProviderItemDiskSpace diskspace = new ServiceProviderItemDiskSpace(); diskspace.ItemId = item.Id; diskspace.DiskSpace = CalculateDatabaseSize(item.Name); itemsDiskspace.Add(diskspace); Log.WriteEnd(String.Format("Calculating '{0}' database size", item.Name)); } catch (Exception ex) { Log.WriteError(String.Format("Error calculating '{0}' SQL Server database size", item.Name), ex); } } } return(itemsDiskspace.ToArray()); }
/// <summary> /// Calculates diskspace used by supplied service items. /// </summary> /// <param name="items">Service items to get diskspace usage for.</param> /// <returns>Calculated disk space usage statistics.</returns> public override ServiceProviderItemDiskSpace[] GetServiceItemsDiskSpace(ServiceProviderItem[] items) { List <ServiceProviderItemDiskSpace> itemsDiskspace = new List <ServiceProviderItemDiskSpace>(); // update items with diskspace foreach (ServiceProviderItem item in items) { if (item is SharePointSiteCollection) { try { Log.WriteStart(String.Format("Calculating '{0}' site logs size", item.Name)); SharePointSiteCollection site = GetSiteCollection(item.Name); ServiceProviderItemDiskSpace diskspace = new ServiceProviderItemDiskSpace(); diskspace.ItemId = item.Id; diskspace.DiskSpace = site.Diskspace; itemsDiskspace.Add(diskspace); Log.WriteEnd(String.Format("Calculating '{0}' site logs size", item.Name)); } catch (Exception ex) { Log.WriteError(ex); } } } return(itemsDiskspace.ToArray()); }
public override ServiceProviderItemDiskSpace[] GetServiceItemsDiskSpace(ServiceProviderItem[] items) { List<ServiceProviderItemDiskSpace> itemsDiskspace = new List<ServiceProviderItemDiskSpace>(); // update items with diskspace foreach (ServiceProviderItem item in items) { if (item is WebSite) { try { Log.WriteStart(String.Format("Calculating '{0}' site logs size", item.Name)); WebSite site = GetSite(item.Name); // string logsPath = Path.Combine(site.LogsPath, site[WebSite.IIS7_SITE_ID]); // calculate disk space ServiceProviderItemDiskSpace diskspace = new ServiceProviderItemDiskSpace(); diskspace.ItemId = item.Id; diskspace.DiskSpace = -1 * FileUtils.CalculateFolderSize(logsPath); itemsDiskspace.Add(diskspace); Log.WriteEnd(String.Format("Calculating '{0}' site logs size", item.Name)); } catch (Exception ex) { Log.WriteError(ex); } } } return itemsDiskspace.ToArray(); }
public override ServiceProviderItemDiskSpace[] GetServiceItemsDiskSpace(ServiceProviderItem[] items) { List<ServiceProviderItemDiskSpace> itemsDiskspace = new List<ServiceProviderItemDiskSpace>(); // update items with diskspace foreach (ServiceProviderItem item in items) { if (item is MailAccount) { try { // get mailbox size string name = item.Name; // try to get SmarterMail postoffices path string poPath = DomainsPath; if (poPath == null) continue; string mailboxName = name.Substring(0, name.IndexOf("@")); string domainName = name.Substring(name.IndexOf("@") + 1); string mailboxPath = Path.Combine(DomainsPath, String.Format("{0}\\Users\\{1}", domainName, mailboxName)); Log.WriteStart(String.Format("Calculating '{0}' folder size", mailboxPath)); // calculate disk space ServiceProviderItemDiskSpace diskspace = new ServiceProviderItemDiskSpace(); diskspace.ItemId = item.Id; //diskspace.DiskSpace = 0; diskspace.DiskSpace = FileUtils.CalculateFolderSize(mailboxPath); itemsDiskspace.Add(diskspace); Log.WriteEnd(String.Format("Calculating '{0}' folder size", mailboxPath)); } catch (Exception ex) { Log.WriteError(ex); } } } return itemsDiskspace.ToArray(); }
public override ServiceProviderItemDiskSpace[] GetServiceItemsDiskSpace(ServiceProviderItem[] items) { List<ServiceProviderItemDiskSpace> itemsDiskspace = new List<ServiceProviderItemDiskSpace>(); // update items with diskspace foreach (ServiceProviderItem item in items) { if (item is SqlDatabase) { try { // get database details Log.WriteStart(String.Format("Calculating '{0}' database size", item.Name)); SqlDatabase db = GetDatabase(item.Name); // calculate disk space ServiceProviderItemDiskSpace diskspace = new ServiceProviderItemDiskSpace(); diskspace.ItemId = item.Id; diskspace.DiskSpace = (((long)db.DataSize) * 1024) + (((long)db.LogSize) * 1024); itemsDiskspace.Add(diskspace); Log.WriteEnd(String.Format("Calculating '{0}' database size", item.Name)); } catch (Exception ex) { Log.WriteError(String.Format("Error calculating '{0}' SQL Server database size", item.Name), ex); } } } return itemsDiskspace.ToArray(); }
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); ServiceProvider exchangeProvider = ExchangeServerController.GetExchangeServiceProvider(exchangeServiceId, item.Id); 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.HostedSharePoint)) { SharePointSiteDiskSpace[] sharePointSiteDiskSpaces = HostedSharePointServerController.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)); 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."); }
public override ServiceProviderItemDiskSpace[] GetServiceItemsDiskSpace(ServiceProviderItem[] items) { List<ServiceProviderItemDiskSpace> itemsDiskspace = new List<ServiceProviderItemDiskSpace>(); foreach (ServiceProviderItem item in items) { if (item is HomeFolder) { try { string path = item.Name; Log.WriteStart(String.Format("Calculating '{0}' folder size", path)); // calculate disk space ServiceProviderItemDiskSpace diskspace = new ServiceProviderItemDiskSpace(); diskspace.ItemId = item.Id; diskspace.DiskSpace = FileUtils.CalculateFolderSize(path); itemsDiskspace.Add(diskspace); Log.WriteEnd(String.Format("Calculating '{0}' folder size", path)); } catch (Exception ex) { Log.WriteError(ex); } } } return itemsDiskspace.ToArray(); }
public override ServiceProviderItemDiskSpace[] GetServiceItemsDiskSpace(ServiceProviderItem[] items) { List<ServiceProviderItemDiskSpace> itemsDiskspace = new List<ServiceProviderItemDiskSpace>(); // update items with diskspace foreach (ServiceProviderItem item in items) { if (item is MailAccount) { try { svcUserAdmin users = new svcUserAdmin(); PrepareProxy(users); StatInfoResult userStats = users.GetUserStats(AdminUsername, AdminPassword, item.Name, DateTime.Now, DateTime.Now); if (!userStats.Result) { throw new Exception(userStats.Message); } Log.WriteStart(String.Format("Calculating mail account '{0}' size", item.Name)); // calculate disk space ServiceProviderItemDiskSpace diskspace = new ServiceProviderItemDiskSpace(); diskspace.ItemId = item.Id; //diskspace.DiskSpace = 0; diskspace.DiskSpace = userStats.BytesSize; itemsDiskspace.Add(diskspace); Log.WriteEnd(String.Format("Calculating mail account '{0}' size", item.Name)); } catch (Exception ex) { Log.WriteError(ex); } } } return itemsDiskspace.ToArray(); }