Exemple #1
0
        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();
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        /// <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);
                }
            }
        }