0% found this document useful (0 votes)
7 views6 pages

Fopmop Code Parsing and Serialization

Uploaded by

treekengmanow
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views6 pages

Fopmop Code Parsing and Serialization

Uploaded by

treekengmanow
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

using System;

using [Link];
using [Link];
using [Link];
using [Link];
using [Link];

namespace [Link]
{
public class CodeParsing
{
private [Link] _api;
private int FREEFORMTEXT_MAX = 16;
private int TOTALTEXT_MAX = 17;
/// ******************************************************************
public CodeParsing([Link] api)
{
_api = api;
}

///*************************************************************
/// CODE PARSING LOGIC BELOW
/// *** ANY CHANGES MADE MUST BE MADE TO DBC Print Dialog Print Preview AND
VICE VERSA ***
///*************************************************************
public List<string> ParseString(string format, Dictionary<string, object>
fields)
{
var batch = fields["BATCH"];
var line = fields["LINE"];
var mfd = fields["MFD"];
var exp = fields["EXP"];

format = [Link]();
bool hasQuotes = [Link](format, "\"");
string replacement = format;
//if(hasQuotes) replacement = [Link](format);

var output = new StringBuilder();


List<string> outputList = new List<string>();

string[] keywords = [Link](replacement, "(;|,|[\"](?<=\")[^\"]+[\"])");

bool isEnd = false;


string lineString;
foreach(var key in keywords)
{
if([Link]("\"") && [Link]("\""))
[Link]([Link]('"'));
switch(key)
{
case "BATCH":
if(batch == "" || batch == null) { [Link]("");}
else { [Link](batch); }
break;
case "LINE":
if(line == "" || batch == null) { [Link]("");}
else { [Link](line); }
break;
case "MFD":
if( mfd == "" || mfd == null) { [Link]("");}
else { [Link](mfd); }
break;
case "EXP":
if(exp == "" || exp == null) { [Link](""); }
else { [Link](exp); }
break;
case "TIME":
[Link]([Link]("HH:mm"));
break;
case ";":
if([Link] > this.TOTALTEXT_MAX) { lineString =
[Link](0, this.TOTALTEXT_MAX);}
else { lineString = [Link](); }
[Link](lineString);
[Link]();
break;
case ",":
[Link](" ");
break;
default:
break;
}
}
if([Link] > this.TOTALTEXT_MAX) { lineString = [Link](0,
this.TOTALTEXT_MAX); }
else { lineString = [Link](); }
[Link](lineString);

//Ignore any strings that exceed the 4th line limit


if([Link] > 4) { outputList = [Link](0,4); }

while([Link] < 4)
{
[Link]([Link]);
}

return outputList;
}
/// ******************************************************************
public Dictionary<string, object> GetFields(int systemID)
{
var outputDict = new Dictionary<string, object>();

string sql = [Link](@"


DECLARE @SystemID INT = {0}
DECLARE @ExternalID NVARCHAR(200) = (SELECT ExternalID FROM tSystem WHERE ID =
@SystemID)

DECLARE @JobID INT =


(
SELECT TOP 1 JobID
FROM tJobSystemActual
WHERE SystemID = @SystemID
AND EndDateTime IS NULL
ORDER BY StartDateTime DESC
)
if @JobID IS NULL SET @JobID = -1
if (@JobID = -1)
BEGIN
SELECT
@SystemID AS [SystemID]
, @SystemID AS [Line]
, @JobID AS [JobID]
, '' AS [JobName]
, -1 AS [BatchID]
, '' AS [BatchNumber]
, '' AS [BatchExpiryDateFormatted]
, '' AS [BatchProductionDateFormatted]
, -1 AS [IsExpiryCalculated]
END
ELSE

BEGIN

DECLARE @JobName NVARCHAR(200) =


(
SELECT TOP 1 Name
FROM tJob
WHERE ID = @JobID
)
if @JobName IS NULL SET @JobName = ''

SELECT TOP 1
@SystemID AS [SystemID]
, @SystemID AS [Line]
, @JobID AS [JobID]
, @JobName AS [JobName]
, [Link] AS [BatchID]
, [Link] AS [BatchNumber]
, ISNULL(tBatchJob.[Capture05] + tBatchJob.[Capture06], '') AS
[BatchExpiryDateFormatted]
, ISNULL(tBatchJob.[Capture07] + tBatchJob.[Capture08], '') AS
[BatchProductionDateFormatted]
, ISNULL(tBatchJob.[Capture19], -1) AS [IsExpiryCalculated]
FROM tJob tBatchJob

WHERE ParentJobID = @JobID


ORDER BY ID DESC
END"
, systemID);

var result = _api.[Link](sql);

var line = [Link][0].Field<string>("Line");


line = [Link]([Link]-1);
int index = [Link](".");

[Link]("LINE", [Link](0, index+1));


[Link]("BATCH", [Link][0].Field<string>("BatchNumber"));
[Link]("MFD",
[Link][0].Field<string>("BatchProductionDateFormatted"));
[Link]("EXP",
[Link][0].Field<string>("BatchExpiryDateFormatted"));

return outputDict;
}

/// ******************************************************************
private string GetCleanFOPMoP(string format)
{
int startIndex = [Link]('"');
Match mc = [Link](format, "[\"](?<=\")[^\"]+[\"]");
string oldFreeText = [Link]();

string freeText = this.Recursively_RemoveDelimiter(oldFreeText);

int oldFreeTextLength = [Link];

format = [Link](startIndex, oldFreeTextLength);

string replacement = [Link](0, startIndex) + freeText +


[Link](startIndex);

return replacement;
}

/// ******************************************************************
private string Recursively_RemoveDelimiter(string freeText)
{
if([Link](";"))
{
int index = [Link](';');
freeText = [Link](index, 1);
}
else if([Link](","))
{
int index = [Link](',');
freeText = [Link](index, 1);
}
else
{
return freeText;
}

freeText = this.Recursively_RemoveDelimiter(freeText);
return freeText;
}

/// ******************************************************************
public string GetIpAddr(int systemID)
{
string sql = @"
DECLARE @SystemID INT = {0};
SELECT
[Link]
FROM
tEventMonitorGroup emg
JOIN
tEventMonitor em
ON [Link] = [Link]
JOIN
vwCustomPropertyEventMonitor v
ON [Link] = [Link]
WHERE
[Link] = @SystemID
AND [Link] = 'Direct Batch Coders'
AND [Link] = 1".FormatWith(_api.[Link]<int>(systemID));

var result = _api.[Link]<string>(sql);


if(![Link])
{
_api.[Link](result, "IpAddr Retrieve");
}

return [Link];
}

/// ******************************************************************
/// Potentially need to fix the '[Link]' and return statement
public int GetPortNumber(int systemID)
{
string sql = @"
DECLARE @SystemID INT = {0};
SELECT
v.[[Link]]
FROM
tEventMonitorGroup emg
JOIN
tEventMonitor em
ON [Link] = [Link]
JOIN
vwCustomPropertyEventMonitor v
ON [Link] = [Link]
WHERE
[Link] = @SystemID
AND [Link] = 'Direct Batch Coders'
AND [Link] = 1".FormatWith(_api.[Link]<int>(systemID));

var result = _api.[Link]<int>(sql);


if(![Link])
{
_api.[Link](result, "Port Retrieve");
}

return [Link];
}

/// ******************************************************************
public List<string> DeserializeFopmop(string printString)
{
List<string> output = new List<string>();
var mc = [Link](printString, "[\\|][^\\|]+[\\|]");
foreach(Match item in mc)
{
var itemVal = [Link]();
itemVal = [Link]('|');
_api.[Link](itemVal, "deserialize");
[Link](itemVal);
}
return output;
}

/// ******************************************************************
public string SerializeFopmop(List<string> printStringList)
{
string output = [Link];
foreach(var line in printStringList)
{
output = output + "|" + line + "|";
}

return output;
}

/// ******************************************************************
public int HasTime(string fopmop)
{
string format = [Link]();
string[] keywords = [Link](format, "(;|,|[\"](?<=\")[^\"]+[\"])");

foreach(var key in keywords)


{
if(key == "TIME")
{
return 1;
}
}

return 0;
}

/// ******************************************************************
}
}

You might also like