Removed save-open-insight-file to use process-data-standard-format instead
Removed last logic
This commit is contained in:
		@ -9,7 +9,6 @@ using System.Collections.Generic;
 | 
			
		||||
using System.Globalization;
 | 
			
		||||
using System.IO;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Text.Json;
 | 
			
		||||
 | 
			
		||||
namespace Adaptation.FileHandlers.OpenInsight;
 | 
			
		||||
@ -17,9 +16,7 @@ namespace Adaptation.FileHandlers.OpenInsight;
 | 
			
		||||
public class FileRead : Shared.FileRead, IFileRead
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    private string _LastLines;
 | 
			
		||||
    private readonly string _IqsConnectionString;
 | 
			
		||||
    private readonly string _OpenInsightFilePattern;
 | 
			
		||||
    private readonly string _OpenInsightApiECDirectory;
 | 
			
		||||
 | 
			
		||||
    public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<WS.Results>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
 | 
			
		||||
@ -34,10 +31,8 @@ public class FileRead : Shared.FileRead, IFileRead
 | 
			
		||||
            throw new Exception(cellInstanceConnectionName);
 | 
			
		||||
        if (!_IsDuplicator)
 | 
			
		||||
            throw new Exception(cellInstanceConnectionName);
 | 
			
		||||
        _LastLines = string.Empty;
 | 
			
		||||
        _IqsConnectionString = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "IQS.ConnectionString");
 | 
			
		||||
        _OpenInsightApiECDirectory = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "API.EC.Directory");
 | 
			
		||||
        _OpenInsightFilePattern = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "OpenInsight.FilePattern");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void IFileRead.Move(Tuple<string, Test[], JsonElement[], List<FileInfo>> extractResults, Exception exception)
 | 
			
		||||
