211 lines
3.2 KiB
Plaintext
211 lines
3.2 KiB
Plaintext
|
|
//
|
|
// Generate Specific Position's Support Comment
|
|
// index is number of Supports ...
|
|
string GenerateSupportSignalComment(
|
|
ulong ticket, // Position/Order Ticket
|
|
int index // Support Index ...
|
|
)
|
|
{
|
|
//
|
|
string result = "";
|
|
|
|
//
|
|
result = XSupportToken + "(" + (string)ticket + "," + ToString(index) + ")";
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
//
|
|
// Extract Support Parameters String from specified Comment ...
|
|
string ExtractSupportParam(string comment)
|
|
{
|
|
//
|
|
string result = "";
|
|
if (StringLen(comment) <= 0)
|
|
{
|
|
return result;
|
|
}
|
|
|
|
//
|
|
result = ExtractString(
|
|
comment,
|
|
XSupportToken + "(",
|
|
")");
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
//
|
|
// Extract Support Info as String array for Specific Comment ...
|
|
bool ExtractSupportParams(
|
|
string comment, // Specified Comment ...
|
|
string ¶ms[] // Hold Result ...
|
|
)
|
|
{
|
|
//
|
|
bool result = false;
|
|
|
|
//
|
|
string supParam = ExtractSupportParam(comment);
|
|
if (StringLen(supParam) == 0)
|
|
{
|
|
return result;
|
|
}
|
|
|
|
//
|
|
SplitContent(
|
|
params,
|
|
supParam);
|
|
int paramsCount = ArraySize(params);
|
|
|
|
//
|
|
result = paramsCount == 2;
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
//
|
|
// Extract Support Parent Ticket ...
|
|
ulong ExtractParentTicket(string comment)
|
|
{
|
|
//
|
|
ulong result = 0;
|
|
|
|
//
|
|
string params[];
|
|
bool isSupport = ExtractSupportParams(
|
|
comment,
|
|
params);
|
|
if (!isSupport)
|
|
{
|
|
return result;
|
|
}
|
|
|
|
//
|
|
result = (ulong)params[0];
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
//
|
|
// Extract Support Index ...
|
|
int ExtractSupportIndex(string comment)
|
|
{
|
|
//
|
|
int result = -1;
|
|
|
|
//
|
|
string params[];
|
|
bool isSupport = ExtractSupportParams(
|
|
comment,
|
|
params);
|
|
if (!isSupport)
|
|
{
|
|
return result;
|
|
}
|
|
|
|
//
|
|
result = (int)params[1];
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
//
|
|
string GenerateSLTrailComment(int level)
|
|
{
|
|
//
|
|
string result = "";
|
|
|
|
//
|
|
if (level <= 0)
|
|
{
|
|
return result;
|
|
}
|
|
|
|
//
|
|
result = XSLTrailToken + "(" + ToString(level) + ")";
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
//
|
|
int ExtractSLTrailLevel(string comment)
|
|
{
|
|
//
|
|
int result = 0;
|
|
|
|
//
|
|
if (StringLen(comment) == 0)
|
|
{
|
|
return result;
|
|
}
|
|
|
|
//
|
|
string levelStr = ExtractString(
|
|
comment,
|
|
XSLTrailToken + "(",
|
|
")");
|
|
if (StringLen(levelStr) == 0)
|
|
{
|
|
return result;
|
|
}
|
|
|
|
//
|
|
result = (int)levelStr;
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
//
|
|
string PrepareSLTrailComment(
|
|
const string comment // Original Position Comment ...
|
|
)
|
|
{
|
|
//
|
|
string result = "";
|
|
|
|
//
|
|
if (StringLen(comment) == 0)
|
|
{
|
|
return result;
|
|
}
|
|
|
|
//
|
|
int level = 0;
|
|
result = comment;
|
|
|
|
//
|
|
// Check Comment Contains SL Trailing or not ...
|
|
int lastTrailLevel = ExtractSLTrailLevel(comment);
|
|
if (lastTrailLevel <= 0)
|
|
{
|
|
level++;
|
|
}
|
|
else
|
|
{
|
|
//
|
|
level = lastTrailLevel + 1;
|
|
string lastLevelStr = GenerateSLTrailComment(lastTrailLevel);
|
|
StringReplace(
|
|
result,
|
|
lastLevelStr,
|
|
"");
|
|
}
|
|
|
|
//
|
|
// Generate level Comment ...
|
|
string levelStr = GenerateSLTrailComment(level);
|
|
result += levelStr;
|
|
|
|
//
|
|
return result;
|
|
}
|