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 lines = new List(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 } }