@ -115,61 +110,9 @@ public class FileRead : Shared.FileRead, IFileRead
 | 
			
		||||
        return results;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    internal static Tuple<string, string> GetLines(Logistics logistics, List<txt.Description> descriptions)
 | 
			
		||||
    {
 | 
			
		||||
        StringBuilder result = new();
 | 
			
		||||
        char del = '\t';
 | 
			
		||||
        txt.Description x = descriptions[0];
 | 
			
		||||
        _ = result.Append(x.DcnLpdMin).Append(del).    // 001 - 
 | 
			
		||||
            Append(x.DcnLpdMax).Append(del).       // 002 - 
 | 
			
		||||
            Append(x.DcnLpdMean).Append(del).      // 003 - DCN LPD
 | 
			
		||||
            Append(x.DcnAreaCountMin).Append(del). // 004 - 
 | 
			
		||||
            Append(x.DcnAreaCountMax).Append(del). // 005 - 
 | 
			
		||||
            Append(x.DcnAreaCountMean).Append(del).// 006 - DCN Area
 | 
			
		||||
            Append(x.DcnAreaMin).Append(del).      // 007 - 
 | 
			
		||||
            Append(x.DcnAreaMax).Append(del).      // 008 - 
 | 
			
		||||
            Append(x.Date).Append(del).            // 009 - 
 | 
			
		||||
            Append(x.DcnHazeAvgMean).Append(del).  // 010 - Haze Average
 | 
			
		||||
            Append(string.Empty).Append(del).              // 011 - 
 | 
			
		||||
            Append(string.Empty).Append(del).              // 012 - 
 | 
			
		||||
            Append(string.Empty).Append(del).              // 013 - 
 | 
			
		||||
            Append(string.Empty).Append(del).              // 014 - 
 | 
			
		||||
            Append(string.Empty).Append(del).              // 015 - 
 | 
			
		||||
            Append(string.Empty).Append(del).              // 016 - 
 | 
			
		||||
            Append(string.Empty).Append(del).              // 017 - 
 | 
			
		||||
            Append(string.Empty).Append(del).              // 018 - 
 | 
			
		||||
            Append(string.Empty).Append(del).              // 019 - 
 | 
			
		||||
            Append(string.Empty).Append(del).              // 020 - 
 | 
			
		||||
            Append(string.Empty).Append(del).              // 021 - 
 | 
			
		||||
            Append(string.Empty).Append(del).              // 022 - 
 | 
			
		||||
            Append(string.Empty).Append(del).              // 023 - 
 | 
			
		||||
            Append(string.Empty).Append(del).              // 024 - 
 | 
			
		||||
            Append(string.Empty).Append(del).              // 025 - 
 | 
			
		||||
            Append(string.Empty).Append(del).              // 026 - 
 | 
			
		||||
            Append(string.Empty).Append(del).              // 027 - 
 | 
			
		||||
            Append(x.RDS).Append(del).             // 028 - Lot
 | 
			
		||||
            Append(x.Reactor).Append(del).         // 029 - Process
 | 
			
		||||
            Append(x.Recipe).Append(del).          // 030 - Part
 | 
			
		||||
            Append(x.DcnScrMean).Append(del).      // 031 - Scratch Count
 | 
			
		||||
            Append(string.Empty).Append(del).              // 032 - 
 | 
			
		||||
            Append(string.Empty).Append(del).              // 033 - 
 | 
			
		||||
            Append(string.Empty).Append(del).              // 034 - 
 | 
			
		||||
            Append(x.DcnMicroScrMean).Append(del). // 035 - Scratch Length
 | 
			
		||||
            Append(string.Empty).Append(del).              // 036 - 
 | 
			
		||||
            Append(string.Empty).Append(del).              // 037 - 
 | 
			
		||||
            Append(string.Empty).Append(del).              // 038 - 
 | 
			
		||||
            Append(x.DcnAllMean).Append(del).      // 039 - Average Sum of Defects
 | 
			
		||||
            Append(x.DcnAllMax).Append(del).       // 040 - Max Sum of defects
 | 
			
		||||
            Append(x.DcnAllMin).Append(del).       // 041 - Min Sum of Defects
 | 
			
		||||
            Append(string.Empty).Append(del).              // 042 - 
 | 
			
		||||
            Append(logistics.MesEntity).Append(del).                 // 043 - 
 | 
			
		||||
            Append(x.DcnAreaMean).Append(del).     // 044 - DCN MM2
 | 
			
		||||
            AppendLine();
 | 
			
		||||
        return new Tuple<string, string>(result.ToString(), x.Date);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void SaveOpenInsightFile(string reportFullPath, DateTime dateTime, ProcessDataStandardFormat processDataStandardFormat, List<txt.Description> descriptions, Test[] tests)
 | 
			
		||||
    {
 | 
			
		||||
        string duplicateFile;
 | 
			
		||||
        bool isDummyRun = false;
 | 
			
		||||
        List<(Shared.Properties.IScopeInfo, string)> collection = new();
 | 
			
		||||
        string duplicateDirectory = Path.Combine(_FileConnectorConfiguration.SourceFileLocation, _CellInstanceName);
 | 
			
		||||
@ -185,35 +128,36 @@ public class FileRead : Shared.FileRead, IFileRead
 | 
			
		||||
            if (!Directory.Exists(duplicateDirectory))
 | 
			
		||||
                _ = Directory.CreateDirectory(duplicateDirectory);
 | 
			
		||||
        }
 | 
			
		||||
        string duplicateFile = Path.Combine(duplicateDirectory, Path.GetFileName(reportFullPath));
 | 
			
		||||
        if (descriptions.Count == 0 || tests.Length == 0)
 | 
			
		||||
            _LastLines = string.Empty;
 | 
			
		||||
            duplicateFile = Path.Combine(duplicateDirectory, Path.GetFileName(reportFullPath));
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            Tuple<string, string> lines = GetLines(_Logistics, descriptions);
 | 
			
		||||
            string check = lines.Item1.Replace(lines.Item2, "$Date$");
 | 
			
		||||
            bool save = string.IsNullOrEmpty(_LastLines) || check != _LastLines;
 | 
			
		||||
            if (save && !string.IsNullOrEmpty(check))
 | 
			
		||||
            long? subgroupId;
 | 
			
		||||
            string fileName = Path.GetFileName(reportFullPath);
 | 
			
		||||
            long breakAfter = dateTime.AddSeconds(_BreakAfterSeconds).Ticks;
 | 
			
		||||
            long preWait = _FileConnectorConfiguration?.FileHandleWaitTime is null ? dateTime.AddMilliseconds(1234).Ticks : dateTime.AddMilliseconds(_FileConnectorConfiguration.FileHandleWaitTime.Value).Ticks;
 | 
			
		||||
            if (string.IsNullOrEmpty(descriptions[0].Reactor) || string.IsNullOrEmpty(descriptions[0].PSN))
 | 
			
		||||
                subgroupId = null;
 | 
			
		||||
            else
 | 
			
		||||
                (subgroupId, int? _, string _) = FromIQS.GetCommandText(_IqsConnectionString, _Logistics, descriptions[0], breakAfter, preWait);
 | 
			
		||||
            if (_StaticRuns.TryGetValue(_Logistics.Sequence, out List<WS.Results> wsResults))
 | 
			
		||||
            {
 | 
			
		||||
                long? subgroupId;
 | 
			
		||||
                _LastLines = check;
 | 
			
		||||
                long breakAfter = dateTime.AddSeconds(_BreakAfterSeconds).Ticks;
 | 
			
		||||
                long preWait = _FileConnectorConfiguration?.FileHandleWaitTime is null ? dateTime.AddMilliseconds(1234).Ticks : dateTime.AddMilliseconds(_FileConnectorConfiguration.FileHandleWaitTime.Value).Ticks;
 | 
			
		||||
                if (string.IsNullOrEmpty(descriptions[0].Reactor) || string.IsNullOrEmpty(descriptions[0].PSN))
 | 
			
		||||
                    subgroupId = null;
 | 
			
		||||
                else
 | 
			
		||||
                    (subgroupId, int? _, string _) = FromIQS.GetCommandText(_IqsConnectionString, _Logistics, descriptions[0], breakAfter, preWait);
 | 
			
		||||
                if (subgroupId is null)
 | 
			
		||||
                    collection.Add(new(new ScopeInfo(tests[0], _OpenInsightFilePattern), lines.Item1));
 | 
			
		||||
                else
 | 
			
		||||
                    collection.Add(new(new ScopeInfo(tests[0], $"{subgroupId.Value} {_OpenInsightFilePattern}"), lines.Item1));
 | 
			
		||||
                string weekOfYear = _Calendar.GetWeekOfYear(_Logistics.DateTimeFromSequence, CalendarWeekRule.FirstDay, DayOfWeek.Sunday).ToString("00");
 | 
			
		||||
                FromIQS.Save(_OpenInsightApiECDirectory, _Logistics, reportFullPath, processDataStandardFormat, descriptions.First(), lines.Item1, subgroupId, weekOfYear);
 | 
			
		||||
                if (wsResults is null || wsResults.Count != 1)
 | 
			
		||||
                    throw new NullReferenceException($"{nameof(wsResults)} {wsResults?.Count} != 1 {_Logistics.Sequence}!");
 | 
			
		||||
                lock (_StaticRuns)
 | 
			
		||||
                    wsResults[0] = WS.Results.Get(wsResults[0], subgroupId);
 | 
			
		||||
            }
 | 
			
		||||
            if (!Directory.Exists(duplicateDirectory))
 | 
			
		||||
                _ = Directory.CreateDirectory(duplicateDirectory);
 | 
			
		||||
            if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
 | 
			
		||||
                WaitForFileConsumption(dateTime, descriptions, isDummyRun, successDirectory, duplicateDirectory, collection, duplicateFile);
 | 
			
		||||
            if (!fileName.StartsWith("Viewer"))
 | 
			
		||||
                duplicateFile = Path.Combine(duplicateDirectory, $"{subgroupId} {fileName}".TrimStart());
 | 
			
		||||
            else
 | 
			
		||||
                duplicateFile = Path.Combine(duplicateDirectory, $"{$"Viewer {subgroupId}".TrimEnd()} {fileName.Replace("Viewer", string.Empty)}");
 | 
			
		||||
            string weekOfYear = _Calendar.GetWeekOfYear(_Logistics.DateTimeFromSequence, CalendarWeekRule.FirstDay, DayOfWeek.Sunday).ToString("00");
 | 
			
		||||
            FromIQS.Save(_OpenInsightApiECDirectory, _Logistics, reportFullPath, processDataStandardFormat, descriptions.First(), subgroupId, weekOfYear);
 | 
			
		||||
        }
 | 
			
		||||
        if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
 | 
			
		||||
        {
 | 
			
		||||
            File.Copy(reportFullPath, duplicateFile, overwrite: true);
 | 
			
		||||
            WaitForFileConsumption(dateTime, descriptions, isDummyRun, successDirectory, duplicateDirectory, collection, duplicateFile);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -376,7 +376,7 @@ public class FromIQS
 | 
			
		||||
        return result;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    internal static void Save(string openInsightApiECDirectory, Logistics logistics, string reportFullPath, ProcessDataStandardFormat processDataStandardFormat, txt.Description description, string lines, long? subGroupId, string weekOfYear)
 | 
			
		||||
    internal static void Save(string openInsightApiECDirectory, Logistics logistics, string reportFullPath, ProcessDataStandardFormat processDataStandardFormat, txt.Description description, long? subGroupId, string weekOfYear)
 | 
			
		||||
    {
 | 
			
		||||
        string checkFile;
 | 
			
		||||
        string fileName = Path.GetFileName(reportFullPath);
 | 
			
		||||
@ -390,15 +390,9 @@ public class FromIQS
 | 
			
		||||
        checkFile = Path.Combine(ecDirectory, fileName);
 | 
			
		||||
        if (ecExists && !File.Exists(checkFile))
 | 
			
		||||
            File.Copy(reportFullPath, checkFile);
 | 
			
		||||
        checkFile = Path.Combine(ecDirectory, $"{logistics.DateTimeFromSequence.Ticks}.txt");
 | 
			
		||||
        if (ecExists && !File.Exists(checkFile))
 | 
			
		||||
            File.WriteAllText(checkFile, lines);
 | 
			
		||||
        checkFile = Path.Combine(ecDirectory, $"{logistics.DateTimeFromSequence.Ticks}.json");
 | 
			
		||||
        if (ecExists && !File.Exists(checkFile))
 | 
			
		||||
            File.WriteAllText(checkFile, json);
 | 
			
		||||
        checkFile = Path.Combine(ecDirectory, $"{logistics.DateTimeFromSequence.Ticks}.lbl");
 | 
			
		||||
        if (ecExists && !File.Exists(checkFile))
 | 
			
		||||
            File.WriteAllText(checkFile, processDataStandardFormat.Body[processDataStandardFormat.Body.Count - 1]);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static string GetCommandText(string[] iqsCopyValues)
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user