//Продготовка файла Result protected void PrepareResultFile() { ResultFile = General.ControllerDir + @"Result\Result" + Id + ".accdb"; if (!DaoDb.FromTemplate(General.ControllerDir + "ResultTemplate.accdb", ResultFile, ApplicationType == ApplicationType.Controller ? ReplaceByTemplate.IfNewVersion : ReplaceByTemplate.Always)) { DaoDb.Compress(ResultFile, 400000000, General.TmpDir, 3000); } }
//Открытие файла истории private void OpenHistory(string fileName, bool replace) { var file = TestLib.TestRunDir + @"Libraries\History\" + fileName + ".accdb"; var template = ItStatic.InfoTaskDir() + @"Templates\LocalData\History.accdb"; if (replace) { DaoDb.FromTemplate(template, file, ReplaceByTemplate.Always); TestLib.CopyFile("Libraries", "CorrectHistory.accdb", @"History\CorrectHistory.accdb"); } Logger = new Logger(new TestIndicator()); Logger.History = new AccessHistory(Logger, file, template); }
//Загрузка настроек из SysPage и создание файла данных, если нужно public void LoadSetup() { AddEvent("Загрузка свойств отчета и открытие файла данных"); string s = Workbook.Name; DataFile = General.ReporterDir + @"Tmp\" + s.Substring(0, s.Length - 5) + "Data.accdb"; DaoDb.FromTemplate(General.ReportTemplateFile, DataFile); Name = SysPage.GetValue("ReportName"); PeriodLength = new TimeSpan(SysPage.GetIntValue("DayLength"), SysPage.GetIntValue("HourLength"), SysPage.GetIntValue("MinuteLength"), 0); MonthLengh = SysPage.GetIntValue("MonthLength"); DefaultPeriod = SysPage.GetValue("DefaultPeriod"); PeriodNull = SysPage.GetValue("HourStart").IsEmpty() && SysPage.GetValue("MinuteStart").IsEmpty(); PeriodStart = new TimeSpan(0, SysPage.GetIntValue("HourStart"), SysPage.GetIntValue("MinuteStart"), 0); DayStart = SysPage.GetIntValue("DayStart"); DifferentLength = SysPage.GetValue("DifferentLength").ToDifferentLength(); DifferentBegin = SysPage.GetBoolValue("DifferentBegin"); }
public void DaoDbStatic() { var db = CopyDb("Static"); string file = File("Static"); string fileWrong = File("Static2"); string fileCopy = File("Copy"); string fileTmp = TestLib.TestRunDir + @"Libraries\TmpDaoStatic.accdb"; db.Dispose(); Assert.IsNull(db.Database); Assert.IsNull(db.Connection); Assert.IsTrue(DaoDb.Check(file, "DaoTest")); Assert.IsTrue(DaoDb.Check(file, "DaoTest", new[] { "Tabl", "SubTabl", "EmptyTabl", "SysTabl", "SysSubTabl" })); Assert.IsTrue(DaoDb.Check(file, new[] { "Tabl", "SubTabl", "EmptyTabl" })); Assert.IsFalse(DaoDb.Check(fileWrong, "Fignia")); Assert.IsFalse(DaoDb.Check(null, "Fignia")); Assert.IsFalse(DaoDb.Check(fileWrong, "Fignia")); Assert.IsFalse(DaoDb.Check(fileWrong, new[] { "Tabl" })); Assert.IsFalse(DaoDb.Check(file, new[] { "Tabl", "SubTabl", "EmptyTabl1" })); DaoDb.Compress(file, 10000000); DaoDb.Compress(file, 10000); Assert.IsTrue(new FileInfo(fileTmp).Exists); Assert.IsTrue(DaoDb.FromTemplate(file, fileCopy, ReplaceByTemplate.Always)); Assert.IsFalse(DaoDb.FromTemplate(file, fileCopy, ReplaceByTemplate.IfNotExists)); Assert.IsFalse(DaoDb.FromTemplate(file, fileCopy, ReplaceByTemplate.IfNewVersion)); new FileInfo(fileCopy).Delete(); Assert.IsTrue(DaoDb.FromTemplate(file, fileCopy, ReplaceByTemplate.IfNotExists)); new FileInfo(fileCopy).Delete(); Assert.IsTrue(DaoDb.FromTemplate(file, fileCopy, ReplaceByTemplate.IfNewVersion)); Assert.IsTrue(new FileInfo(fileCopy).Exists); DaoDb.Execute(file, "DELETE * FROM Tabl"); DaoDb.ExecuteAdo(file, "DELETE * FROM SysTabl"); using (var rec = new AdoReader(file, "SELECT * FROM Tabl")) Assert.IsFalse(rec.HasRows); using (var rec = new AdoReader(file, "SELECT * FROM SubTabl")) Assert.IsFalse(rec.HasRows); using (var rec = new DaoRec(file, "SysTabl")) Assert.IsFalse(rec.HasRows); using (var rec = new DaoRec(file, "SysSubTabl")) Assert.IsFalse(rec.HasRows); }
//Сохранение в ведомость public void SaveVed() { try { DaoDb.FromTemplate(General.GeneralDir + @"\Templates\AnalyzerVedTemplate.accdb", _vedFile, ReplaceByTemplate.Always); using (_vedDb = new DaoDb(_vedFile)) { WriteSysTabl(); MakeColumnsAndFilters(); _project.ThreadCalc.Procent = 10; WriteParams(); _project.ThreadCalc.Start(WriteLinVed, 20); } } catch (Exception ex) { AddError("Ошибка при записи в ведомость", ex, "", _project.Code); } }
//Обновление файла данных из проектов и отчета, загрузка параметров Projects //updateAll - обновлять, даже если дата обновления ссылок не совпадет, delete - удалять файл перед обновлением public void UpdateDataFile(bool delete, bool updateAll = false) { AddEvent("Обновление файла данных", Code); if (delete) { DaoDb.FromTemplate(General.ReportTemplateFile, DataFile, ReplaceByTemplate.Always); } if (updateAll) { LastChangeLinks = DateTime.Now; } bool needUpdate = ParamsProjectsToFile(); if (updateAll || needUpdate || Projects.Count == 0) { ParamsFileToMemory(); } if (needUpdate || LastChangeLinks != SysTabl.ValueS(DataFile, "LastChangeLinks").ToDateTime()) { LinksReportToFile(); } }