Thursday, 9 October 2014

Job to get the license file

static void OutputLicenseToText(Args _args)
{
  #define.licenseVersion(2)
  #define.KeywordLen(20)
  #define.keywordLicense('License')
  #define.keywordProperties('Properties')
  #define.keywordCodes('Codes')
  #define.keywordCodeLine('CodeLine')
  #define.keywordDate('Date')
  #define.keywordSerial('Serial')
  #define.keywordValue('Value')
  #define.blank('')
  #define.space1(' ')
  #define.space2(' ')
  #define.space3(' ')
  #define.spaceHash(' #')
  #define.OutputFilename(@'C:\OutputLicenseKeys.txt')

  #define.keywordInfo(1)
  #define.keywordWarning(2)

  SysConfig sysConfig;
  SysLicenseCodeSort sysLicenseCodeSort;
  container fileOut;
  int i;
  System.IO.StreamWriter sw;
  InteropPermission perm = new InteropPermission(InteropKind::ClrInterop);
  ;

  fileOut += "LicenseVersion " + strfmt("%1", #licenseVersion);
  fileOut += #blank;
  fileOut += #keywordLicense + #spaceHash + xSysConfig::find(ConfigType::LicenseName,0).Value;
  fileOut += #blank;
  fileOut += #space1 + #keywordProperties;
  fileOut += #space2 + "Name" + #spaceHash + xSysConfig::find(ConfigType::LicenseName,0).Value;
  fileOut += #space2 + #keywordSerial + #spaceHash + xSysConfig::find(ConfigType::SerialNo,0).Value;
  fileOut += #space2 + #keywordDate + #spaceHash + xSysConfig::find(ConfigType::LicenseName,1).Value;
  fileOut += #space1 + "EndProperties";
  fileOut += #blank;
  fileOut += #space1 + #keywordCodes;

  // Build CodeLines
  while select sysConfig
  where sysConfig.configType == ConfigType::AccessCodes &&
  sysConfig.value != #blank
  join sysLicenseCodeSort
  order by SortIdx
  where sysLicenseCodeSort.Id == sysConfig.id
  {
  fileOut += #space2 + #keywordCodeLine + #spaceHash + int2str(sysConfig.id + 1);
  fileOut += #space3 + #keywordValue + #spaceHash + sysConfig.value;
  fileOut += #space2 + "EndCodeLine";
  fileOut += #blank;
  }

  fileOut += #blank;
  fileOut += #space2 + "EndCodes";
  fileOut += #space1 + "EndLicense";

  // Begin file output
  perm.assert();

  sw = new System.IO.StreamWriter(#OutputFilename);

  for (i=1; i<=conLen(fileOut); i++)
  {
  sw.WriteLine(conPeek(fileOut, i));
  }

  sw.Flush();
  sw.Close();
  sw.Dispose();

  CodeAccessPermission::revertAssert();

  info("License successfully output to " + #OutputFilename);
}

No comments:

Post a Comment