private static ILogFormat Compile(LexPreset preset) { var compiler = new LexCompiler(); var directory = GetCacheDirectory(); LexCompiler.LexFormatScanners result; var presetAssembly = GetCachedAssembly(preset, directory); if (directory.Exists) { if (presetAssembly.Exists) { using (var fileStream = presetAssembly.OpenRead()) result = compiler.LoadCompiled(fileStream); if (result.Success) { return new LexLogFormat { SegmentsScannerType = result.SegmentsScannerType, RecordsScannerType = result.RecordsScannerType } } ; } } else { directory.Create(); } using (var fileStream = presetAssembly.Create()) result = compiler.Compile( string.Concat(preset.CommonCode, Environment.NewLine, preset.SegmentCode), string.Concat(preset.CommonCode, Environment.NewLine, preset.RecordCode), fileStream); if (result.Success) { return new LexLogFormat { SegmentsScannerType = result.SegmentsScannerType, RecordsScannerType = result.RecordsScannerType } } ; return(null); }
private static ILogFormat Compile(LexPreset preset) { var compiler = new LexCompiler(); var directory = GetCacheDirectory(); LexCompiler.LexFormatScanners result; var presetAssembly = GetCachedAssembly(preset, directory); if (directory.Exists) { if (presetAssembly.Exists) { using (var fileStream = presetAssembly.OpenRead()) result = compiler.LoadCompiled(fileStream); if (result.Success) return new LexLogFormat { SegmentsScannerType = result.SegmentsScannerType, RecordsScannerType = result.RecordsScannerType }; } } else directory.Create(); using (var fileStream = presetAssembly.Create()) result = compiler.Compile( string.Concat(preset.CommonCode, Environment.NewLine, preset.SegmentCode), string.Concat(preset.CommonCode, Environment.NewLine, preset.RecordCode), fileStream); if (result.Success) return new LexLogFormat { SegmentsScannerType = result.SegmentsScannerType, RecordsScannerType = result.RecordsScannerType }; return null; }