96 lines
4.3 KiB
C#
96 lines
4.3 KiB
C#
using Eaf.Core.Smtp;
|
|
using Adaptation.Shared.Metrology;
|
|
using Eaf.Core;
|
|
using Ifx.Eaf.EquipmentConnector.File.Component.Reader;
|
|
using log4net;
|
|
using Shared;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Diagnostics;
|
|
using System.IO;
|
|
using System.Reflection;
|
|
using System.Text;
|
|
using System.Text.Json;
|
|
using System.Linq;
|
|
|
|
namespace MET08DDUPSFS6420.FileHandlers
|
|
{
|
|
|
|
public partial class FileRead : FileReaderHandler
|
|
{
|
|
|
|
private Adaptation.FileHandlers.FileRead _FileRead;
|
|
|
|
public FileRead()
|
|
{
|
|
_Log = LogManager.GetLogger(typeof(FileRead));
|
|
_FileRead = new Adaptation.FileHandlers.FileRead();
|
|
}
|
|
|
|
public override bool Extract(string reportFullPath, string eventName)
|
|
{
|
|
MethodBase methodBase = new StackFrame().GetMethod();
|
|
_Log.Debug(string.Concat(methodBase.Name, " - Entry - {", reportFullPath, "}"));
|
|
Tuple<string, JsonElement?, List<FileInfo>> extractResults = null;
|
|
try
|
|
{
|
|
extractResults = _FileRead.GetExtractResult(reportFullPath, eventName);
|
|
TriggerEvents(reportFullPath, extractResults);
|
|
_FileRead.Move(reportFullPath, extractResults);
|
|
FilePathGeneratorInfoMove(reportFullPath, extractResults);
|
|
_FileRead.WaitForThread();
|
|
_Log.Debug(string.Concat(methodBase.Name, " - Try - Exit"));
|
|
return true;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
_Log.Error(string.Concat(methodBase.Name, " - Catch - Entry {", ex.Message, "}", Environment.NewLine, Environment.NewLine, ex.StackTrace));
|
|
_FileRead.Move(reportFullPath, extractResults, exception: ex);
|
|
FilePathGeneratorInfoMove(reportFullPath, extractResults, exception: ex);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public Tuple<string, JsonElement?, List<FileInfo>> ReExtract(string searchDirectory, string sourceFileFilter)
|
|
{
|
|
Tuple<string, JsonElement?, List<FileInfo>> results = _FileRead.ReExtract(searchDirectory, sourceFileFilter);
|
|
if (!(results?.Item2 is null))
|
|
{
|
|
TriggerEvents(_FileRead.Logistics.ReportFullPath, results);
|
|
_FileRead.Move(_FileRead.Logistics.ReportFullPath, results);
|
|
FilePathGeneratorInfoMove(_FileRead.Logistics.ReportFullPath, results);
|
|
}
|
|
return results;
|
|
}
|
|
|
|
private void FilePathGeneratorInfoMove(string reportFullPath, Tuple<string, JsonElement?, List<FileInfo>> extractResults, Exception exception = null)
|
|
{
|
|
bool isErrorFile = !(exception is null);
|
|
object filePathGeneratorInfo = GetFilePathGeneratorInfo(reportFullPath, isErrorFile);
|
|
Tuple<string, ConfigDataBase> tuple = _FileRead.GetOpenInsightTuple();
|
|
if (filePathGeneratorInfo is null || !(filePathGeneratorInfo is FilePathGeneratorInfo filePathGenerator))
|
|
OISiViewer.WebClientDownloadString(tuple.Item1, tuple.Item2, reportFullPath, isErrorFile, string.Empty);
|
|
else
|
|
{
|
|
OISiViewer.WebClientDownloadString(tuple.Item1, tuple.Item2, reportFullPath, isErrorFile, filePathGenerator.To);
|
|
string[] exceptionLines = _FileRead.Shared1124(reportFullPath, extractResults, filePathGenerator.To, filePathGenerator.From, filePathGenerator.ResolvedFileLocation, exception);
|
|
if (isErrorFile)
|
|
{
|
|
try
|
|
{
|
|
StringBuilder stringBuilder = new StringBuilder();
|
|
foreach (string item in exceptionLines)
|
|
stringBuilder.Append("<").Append(item).AppendLine(">");
|
|
ISmtp smtp = Backbone.Instance.GetBackboneComponentsOfType<ISmtp>().SingleOrDefault();
|
|
EmailMessage emailMessage = new EmailMessage(string.Concat("Exception:", _ConfigDataBase.EquipmentElementName, _ConfigDataBase.FileConnectorConfiguration?.SourceDirectoryCloaking), stringBuilder.ToString(), MailPriority.High);
|
|
smtp.Send(emailMessage);
|
|
}
|
|
catch (Exception) { }
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
}
|