Exemplo n.º 1
0
        /// <summary>
        /// Check a new website, include the lastest log id.
        /// </summary>
        /// <param name="OldWebSite"></param>
        /// <param name="NewWebSite"></param>
        /// <param name="LatestLogId"></param>
        public static void CheckOut(SiteDb OldDb, SiteDb NewDb, long LatestLogId, bool SelfInclude = true)
        {
            foreach (var item in OldDb.ActiveRepositories())
            {
                var type = item.ModelType;
                if (Kooboo.Lib.Reflection.TypeHelper.HasInterface(item.ModelType, typeof(ICoreObject)))
                {
                    var destrepo = NewDb.GetRepository(item.StoreName);
                    if (destrepo != null)
                    {
                        item.CheckOut(LatestLogId, destrepo, true);
                    }
                }
            }

            foreach (var item in OldDb.TransferTasks.All())
            {
                NewDb.TransferTasks.AddOrUpdate(item);
            }

            var setting = Sync.ImportExport.GetSiteSetting(OldDb.WebSite);

            Sync.ImportExport.SetSiteSetting(NewDb.WebSite, setting);
            Kooboo.Data.GlobalDb.WebSites.AddOrUpdate(NewDb.WebSite);
        }