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;
}
/// ******************************************************************
}
}