コード例 #1
0
ファイル: DataArchiverTest.cs プロジェクト: zhuwansu/Rafy
        private void Archive(AggregationArchiveContext context)
        {
            context.OrignalDataDbSettingName = DbSettingName;
            context.BackUpDbSettingName      = BackUpDbSettingName;

            var archiver = this.CreateAggregationArchiver();

            archiver.Archive(context);
        }
コード例 #2
0
ファイル: DataArchiverTest.cs プロジェクト: zhangwenquan/Rafy
        public void DAT_EntityList_Migration()
        {
            //聚合实体
            var repo = RF.ResolveInstance <InvoiceRepository>();

            using (RF.TransactionScope(BackUpDbSettingName))
                using (RF.TransactionScope(DbSettingName))
                {
                    var invoiceList = new InvoiceList
                    {
                        new Invoice()
                        {
                            InvoiceItemList =
                            {
                                new InvoiceItem(),
                                new InvoiceItem(),
                            }
                        },
                        new Invoice()
                        {
                            InvoiceItemList =
                            {
                                new InvoiceItem(),
                                new InvoiceItem(),
                            }
                        },
                        new Invoice(),
                        new Invoice()
                    };

                    RF.Save(invoiceList);

                    Assert.AreEqual(repo.GetAll().Count, 4, "新增 Invoice 数目为4");

                    var context = new AggregationArchiveContext
                    {
                        OrignalDataDbSettingName = DbSettingName,
                        BackUpDbSettingName      = BackUpDbSettingName,
                        BatchSize             = 2,
                        DateOfArchiving       = DateTime.Now.AddMinutes(2),
                        AggregationsToArchive = new List <Type> {
                            typeof(Invoice)
                        }
                    };
                    var migrationSvc = new AggregationArchiver();
                    migrationSvc.Archive(context);

                    Assert.AreEqual(repo.GetAll().Count, 0, "执行数据归档后 Invoice 数目为 0");

                    using (RdbDataProvider.RedirectDbSetting(DbSettingName, BackUpDbSettingName))
                    {
                        Assert.AreEqual(repo.GetAll().Count, 4, "数据归档数据库 Invoice 数目为 4");
                    }
                }
        }
コード例 #3
0
ファイル: DataArchiverTest.cs プロジェクト: zhuwansu/Rafy
        //[TestMethod]
        //public void DAT_Copy_Insert()
        //{
        //    throw new NotImplementedException();//huqf
        //}

        //[TestMethod]
        //public void DAT_Copy_Insert_Aggt()
        //{
        //    throw new NotImplementedException();//huqf
        //}

        //[TestMethod]
        //public void DAT_Copy_Update()
        //{
        //    throw new NotImplementedException();//huqf
        //}

        //[TestMethod]
        //public void DAT_Copy_Update_Aggt()
        //{
        //    throw new NotImplementedException();//huqf
        //}

        /// <summary>
        /// 执行数据接口。
        /// </summary>
        /// <param name="items"></param>
        private void Archive(List <ArchiveItem> items)
        {
            var context = new AggregationArchiveContext
            {
                BatchSize       = 2,
                DateOfArchiving = DateTime.Now.AddMinutes(1),
                ItemsToArchive  = items
            };

            this.Archive(context);
        }
コード例 #4
0
ファイル: DataArchiverTest.cs プロジェクト: zhangwenquan/Rafy
        public void DAT_TreeEntity_Migration()
        {
            //树形实体带聚合子

            var repo = RF.ResolveInstance <FolderRepository>();

            using (RF.TransactionScope(BackUpDbSettingName))
                using (RF.TransactionScope(DbSettingName))
                {
                    RF.Save(new Folder
                    {
                        Name         = "001.",
                        FileList     = { new File(), new File() },
                        TreeChildren =
                        {
                            new Folder
                            {
                                TreeChildren ={ new Folder()                    }
                            }
                        }
                    });
                    Assert.AreEqual(repo.GetAll().Count, 1, "树形实体只查根实体 Folder 数目为1");

                    var context = new AggregationArchiveContext
                    {
                        OrignalDataDbSettingName = DbSettingName,
                        BackUpDbSettingName      = BackUpDbSettingName,
                        BatchSize             = 2,
                        DateOfArchiving       = DateTime.Now.AddMinutes(2),
                        AggregationsToArchive = new List <Type> {
                            typeof(Folder)
                        }
                    };
                    var migrationSvc = new AggregationArchiver();
                    migrationSvc.Archive(context);

                    Assert.AreEqual(repo.GetAll().Count, 0, "执行数据归档后 Folder 数目为 0");

                    using (RdbDataProvider.RedirectDbSetting(DbSettingName, BackUpDbSettingName))
                    {
                        Assert.AreEqual(repo.GetAll().Count, 1, "归档数据库 Folder 数目为 3");
                        Assert.AreEqual(repo.GetAll()[0].FileList.Count, 2, "归档数据库聚合子 File 数目为 2");
                    }
                }
        }