/// <summary> /// Restore backed up previously service provider item. /// </summary> /// <param name="tempFolder">Temporary directory path.</param> /// <param name="itemNode">Serialized service provider item.</param> /// <param name="itemId">Service provider item id.</param> /// <param name="itemType">Service provider item type.</param> /// <param name="itemName">Service provider item name.</param> /// <param name="packageId">Service provider item package.</param> /// <param name="serviceId">Service provider item service id.</param> /// <param name="group">Service provider item resource group.</param> /// <returns>Resulting code.</returns> public int RestoreItem(string tempFolder, XmlNode itemNode, int itemId, Type itemType, string itemName, int packageId, int serviceId, ResourceGroupInfo group) { if (itemType == typeof(SharePointEnterpriseSiteCollection)) { HostedSharePointServerEnt hostedSharePointServer = GetHostedSharePointServer(serviceId); // Deserialize item. XmlSerializer serializer = new XmlSerializer(typeof(SharePointEnterpriseSiteCollection)); SharePointEnterpriseSiteCollection siteCollection = (SharePointEnterpriseSiteCollection)serializer.Deserialize(new XmlNodeReader(itemNode.SelectSingleNode("SharePointEnterpriseSiteCollection"))); siteCollection.PackageId = packageId; siteCollection.ServiceId = serviceId; // Create site collection if needed. if (hostedSharePointServer.Enterprise_GetSiteCollection(siteCollection.Url) == null) { hostedSharePointServer.Enterprise_CreateSiteCollection(siteCollection); } // Add metabase record if needed. SharePointEnterpriseSiteCollection metaSiteCollection = (SharePointEnterpriseSiteCollection)PackageController.GetPackageItemByName(packageId, itemName, typeof(SharePointEnterpriseSiteCollection)); if (metaSiteCollection == null) { PackageController.AddPackageItem(siteCollection); } } return(0); }
/// <summary> /// Imports selected item into metabase. /// </summary> /// <param name="packageId">Package to which items must be imported.</param> /// <param name="itemTypeId">Item type id.</param> /// <param name="itemType">Item type.</param> /// <param name="group">Item resource group.</param> /// <param name="itemName">Item name to import.</param> public void ImportItem(int packageId, int itemTypeId, Type itemType, ResourceGroupInfo group, string itemName) { // Get service id int serviceId = PackageController.GetPackageServiceId(packageId, group.GroupName); if (serviceId == 0) { return; } HostedSharePointServerEnt hostedSharePointServer = GetHostedSharePointServer(serviceId); if (itemType == typeof(SharePointEnterpriseSiteCollection)) { SharePointEnterpriseSiteCollection siteCollection = hostedSharePointServer.Enterprise_GetSiteCollection(itemName); PackageController.AddPackageItem(siteCollection); } }
/// <summary> /// Backups service item by serializing it into supplied writer. /// </summary> /// <param name="tempFolder">Temporary directory path.</param> /// <param name="writer">Xml wirter used to store backuped service provider items.</param> /// <param name="item">Service provider item to be backed up..</param> /// <param name="group">Service provider resource group.</param> /// <returns>Resulting code.</returns> public int BackupItem(string tempFolder, XmlWriter writer, ServiceProviderItem item, ResourceGroupInfo group) { SharePointEnterpriseSiteCollection siteCollection = item as SharePointEnterpriseSiteCollection; if (siteCollection != null) { HostedSharePointServerEnt hostedSharePointServer = GetHostedSharePointServer(siteCollection.ServiceId); SharePointEnterpriseSiteCollection loadedSiteCollection = hostedSharePointServer.Enterprise_GetSiteCollection(siteCollection.Url); // Update item siteCollection.Url = loadedSiteCollection.Url; siteCollection.OwnerLogin = loadedSiteCollection.OwnerLogin; siteCollection.OwnerName = loadedSiteCollection.OwnerName; siteCollection.OwnerEmail = loadedSiteCollection.OwnerEmail; siteCollection.LocaleId = loadedSiteCollection.LocaleId; siteCollection.Title = loadedSiteCollection.Title; siteCollection.Description = loadedSiteCollection.Description; // Serialize it. XmlSerializer serializer = new XmlSerializer(typeof(SharePointEnterpriseSiteCollection)); serializer.Serialize(writer, siteCollection); } return(0); }