1
0
mirror of https://github.com/BDDSM/YY.EventLogReaderAssistant.git synced 2024-11-26 18:11:45 +02:00

Рефакторинг изменений

- Отказался от усложненной структуры пространств имен
- Вынес классы аргументов событий в отдельные файлы
- Удалил неиспользуемые пространства имен
This commit is contained in:
YPermitin 2020-04-10 13:14:46 +05:00
parent 64ce7c1c92
commit b8b845ec68
33 changed files with 217 additions and 151 deletions

View File

@ -5,6 +5,11 @@ VisualStudioVersion = 16.0.30002.166
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "YY.EventLogAssistant", "YY.EventLogAssistant\YY.EventLogAssistant.csproj", "{5B2E13F6-9F93-46AA-AB61-7B3A4331840D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "YY.EventLogAssistantConsoleApp", "YY.EventLogAssistantConsoleApp\YY.EventLogAssistantConsoleApp.csproj", "{9CF3CC92-F793-4398-896A-353DAACC0DE0}"
ProjectSection(ProjectDependencies) = postProject
{5B2E13F6-9F93-46AA-AB61-7B3A4331840D} = {5B2E13F6-9F93-46AA-AB61-7B3A4331840D}
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -15,6 +20,10 @@ Global
{5B2E13F6-9F93-46AA-AB61-7B3A4331840D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5B2E13F6-9F93-46AA-AB61-7B3A4331840D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5B2E13F6-9F93-46AA-AB61-7B3A4331840D}.Release|Any CPU.Build.0 = Release|Any CPU
{9CF3CC92-F793-4398-896A-353DAACC0DE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9CF3CC92-F793-4398-896A-353DAACC0DE0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9CF3CC92-F793-4398-896A-353DAACC0DE0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9CF3CC92-F793-4398-896A-353DAACC0DE0}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -1,14 +1,11 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SQLite;
using YY.LogReader.Models;
using YY.LogReader.Services;
using YY.LogReader.Models.EventLog;
using YY.EventLogAssistant.Models;
using YY.EventLogAssistant.Services;
namespace YY.LogReader.EventLog
namespace YY.EventLogAssistant
{
internal sealed class EventLogLGDReader : EventLogReader
{

View File

@ -5,12 +5,10 @@ using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using YY.LogReader.Models;
using YY.LogReader.Models.EventLog;
using YY.LogReader.Services;
using YY.EventLogAssistant.Models;
using YY.EventLogAssistant.Services;
namespace YY.LogReader.EventLog
namespace YY.EventLogAssistant
{
internal sealed class EventLogLGFReader : EventLogReader
{

View File

@ -1,8 +1,4 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace YY.LogReader.EventLog
namespace YY.EventLogAssistant
{
public sealed class EventLogPosition
{

View File

@ -1,14 +1,11 @@
using YY.LogReader.Models.EventLog;
using YY.EventLogAssistant.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace YY.LogReader.EventLog
namespace YY.EventLogAssistant
{
public abstract class EventLogReader : IEventLogReader, IDisposable
public abstract partial class EventLogReader : IEventLogReader, IDisposable
{
public static EventLogReader CreateReader(string pathLogFile)
{
@ -170,65 +167,5 @@ namespace YY.LogReader.EventLog
_users.Clear();
_workServers.Clear();
}
public sealed class BeforeReadFileEventArgs : EventArgs
{
public BeforeReadFileEventArgs(string fileName)
{
FileName = fileName;
Cancel = false;
}
public string FileName { get; }
public bool Cancel { get; set; }
}
public sealed class AfterReadFileEventArgs : EventArgs
{
public AfterReadFileEventArgs(string fileName)
{
FileName = fileName;
}
public string FileName { get; }
}
public sealed class BeforeReadEventArgs : EventArgs
{
public BeforeReadEventArgs(string sourceData, long eventNumber)
{
SourceData = sourceData;
EventNumber = eventNumber;
}
public string SourceData { get; }
public long EventNumber { get; }
}
public sealed class AfterReadEventArgs : EventArgs
{
public AfterReadEventArgs(EventLogRowData rowData, long eventNumber)
{
RowData = rowData;
EventNumber = eventNumber;
}
public EventLogRowData RowData { get; }
public long EventNumber { get; }
}
public sealed class OnErrorEventArgs : EventArgs
{
public OnErrorEventArgs(Exception excepton, string sourceData, bool critical)
{
Exception = excepton;
SourceData = sourceData;
Critical = critical;
}
public Exception Exception { get; }
public string SourceData { get; }
public bool Critical { get; }
}
}
}

View File

@ -0,0 +1,17 @@
using YY.EventLogAssistant.Models;
using System;
namespace YY.EventLogAssistant
{
public sealed class AfterReadEventArgs : EventArgs
{
public AfterReadEventArgs(EventLogRowData rowData, long eventNumber)
{
RowData = rowData;
EventNumber = eventNumber;
}
public EventLogRowData RowData { get; }
public long EventNumber { get; }
}
}

View File

@ -0,0 +1,14 @@
using System;
namespace YY.EventLogAssistant
{
public sealed class AfterReadFileEventArgs : EventArgs
{
public AfterReadFileEventArgs(string fileName)
{
FileName = fileName;
}
public string FileName { get; }
}
}

View File

@ -0,0 +1,17 @@
using System;
namespace YY.EventLogAssistant
{
public sealed class BeforeReadEventArgs : EventArgs
{
public BeforeReadEventArgs(string sourceData, long eventNumber)
{
SourceData = sourceData;
EventNumber = eventNumber;
}
public string SourceData { get; }
public long EventNumber { get; }
}
}

View File

@ -0,0 +1,16 @@
using System;
namespace YY.EventLogAssistant
{
public sealed class BeforeReadFileEventArgs : EventArgs
{
public BeforeReadFileEventArgs(string fileName)
{
FileName = fileName;
Cancel = false;
}
public string FileName { get; }
public bool Cancel { get; set; }
}
}

View File

@ -0,0 +1,18 @@
using System;
namespace YY.EventLogAssistant
{
public sealed class OnErrorEventArgs : EventArgs
{
public OnErrorEventArgs(Exception excepton, string sourceData, bool critical)
{
Exception = excepton;
SourceData = sourceData;
Critical = critical;
}
public Exception Exception { get; }
public string SourceData { get; }
public bool Critical { get; }
}
}

View File

@ -1,9 +1,6 @@
using System;
using System.Collections.Generic;
using System.Text;
using YY.LogReader.Models.EventLog;
using YY.EventLogAssistant.Models;
namespace YY.LogReader.EventLog
namespace YY.EventLogAssistant
{
internal interface IEventLogReader
{

View File

@ -1,15 +1,12 @@
using YY.LogReader.Models.EventLog;
using YY.EventLogAssistant.Models;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using YY.LogReader.Services;
using YY.EventLogAssistant.Services;
using System.Text.RegularExpressions;
using System.Data.SQLite;
namespace YY.LogReader.EventLog
namespace YY.EventLogAssistant
{
internal sealed class LogParserLGF
{

View File

@ -1,8 +1,6 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations;
namespace YY.LogReader.Models.EventLog
namespace YY.EventLogAssistant.Models
{
public class Applications
{

View File

@ -1,8 +1,6 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations;
namespace YY.LogReader.Models.EventLog
namespace YY.EventLogAssistant.Models
{
public class Computers
{

View File

@ -1,8 +1,6 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace YY.LogReader.Models.EventLog
namespace YY.EventLogAssistant.Models
{
public class EventLogRowData : RowData
{

View File

@ -1,8 +1,6 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations;
namespace YY.LogReader.Models.EventLog
namespace YY.EventLogAssistant.Models
{
public class Events
{

View File

@ -1,9 +1,6 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations;
namespace YY.LogReader.Models.EventLog
namespace YY.EventLogAssistant.Models
{
public class InformationSystems
{

View File

@ -1,8 +1,7 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace YY.LogReader.Models.EventLog
namespace YY.EventLogAssistant.Models
{
public class Metadata
{

View File

@ -1,8 +1,6 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations;
namespace YY.LogReader.Models.EventLog
namespace YY.EventLogAssistant.Models
{
public class PrimaryPorts
{

View File

@ -1,13 +1,8 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using YY.LogReader.Models.EventLog;
namespace YY.LogReader.Models
namespace YY.EventLogAssistant.Models
{
public abstract class RowData
{

View File

@ -1,8 +1,6 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations;
namespace YY.LogReader.Models.EventLog
namespace YY.EventLogAssistant.Models
{
public class SecondaryPorts
{

View File

@ -1,8 +1,4 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace YY.LogReader.Models.EventLog
namespace YY.EventLogAssistant.Models
{
public enum Severity
{

View File

@ -1,8 +1,4 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace YY.LogReader.Models.EventLog
namespace YY.EventLogAssistant.Models
{
public enum TransactionStatus
{

View File

@ -1,8 +1,7 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace YY.LogReader.Models.EventLog
namespace YY.EventLogAssistant.Models
{
public class Users
{

View File

@ -1,8 +1,6 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations;
namespace YY.LogReader.Models.EventLog
namespace YY.EventLogAssistant.Models
{
public class WorkServers
{

View File

@ -1,7 +1,7 @@
using System;
using System.Data.SqlTypes;
namespace YY.LogReader.Services
namespace YY.EventLogAssistant.Services
{
internal static class DateTimeExtensions
{

View File

@ -1,6 +1,6 @@
using System;
namespace YY.LogReader.Services
namespace YY.EventLogAssistant.Services
{
internal static class IntExtensions
{

View File

@ -2,7 +2,7 @@
using System.Data.SQLite;
using System.Text;
namespace YY.LogReader.Services
namespace YY.EventLogAssistant.Services
{
internal static class SQLiteExtensions
{

View File

@ -2,7 +2,7 @@
using System.IO;
using System.Text;
namespace YY.LogReader.Services
namespace YY.EventLogAssistant.Services
{
internal class StreamLineReader : IDisposable
{

View File

@ -1,7 +1,7 @@
using System.IO;
using System.Reflection;
namespace YY.LogReader.Services
namespace YY.EventLogAssistant.Services
{
internal static class StreamReaderExtensions
{

View File

@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Security.Cryptography;
using System.Text;
namespace YY.LogReader.Services
namespace YY.EventLogAssistant.Services
{
internal static class StringExtensions
{

View File

@ -0,0 +1,73 @@
using System;
using System.IO;
using YY.EventLogAssistant;
using YY.EventLogAssistant.Models;
namespace YY.EventLogAssistantConsoleApp
{
class Program
{
private static int _eventNumber = 0;
static void Main(string[] args)
{
string testDataDirectoryPath = $"{ Environment.CurrentDirectory}{Path.DirectorySeparatorChar}TestData\\1Cv8.lgf";
EventLogReader reader = EventLogReader.CreateReader(testDataDirectoryPath);
reader.AfterReadEvent += Reader_AfterReadEvent;
reader.AfterReadFile += Reader_AfterReadFile;
reader.BeforeReadEvent += Reader_BeforeReadEvent;
reader.BeforeReadFile += Reader_BeforeReadFile;
reader.OnErrorEvent += Reader_OnErrorEvent;
// Пример задания точного положения для чтения в файле. Для формата *.lgf
//reader.SetCurrentPosition(new EventLogPosition(
// 5,
// reader.LogFilePath,
// reader.LogFilePath,
// 436));
Console.WriteLine($"Всего событий: {reader.Count()}");
long totalEvents = 0;
EventLogRowData rowData;
while (reader.Read(out rowData))
totalEvents += 1;
Console.WriteLine("Для выхода нажмите любую клавишу...");
Console.ReadKey();
}
private static void Reader_BeforeReadFile(EventLogReader sender, BeforeReadFileEventArgs args)
{
// Пример получения текущей позиции чтения
var positionBeforeReadFile = sender.GetCurrentPosition();
Console.WriteLine("Reader_BeforeReadFile");
}
private static void Reader_AfterReadFile(EventLogReader sender, AfterReadFileEventArgs args)
{
// Пример получения текущей позиции чтения
var positionAfterReadFile = sender.GetCurrentPosition();
Console.WriteLine("Reader_AfterReadFile");
}
private static void Reader_BeforeReadEvent(EventLogReader sender, BeforeReadEventArgs args)
{
_eventNumber += 1;
Console.WriteLine($"Reader_BeforeReadEvent: {_eventNumber}");
}
private static void Reader_AfterReadEvent(EventLogReader sender, AfterReadEventArgs args)
{
Console.WriteLine($"Reader_AfterReadEvent {_eventNumber}");
}
private static void Reader_OnErrorEvent(EventLogReader sender, OnErrorEventArgs args)
{
Console.WriteLine("Reader_OnErrorEvent");
}
}
}

View File

@ -0,0 +1,12 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\YY.EventLogAssistant\YY.EventLogAssistant.csproj" />
</ItemGroup>
</Project>