C2021-065 – BNPP Alarms logic to get RO info based on the OTHER (i.e. OtherName) applicability setting

This commit is contained in:
John Jenko 2022-01-14 18:56:00 +00:00
parent 89405c08a6
commit 7a753badc8
2 changed files with 28 additions and 2 deletions

View File

@ -108,6 +108,16 @@ namespace VEPROMS.CSLA.Library
}
}
}
//C2021-065 used by Barakah Alarms so that we get ROLookUp for the Other applicability
private string _OtherChild;
public string OtherChild
{
get
{ return _OtherChild;}
set
{ _OtherChild = value;}
}
public ROFSTLookup(ROFst rofst, DocVersionInfo dvi)
{
_ROFst = rofst;
@ -312,6 +322,12 @@ namespace VEPROMS.CSLA.Library
string childName = MyDocVersionInfo.DocVersionConfig.Unit_Name;
string aplString = roval;
string ChldValue = "";
// C2021-065 see if we need to get the RO information for the "Other" Child applicability value
if (OtherChild != null && OtherChild != "")
{
selChldIdx = Convert.ToInt32(OtherChild); // the OTHER unit number
childName = MyDocVersionInfo.DocVersionConfig.Other_Unit_Name;
}
// if the RO Value contains Parent/Child values, parse out default value and the child (slave or unit specific) value
while (roval != null && roval.Contains("<APL DefaultVal="))
{

View File

@ -176,13 +176,23 @@ namespace VEPROMS.CSLA.Library
private Dictionary<string, ROFSTLookup> dicLookups = new Dictionary<string, ROFSTLookup>();
public ROFSTLookup GetROFSTLookup(DocVersionInfo dvi)
{
//string key = string.Format("{0}.{1}",dvi.DocVersionAssociations[0].ROFstID,dvi.DocVersionConfig.SelectedSlave);
string key = string.Format("{0}.{1}.{2}", ROFstID, dvi.DocVersionConfig.MaxSlaveIndex, dvi.DocVersionConfig.SelectedSlave);
return GetROFSTLookup(dvi, "");
}
public ROFSTLookup GetROFSTLookup(DocVersionInfo dvi, string ovrrideChild)
{
string key = "";
if (ovrrideChild == "")
key = string.Format("{0}.{1}.{2}", ROFstID, dvi.DocVersionConfig.MaxSlaveIndex, dvi.DocVersionConfig.SelectedSlave);
else
key = string.Format("{0}.{1}.{2}", ROFstID, dvi.DocVersionConfig.MaxSlaveIndex, ovrrideChild); // C2021-065 use OTHER child information
if (!dicLookups.ContainsKey(key))
{
dicLookups.Clear(); //B2022-001 clear the dictionary each time to free up memory - out of memory fix
dicLookups.Add(key, new ROFSTLookup(this, dvi));
}
if (ovrrideChild != "")
dicLookups[key].OtherChild = ovrrideChild; // C2021-065 use the OTHER applicabiltiy info to get RO Values
return dicLookups[key];
}
#endregion