75 lines
2.9 KiB
C#
75 lines
2.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Configuration;
|
|
using System.Diagnostics;
|
|
using System.IO;
|
|
using System.Threading;
|
|
using com.itac.mes.imsapi.client.dotnet;
|
|
|
|
// Stellen Sie sicher, dass Sie die richtigen Namensräume für Ihre IMSApi-Objekte importieren
|
|
using com.itac.mes.imsapi.domain;
|
|
using com.itac.mes.imsapi.domain.container;
|
|
|
|
public static class OnChangedProcess
|
|
{
|
|
public static void OnChanged(IMSApiSessionContextStruct sessionContext, object source, FileSystemEventArgs e)
|
|
{
|
|
string processpath = ConfigurationManager.AppSettings["PROCESS_FILES_PATH"];
|
|
string designator = ConfigurationManager.AppSettings["Designator"];
|
|
string mode = "MODE|" + ConfigurationManager.AppSettings["MODE"];
|
|
string panelmode = "PANEL_MODE|" + ConfigurationManager.AppSettings["PANEL_MODE"];
|
|
string processmode = "PROCESS_MODE|" + ConfigurationManager.AppSettings["PROCESS_MODE"];
|
|
string station = "ST|" + ConfigurationManager.AppSettings["StationNr"];
|
|
|
|
string filename = e.Name;
|
|
string filecontentprocess = "";
|
|
string parameters = "";
|
|
IIMSApiDotNet imsapi = null;
|
|
|
|
try
|
|
{
|
|
// Lesen der Datei
|
|
using (StreamReader r = new StreamReader(e.FullPath))
|
|
{
|
|
filecontentprocess = r.ReadToEnd();
|
|
}
|
|
|
|
// Zusammenfassen der Dateiinhalte mit Designator
|
|
List<string> lines = new List<string>(filecontentprocess.Split(new string[] { "\r\n" }, StringSplitOptions.None));
|
|
parameters = string.Join(designator, lines);
|
|
|
|
// Ihre IMSApi-Aufruflogik
|
|
string[] outargs;
|
|
string customErrorString;
|
|
int result = imsapi.customFunction(sessionContext, ConfigurationManager.AppSettings["CF_Processfiles"], new string[] { station, mode, panelmode, processmode, "FILENAME|" + filename, "RAW|" + parameters }, out outargs, out customErrorString);
|
|
|
|
// Protokollierung und Dateiverschiebung
|
|
HandleResultAndMoveFile(result, customErrorString, e.FullPath, processpath, filename);
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Console.WriteLine($"Fehler bei der Verarbeitung der Datei {filename}: {ex.Message}");
|
|
}
|
|
}
|
|
|
|
private static void HandleResultAndMoveFile(int result, string customErrorString, string originalFilePath, string destinationPath, string filename)
|
|
{
|
|
// Protokollierung
|
|
LogResult(result, customErrorString);
|
|
|
|
// Verschieben der Datei in den processed_done Ordner
|
|
string newPath = Path.Combine(destinationPath, "processed_done", filename);
|
|
if (!Directory.Exists(Path.GetDirectoryName(newPath)))
|
|
{
|
|
Directory.CreateDirectory(Path.GetDirectoryName(newPath));
|
|
}
|
|
File.Move(originalFilePath, newPath);
|
|
}
|
|
|
|
private static void LogResult(int result, string customErrorString)
|
|
{
|
|
// Implementieren Sie Ihre Logik hier
|
|
}
|
|
}
|