Exemplo n.º 1
0
 public OnReadEventArgs(IXEvent rowData, ExtendedEventsPosition position, long eventNumber)
 {
     EventData   = rowData;
     EventNumber = eventNumber;
     Position    = position;
 }
Exemplo n.º 2
0
        public async Task SaveLogPosition(FileInfo logFileInfo, ExtendedEventsPosition position, bool finishReadFile = false)
        {
            var commandAddLogInfo = _connection.CreateCommand();

            commandAddLogInfo.CommandText =
                @"INSERT INTO LogFiles (
                    CreateDate,
                    FileName,
                    FileCreateDate,
                    FileModificationDate,
                    LastEventNumber,
                    LastEventUUID,
                    LastEventPeriod,
                    FinishReadFile
                ) VALUES (
                    {CreateDate:DateTime},
                    {FileName:String},
                    {FileCreateDate:DateTime},
                    {FileModificationDate:DateTime},
                    {LastEventNumber:Int64},
                    {LastEventUUID:String},
                    {LastEventPeriod:DateTime},
                    {FinishReadFile:Int64}
                )";

            commandAddLogInfo.Parameters.Add(new ClickHouseDbParameter
            {
                ParameterName = "CreateDate",
                DbType        = DbType.DateTime,
                Value         = DateTime.Now
            });
            commandAddLogInfo.Parameters.Add(new ClickHouseDbParameter
            {
                ParameterName = "FileName",
                DbType        = DbType.AnsiString,
                Value         = logFileInfo.Name
            });
            commandAddLogInfo.Parameters.Add(new ClickHouseDbParameter
            {
                ParameterName = "FileCreateDate",
                DbType        = DbType.DateTime,
                Value         = logFileInfo.CreationTime.GetAllowDateTime()
            });
            commandAddLogInfo.Parameters.Add(new ClickHouseDbParameter
            {
                ParameterName = "FileModificationDate",
                DbType        = DbType.DateTime,
                Value         = logFileInfo.LastWriteTime.GetAllowDateTime()
            });
            commandAddLogInfo.Parameters.Add(new ClickHouseDbParameter
            {
                ParameterName = "LastEventNumber",
                DbType        = DbType.Int64,
                Value         = position.EventNumber
            });
            commandAddLogInfo.Parameters.Add(new ClickHouseDbParameter
            {
                ParameterName = "LastEventUUID",
                DbType        = DbType.AnsiString,
                Value         = position.EventUUID
            });
            commandAddLogInfo.Parameters.Add(new ClickHouseDbParameter
            {
                ParameterName = "LastEventPeriod",
                DbType        = DbType.DateTime,
                Value         = position.EventPeriod?.DateTime.GetAllowDateTime() ?? DateTime.MinValue.GetAllowDateTime()
            });
            commandAddLogInfo.Parameters.Add(new ClickHouseDbParameter
            {
                ParameterName = "FinishReadFile",
                DbType        = DbType.Int64,
                Value         = finishReadFile ? 1 : 0
            });

            await commandAddLogInfo.ExecuteNonQueryAsync();
        }