public void ImportSite() { Mediachase.Commerce.Core.Dto.AppDto dto = Mediachase.Commerce.Core.Managers.AppManager.GetApplicationDto("eCommerceFramework"); //import data FileStream stream = File.Open(String.Format(ResultsPath + "{0}.site", "Default Sample Site"), FileMode.Open); ImportExportHelper importExportHelper = new ImportExportHelper(); importExportHelper.ImportSite(stream, dto.Application[0].ApplicationId, Guid.Empty, false); stream.Close(); }
public void ContentSystem_ImportExportSite() { Guid[] siteIDs; Guid applicationId = AppContext.Current.ApplicationId; ImportExportHelper importExportHelper = new ImportExportHelper(); //import data using (FileStream stream = File.Open("SiteExport-B2C.xml", FileMode.Open)) { siteIDs = importExportHelper.ImportSite(stream, applicationId, Guid.Empty, false); } Guid siteId = siteIDs[0]; FileStream fs = new FileStream("Content_SiteExport.xml", FileMode.Create, FileAccess.ReadWrite); importExportHelper.ExportSite(siteId, fs); SiteDto siteDto = CMSContext.Current.GetSiteDto(siteId); // delete menus MenuDto menuDto = MenuManager.GetMenuDto(siteId); if (menuDto.Menu.Rows.Count > 0) { foreach (MenuDto.MenuRow menuRow in menuDto.Menu.Rows) { menuRow.Delete(); } } if (menuDto.HasChanges()) { MenuManager.SaveMenuDto(menuDto); } // delete folders and pages int rootId = FileTreeItem.GetRoot(siteId); FileTreeItem.DeleteFileItem(rootId); //delete site siteDto.Site[0].Delete(); CMSContext.Current.SaveSite(siteDto); }
/// <summary> /// Saves the changes. /// </summary> /// <param name="context">The context.</param> public void SaveChanges(IDictionary context) { SiteDto dto = (SiteDto)context[_SiteDtoDestinationString]; SiteDto.SiteRow row = null; if (dto.Site != null && dto.Site.Count > 0) { row = dto.Site[0]; } else { if (!String.IsNullOrEmpty(SiteTemplatesList.SelectedValue)) { // create site from template FileStream fs = new FileStream(SiteTemplatesList.SelectedValue, FileMode.Open, FileAccess.Read); ImportExportHelper helper = new ImportExportHelper(); Guid[] ids = helper.ImportSite(fs, mc.CmsConfiguration.Instance.ApplicationId, Guid.Empty, true); if (ids.Length > 0) { context[_SiteDtoDestinationString] = mc.CMSContext.Current.GetSiteDto(ids[0], true); dto = (SiteDto)context[_SiteDtoDestinationString]; if (dto.Site.Count > 0) { row = dto.Site[0]; } else { throw new Exception(String.Format("Could not load the site after importing. id={0}", ids[0])); } } else { throw new Exception("Import function did not return siteId."); } } else { row = dto.Site.NewSiteRow(); row.SiteId = Guid.NewGuid(); row.ApplicationId = mc.CmsConfiguration.Instance.ApplicationId; } } row.Name = SiteName.Text; row.Description = SiteDescription.Text; row.IsActive = IsSiteActive.IsSelected; row.IsDefault = IsSiteDefault.IsSelected; row.Folder = SiteFolder.Text; row.Domain = SiteDomains.Text; if (row.RowState == DataRowState.Detached) { dto.Site.Rows.Add(row); /* * * SiteDto.ApplicationSiteRow appRow = dto.ApplicationSite.NewApplicationSiteRow(); * appRow.SiteId = row.SiteId; * appRow.ApplicationId = CatalogConfiguration.ApplicationId; * dto.ApplicationSite.Rows.Add(appRow); * */ } // Populate languages // Remove existing languages foreach (SiteDto.SiteLanguageRow langRow in dto.SiteLanguage.Rows) { if (langRow.RowState == DataRowState.Deleted) { continue; } bool found = false; foreach (ListItem item in LanguageList.RightItems) { if (item.Value.Equals(langRow.LanguageCode)) { found = true; break; } } if (!found) { langRow.Delete(); } } foreach (ListItem item in LanguageList.RightItems) { bool exists = false; foreach (SiteDto.SiteLanguageRow langRow in dto.SiteLanguage.Rows) { if (langRow.RowState != DataRowState.Deleted) { if (langRow.LanguageCode.Equals(item.Value)) { exists = true; } } } if (!exists) { SiteDto.SiteLanguageRow langRow = dto.SiteLanguage.NewSiteLanguageRow(); langRow.SiteId = row.SiteId; langRow.LanguageCode = item.Value; dto.SiteLanguage.Rows.Add(langRow); } } }