protected void btnBackUp_Click(object sender, EventArgs e) { Timer1.Enabled = true; SetBtnEnable(false); SetDownloadFileDisplay(false); BackUpStatus bus = new BackUpStatus(); Session["DtStatus"] = bus; TransferRule tr = RulesPool.FindRuleByName(ddlAllRules.SelectedItem.Text); if (tr != null) { if (tr.GetNeedTimeFilter()) { DateTime startTime; DateTime endTime; if (!DateTime.TryParse(txtStartTime.Text, out startTime) || !DateTime.TryParse(txtEndTime.Text, out endTime)) { lblMessage.Text = _TimeNeed; Message.Visible = true; return; } TryRunBackUp(startTime, endTime, bus); } else { TryRunBackUp(null, null, bus); } } }
public void Test2() { //写配置 TransferRule tr = ApplicationFilterTest.MakeTransferRule(); TransferConfig.WriteConfig(tr, new DateTime(1999, 1, 1), new DateTime(2099, 12, 11)); //模拟用户的下载上传操作 CommandRunner.CopyToFile(DiskOperations.DataTemp_ForBackUpDirectory + "config.txt", DiskOperations.DataTemp_ForRestoreDirectory + "config.txt"); //读配置 DateTime?startTime; DateTime?endTime; string theRuleString; string theRuleName = TransferConfig.ReadConfig(DiskOperations.DataTemp_ForBackUpDirectory, out theRuleString, out startTime, out endTime); //验证配置 Console.WriteLine(theRuleName); Assert.AreEqual("新建数据迁移策略", theRuleName); Assert.AreEqual(startTime, new DateTime(1999, 1, 1)); Assert.AreEqual(endTime, new DateTime(2099, 12, 11)); Console.WriteLine(theRuleString); Assert.AreEqual(tr.MakeString(), theRuleString); //清理 CommandRunner.CleanUpDirectory(DiskOperations.DataTemp_ForBackUpDirectory); CommandRunner.CleanUpDirectory(DiskOperations.DataTemp_ForRestoreDirectory); }
public void Test1() { Dictionary <string, string> theReadData = new Dictionary <string, string>(); theReadData.Add("全部数据", "Sep_Release1670:[TAccount(AccountFilter)][TAccountAuth];Hrmis_Release1670:[TLeaveRequest][TLeaveRequestItem(LeaveRequestItemFilter)][TLeaveRequestFlow]"); List <TransferRule> theConvertedRules = RuleConverter.Convert(theReadData); //第一个规则 Assert.AreEqual(1, theConvertedRules.Count); TransferRule theRule = theConvertedRules[0]; Assert.AreEqual("全部数据", theRule.RuleName); Assert.AreEqual(2, theRule.DbsToTransfer.Count); //第一个数据库 Assert.AreEqual("Sep_Release1670", theRule.DbsToTransfer[0].DbName); Assert.AreEqual(2, theRule.DbsToTransfer[0].TablesToTransfer.Count); Assert.AreEqual("TAccount", theRule.DbsToTransfer[0].TablesToTransfer[0].TableName); Assert.AreEqual("AccountFilter", theRule.DbsToTransfer[0].TablesToTransfer[0].TableFilterName); Assert.AreEqual("TAccountAuth", theRule.DbsToTransfer[0].TablesToTransfer[1].TableName); Assert.AreEqual("", theRule.DbsToTransfer[0].TablesToTransfer[1].TableFilterName); //第二个数据库 Assert.AreEqual("Hrmis_Release1670", theRule.DbsToTransfer[1].DbName); Assert.AreEqual(3, theRule.DbsToTransfer[1].TablesToTransfer.Count); Assert.AreEqual("TLeaveRequest", theRule.DbsToTransfer[1].TablesToTransfer[0].TableName); Assert.AreEqual("", theRule.DbsToTransfer[1].TablesToTransfer[0].TableFilterName); Assert.AreEqual("TLeaveRequestItem", theRule.DbsToTransfer[1].TablesToTransfer[1].TableName); Assert.AreEqual("LeaveRequestItemFilter", theRule.DbsToTransfer[1].TablesToTransfer[1].TableFilterName); Assert.AreEqual("TLeaveRequestFlow", theRule.DbsToTransfer[1].TablesToTransfer[2].TableName); Assert.AreEqual("", theRule.DbsToTransfer[1].TablesToTransfer[2].TableFilterName); }
private void SelectRuleChanged() { TransferRule tr = GetCurrentSelectedRule(); if (tr != null) { SetTimeParameterDisplay(tr.GetNeedTimeFilter()); } }
private string PrintAllTableInfo(TransferRule aTr) { StringBuilder retVal = new StringBuilder(); retVal.AppendLine(SqlCommandRunner.GetTableInfo(aTr.DbsToTransfer[0].TablesToTransfer[0].TableName, _TempDbName)); retVal.AppendLine(SqlCommandRunner.GetTableInfo(aTr.DbsToTransfer[0].ProtectTableNames[0], _TempDbName)); retVal.AppendLine(SqlCommandRunner.GetTableInfo(aTr.DbsToTransfer[0].ProtectTableNames[1], _TempDbName)); return(retVal.ToString()); }
protected void btnRuleToString_Click(object sender, EventArgs e) { TransferRule tr = GetCurrentSelectedRule(); if (tr != null) { txtRunningDetails.Text = tr.ToString(); } }
protected void btnRuleToString_Click(object sender, EventArgs e) { if (Session["UploadTarget"] == null || string.IsNullOrEmpty(Session["UploadTarget"].ToString())) { lblMessage.Text = _NeedRarFile; Message.Visible = true; return; } TransferRule tr = ParseRarFile(); if (tr != null) { txtRunningDetails.Text = tr.ToString(); } }
public static TransferRule MakeTransferRule() { TransferRule aMockRule = new TransferRule(); aMockRule.RuleName = "新建数据迁移策略"; DbTransfer dt = new DbTransfer(); dt.DbName = _RestoreDbName; TableTransfer tt = new TableTransfer(); tt.TableName = _MainTableName; dt.AddTransferTable(tt); aMockRule.DbsToTransfer.Add(dt); return(aMockRule); }
private void SelectRuleChanged() { string ruleName = ddlAllRules.SelectedItem.Text; if (string.IsNullOrEmpty(ruleName)) { return; } TransferRule tr = RulesPool.FindRuleByName(ruleName); if (tr != null) { SetTimeParameterDisplay(tr.GetNeedTimeFilter()); } }
public void Test3() { TransferRule aTr = MakeTransferRule(); ITableFilter theTarget = new TLeaveRequestFilter.TLeaveRequestFilter(); theTarget.ConfigTheFilter(aTr, _MainTableName, _RestoreDbName, _TempDbName, _RestoreDbName, _TempDbName); MockAddLeaveRequest(); Console.WriteLine("筛选数据"); string target21 = theTarget.FilterTableData(new DateTime(2009, 6, 15), new DateTime(2009, 6, 16)); Console.WriteLine(target21); Console.WriteLine("进行还原"); string target22 = theTarget.RestoreTableData(new DateTime(2009, 6, 15), new DateTime(2009, 6, 16)); Console.WriteLine(target22); Assert.IsTrue(target22.Contains("表TLeaveRequestFlow共计:增加1行,覆盖0行,删除0行")); Assert.IsTrue(target22.Contains("表TLeaveRequestItem共计:增加1行,覆盖0行,删除0行")); Assert.IsTrue(target22.Contains("表TLeaveRequest共计:增加1行,覆盖0行,删除0行")); }
public void Test2() { TransferRule aTr = MakeTransferRule(); ITableFilter theTarget = new TLeaveRequestFilter.TLeaveRequestFilter(); theTarget.ConfigTheFilter(aTr, _MainTableName, _RestoreDbName, _TempDbName, _RestoreDbName, _TempDbName); Assert.AreEqual(2, aTr.DbsToTransfer[0].ProtectTableNames.Count); //第一次测试:假设没有任何数据发生变化 Console.WriteLine("第一次测试"); Console.WriteLine("筛选数据"); string target11 = theTarget.FilterTableData(new DateTime(2009, 6, 1), new DateTime(2009, 6, 30)); Console.WriteLine(target11); Console.WriteLine("进行还原"); string target12 = theTarget.RestoreTableData(new DateTime(2009, 6, 1), new DateTime(2009, 6, 30)); Console.WriteLine(target12); //全部数据还原没有任何数据改变 Assert.IsTrue(target12.Contains("表TLeaveRequest共计:增加0行,覆盖0行,删除0行")); Assert.IsTrue(target12.Contains("表TLeaveRequestItem共计:增加0行,覆盖0行,删除0行")); Assert.IsTrue(target12.Contains("表TLeaveRequestFlow共计:增加0行,覆盖0行,删除0行")); //第二次测试,分别模拟数据的增、删、改 Console.WriteLine("第二次测试"); MockChangment(); Console.WriteLine("筛选数据"); string target21 = theTarget.FilterTableData(new DateTime(2009, 6, 8), new DateTime(2009, 6, 13)); Console.WriteLine(target21); Console.WriteLine("进行还原"); string target22 = theTarget.RestoreTableData(new DateTime(2009, 6, 8), new DateTime(2009, 6, 13)); Console.WriteLine(target22); //由于在Filter的时候已经过滤了TLeaveRequestFlow的2行数据,所以匹配之后将待还原数据库的2行数据也删除了 Assert.IsTrue(target22.Contains("表TLeaveRequestFlow共计:增加1行,覆盖2行,删除2行")); Assert.IsTrue(target22.Contains("表TLeaveRequestItem共计:增加0行,覆盖0行,删除1行")); Assert.IsTrue(target22.Contains("表TLeaveRequest共计:增加0行,覆盖2行,删除0行")); }
public void Test2() { TransferRule aTr = MakeTransferRule(); ITableFilter theTarget = new TApplicationFilter.TApplicationFilter(); theTarget.ConfigTheFilter(aTr, _MainTableName, _RestoreDbName, _TempDbName, _RestoreDbName, _TempDbName); Assert.AreEqual(2, aTr.DbsToTransfer[0].ProtectTableNames.Count); //第一次测试:假设没有任何数据发生变化 Console.WriteLine("第一次测试"); Console.WriteLine("筛选数据"); string target11 = theTarget.FilterTableData(new DateTime(2008, 10, 1), new DateTime(2008, 11, 1)); Console.WriteLine(target11); Console.WriteLine("进行还原"); string target12 = theTarget.RestoreTableData(new DateTime(2008, 10, 1), new DateTime(2008, 11, 1)); Console.WriteLine(target12); //全部数据还原没有任何数据改变 Assert.IsTrue(target12.Contains("表TApplication共计:增加0行,覆盖0行,删除0行")); Assert.IsTrue(target12.Contains("表TApplicationEmployee共计:增加0行,覆盖0行,删除0行")); Assert.IsTrue(target12.Contains("表TApplicationFlow共计:增加0行,覆盖0行,删除0行")); //第二次测试,分别模拟数据的增、删、改 Console.WriteLine("第二次测试"); MockChangment(); Console.WriteLine("筛选数据"); string target21 = theTarget.FilterTableData(new DateTime(2008, 10, 1), new DateTime(2008, 11, 1)); Console.WriteLine(target21); Console.WriteLine("进行还原"); string target22 = theTarget.RestoreTableData(new DateTime(2008, 10, 1), new DateTime(2008, 11, 1)); Console.WriteLine(target22); Assert.IsTrue(target22.Contains("表TApplication共计:增加1行,覆盖1行,删除1行")); Assert.IsTrue(target22.Contains("表TApplicationEmployee共计:增加0行,覆盖0行,删除1行")); Assert.IsTrue(target22.Contains("表TApplicationFlow共计:增加0行,覆盖0行,删除2行")); }
public void Test1() { //构建一个以TApplication为主的迁移策略,策略本身不会执行,仅仅是其中的一部分数据筛选功能进行测试 TransferRule aTr = MakeTransferRule(); ITableFilter theTarget = new TLeaveRequestFilter.TLeaveRequestFilter(); theTarget.ConfigTheFilter(aTr, _MainTableName, _RestoreDbName, _TempDbName, _TempDbName, _RestoreDbName); Assert.AreEqual(2, aTr.DbsToTransfer[0].ProtectTableNames.Count); string before = PrintAllTableInfo(aTr); Console.WriteLine("筛选之前的表信息"); Console.WriteLine(before); string target = theTarget.FilterTableData(new DateTime(2009, 6, 8), new DateTime(2009, 6, 9)); Console.WriteLine("进行筛选"); Console.WriteLine(target); string after = PrintAllTableInfo(aTr); Console.WriteLine(); Console.WriteLine("筛选之后的表信息"); Console.WriteLine(after); Assert.IsTrue(before.Contains("表名:TLeaveRequest,最小ID:1,最大ID:2,总行数:2")); Assert.IsTrue(before.Contains("表名:TLeaveRequestItem,最小ID:1,最大ID:2,总行数:2")); Assert.IsTrue(before.Contains("表名:TLeaveRequestFlow,最小ID:1,最大ID:4,总行数:4")); Assert.IsTrue(target.Contains("表TLeaveRequest共计:总行数2,删减1行数据")); Assert.IsTrue(target.Contains("表TLeaveRequestItem共计:总行数2,删减1行数据")); Assert.IsTrue(target.Contains("表TLeaveRequestFlow共计:总行数4,删减2行数据")); Assert.IsTrue(after.Contains("表名:TLeaveRequest,最小ID:1,最大ID:1,总行数:1")); Assert.IsTrue(after.Contains("表名:TLeaveRequestItem,最小ID:1,最大ID:1,总行数:1")); Assert.IsTrue(after.Contains("表名:TLeaveRequestFlow,最小ID:1,最大ID:2,总行数:2")); }
public void Test1() { //构建一个以TApplication为主的迁移策略,策略本身不会执行,仅仅是其中的一部分数据筛选功能进行测试 TransferRule aTr = MakeTransferRule(); ITableFilter theTarget = new TApplicationFilter.TApplicationFilter(); theTarget.ConfigTheFilter(aTr, _MainTableName, _RestoreDbName, _TempDbName, _RestoreDbName, _TempDbName); Assert.AreEqual(2, aTr.DbsToTransfer[0].ProtectTableNames.Count); string before = PrintAllTableInfo(aTr); Console.WriteLine("筛选之前的表信息"); Console.WriteLine(before); string target = theTarget.FilterTableData(new DateTime(2008, 10, 1), new DateTime(2008, 11, 1)); Console.WriteLine("进行筛选"); Console.WriteLine(target); string after = PrintAllTableInfo(aTr); Console.WriteLine(); Console.WriteLine("筛选之后的表信息"); Console.WriteLine(after); Assert.IsTrue(before.Contains("表名:TApplication,最小ID:9,最大ID:670,总行数:615")); Assert.IsTrue(before.Contains("表名:TApplicationEmployee,最小ID:8,最大ID:1363,总行数:842")); Assert.IsTrue(before.Contains("表名:TApplicationFlow,最小ID:1,最大ID:1297,总行数:1252")); Assert.IsTrue(target.Contains("表TApplication共计:总行数615,删减535行数据")); Assert.IsTrue(target.Contains("表TApplicationEmployee共计:总行数842,删减749行数据")); Assert.IsTrue(target.Contains("表TApplicationFlow共计:总行数1252,删减1086行数据")); Assert.IsTrue(after.Contains("表名:TApplication,最小ID:258,最大ID:342,总行数:80")); Assert.IsTrue(after.Contains("表名:TApplicationEmployee,最小ID:778,最大ID:891,总行数:93")); Assert.IsTrue(after.Contains("表名:TApplicationFlow,最小ID:463,最大ID:666,总行数:166")); }
public void Test3() { string rarFile = Environment.CurrentDirectory + @"\..\..\TestResources\Config_ForTest.rar"; //解析并验证 DateTime? startTime; DateTime? endTime; TransferRule tr = TransferConfig.AnalyseRarData(rarFile, out startTime, out endTime, _TestTempDirectory, true, true); Assert.AreEqual(new DateTime(2008, 11, 1), startTime); Assert.AreEqual(new DateTime(2009, 1, 1), endTime); Assert.AreEqual(tr.RuleName, "指定月份的考勤数据"); Assert.AreEqual("BackUpAs:[TApplication(TApplicationFilter)]", tr.MakeString()); Assert.IsTrue(!File.Exists(_TestTempDirectory + "\\config.txt")); ////保留文件的解析 TransferRule tr2 = TransferConfig.AnalyseRarData(rarFile, out startTime, out endTime, _TestTempDirectory, false, true); Assert.AreEqual(tr.MakeString(), tr2.MakeString()); Assert.IsTrue(File.Exists(_TestTempDirectory + "\\config.txt")); //清理 CommandRunner.CleanUpDirectory(_TestTempDirectory); }
public void ConfigTheFilter(TransferRule theRule, string mainTableName, string orginDbName, string orginCopyDbName, string restoreDbName, string forRestoreCopyDbName) { throw new Exception("The method or operation is not implemented."); }
public override void AfterConfigTheFilter(TransferRule theRule, string orginDbName, string orginCopyDbName, string restoreDbName, string forRestoreCopyDbName) { }
public override void AfterConfigTheFilter(TransferRule theRule, string orginDbName, string orginCopyDbName, string restoreDbName, string forRestoreCopyDbName) { _LeaveRequestFilterItemFilter.ConfigTheFilter(theRule, _ProtectedTable, orginDbName, orginCopyDbName, restoreDbName, forRestoreCopyDbName); _LeaveRequestFilterItemFilter.IgnoreMainTableProcess = true; }