private void ExportToPostgreSQL(EventLogExportSettings eventLogSettings) { EventLogOnPostgreSQL target = new EventLogOnPostgreSQL(_optionsBuilder.Options, eventLogSettings.Portion); target.SetInformationSystem(new InformationSystemsBase() { Name = eventLogSettings.InforamtionSystemName, Description = eventLogSettings.InforamtionSystemDescription }); ExportHelper.ExportToTargetStorage(eventLogSettings, target); long rowsInDB; using (EventLogContext context = EventLogContext.Create(_optionsBuilder.Options, _settings.DBMSActions)) { var informationSystem = context.InformationSystems .First(i => i.Name == eventLogSettings.InforamtionSystemName); var getCount = context.RowsData .Where(r => r.InformationSystemId == informationSystem.Id) .LongCountAsync(); getCount.Wait(); rowsInDB = getCount.Result; } long rowsInSourceFiles; using (EventLogReader reader = EventLogReader.CreateReader(eventLogSettings.EventLogPath)) rowsInSourceFiles = reader.Count(); Assert.NotEqual(0, rowsInSourceFiles); Assert.NotEqual(0, rowsInDB); Assert.Equal(rowsInSourceFiles, rowsInDB); }
private void ExportToClickHouse(EventLogExportSettings eventLogSettings) { Console.WriteLine(_settings.ConnectionString); ClickHouseHelpers.DropDatabaseIfExist(_settings.ConnectionString); EventLogOnClickHouse target = new EventLogOnClickHouse(_settings.ConnectionString, eventLogSettings.Portion); target.SetInformationSystem(new InformationSystemsBase() { Name = eventLogSettings.InforamtionSystemName, Description = eventLogSettings.InforamtionSystemDescription }); ExportHelper.ExportToTargetStorage(eventLogSettings, target); long rowsInDB; using (var connection = new ClickHouseConnection(_settings.ConnectionString)) { connection.Open(); using (var cmd = connection.CreateCommand()) { cmd.CommandText = @"SELECT COUNT(*) CNT FROM RowsData rd WHERE InformationSystem = {InformationSystem:String}"; cmd.Parameters.Add(new ClickHouseDbParameter { ParameterName = "InformationSystem", Value = eventLogSettings.InforamtionSystemName }); using (var cmdReader = cmd.ExecuteReader()) { if (cmdReader.Read()) { rowsInDB = Convert.ToInt64(cmdReader.GetValue(0)); } else { rowsInDB = 0; } } } } long rowsInSourceFiles; using (EventLogReader reader = EventLogReader.CreateReader(eventLogSettings.EventLogPath)) rowsInSourceFiles = reader.Count(); Assert.NotEqual(0, rowsInSourceFiles); Assert.NotEqual(0, rowsInDB); Assert.Equal(rowsInSourceFiles, rowsInDB); }
public static void ExportToTargetStorage(EventLogExportSettings eventLogSettings, IEventLogOnTarget targetStorage) { if (!Directory.Exists(eventLogSettings.EventLogPath)) { throw new Exception("Каталог данных журнала регистрации не обнаружен."); } using (EventLogExportMaster exporter = new EventLogExportMaster()) { exporter.SetEventLogPath(eventLogSettings.EventLogPath); exporter.SetTarget(targetStorage); exporter.BeforeExportData += BeforeExportData; exporter.AfterExportData += AfterExportData; exporter.OnErrorExportData += OnErrorExportData; while (exporter.NewDataAvailable()) { exporter.SendData(); } } }