Added logic to only process RO value updates for the specified DocVersion.
This commit is contained in:
@@ -13,7 +13,7 @@ namespace VEPROMS.CSLA.Library
|
||||
[Serializable()]
|
||||
private class AffectedDROUsagesCriteria
|
||||
{
|
||||
public AffectedDROUsagesCriteria(int roDbID, string roid, string roDesc, string command, string userID)
|
||||
public AffectedDROUsagesCriteria(int roDbID, string roid, string roDesc, string command, string userID, string versionList)
|
||||
{
|
||||
_RODbID = roDbID;
|
||||
_ROID = roid;
|
||||
@@ -21,6 +21,12 @@ namespace VEPROMS.CSLA.Library
|
||||
_Command = command;
|
||||
_UserID = userID;
|
||||
}
|
||||
private string _VersionList;
|
||||
public string VersionList
|
||||
{
|
||||
get { return _VersionList; }
|
||||
set { _VersionList = value; }
|
||||
}
|
||||
private int _RODbID;
|
||||
|
||||
public int RODbID
|
||||
@@ -57,11 +63,11 @@ namespace VEPROMS.CSLA.Library
|
||||
set { _UserID = value; }
|
||||
}
|
||||
}
|
||||
public static DROUsageInfoList GetAffected(int roDbID, string roid, string roDesc, string command)
|
||||
public static DROUsageInfoList GetAffected(int roDbID, string roid, string roDesc, string command, string versionList)
|
||||
{
|
||||
try
|
||||
{
|
||||
DROUsageInfoList tmp = DataPortal.Fetch<DROUsageInfoList>(new AffectedDROUsagesCriteria(roDbID, roid, roDesc, command, Volian.Base.Library.VlnSettings.UserID));
|
||||
DROUsageInfoList tmp = DataPortal.Fetch<DROUsageInfoList>(new AffectedDROUsagesCriteria(roDbID, roid, roDesc, command, Volian.Base.Library.VlnSettings.UserID, versionList));
|
||||
DROUsageInfo.AddList(tmp);
|
||||
tmp.AddEvents();
|
||||
return tmp;
|
||||
@@ -88,6 +94,7 @@ namespace VEPROMS.CSLA.Library
|
||||
cm.Parameters.AddWithValue("@RODesc", criteria.RODesc);
|
||||
cm.Parameters.AddWithValue("@Command", criteria.Command);
|
||||
cm.Parameters.AddWithValue("@UserID", criteria.UserID);
|
||||
cm.Parameters.AddWithValue("@VersionList", criteria.VersionList);
|
||||
|
||||
cm.CommandTimeout = Database.DefaultTimeout;
|
||||
using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
|
||||
|
@@ -284,6 +284,7 @@ namespace VEPROMS.CSLA.Library
|
||||
{
|
||||
docver.DocVersionAssociations[0].MyROFst = rofst;
|
||||
docver.Save();
|
||||
UpdateROValuesText(origROFst, rofst,docver.VersionID.ToString());
|
||||
return rofst;
|
||||
}
|
||||
|
||||
@@ -322,7 +323,7 @@ namespace VEPROMS.CSLA.Library
|
||||
}
|
||||
// Now update the usages: compare old to new rofsts and update usages accordingly, i.e. modified
|
||||
// values, deleted ros, etc.
|
||||
UpdateROValuesText(origROFst, rofst);
|
||||
UpdateROValuesText(origROFst, rofst, docver.VersionID.ToString());
|
||||
return rofst;
|
||||
}
|
||||
}
|
||||
@@ -348,7 +349,7 @@ namespace VEPROMS.CSLA.Library
|
||||
}
|
||||
return sb.ToString();
|
||||
}
|
||||
private static void UpdateROValuesText(ROFstInfo origROFstInfo, ROFst newROFst)
|
||||
private static void UpdateROValuesText(ROFstInfo origROFstInfo, ROFst newROFst, string versionList)
|
||||
{
|
||||
ROFSTLookup origLU = new ROFSTLookup(origROFstInfo);
|
||||
ROFSTLookup newLU = new ROFSTLookup(newROFst);
|
||||
@@ -365,7 +366,7 @@ namespace VEPROMS.CSLA.Library
|
||||
// roid's are stored in database as 16 characters long in the rousages table. They may be stored
|
||||
// as 12 characters in the ro.fst.
|
||||
string padroid = chg.Length <= 12 ? chg + "0000" : chg;
|
||||
using (RoUsageInfoList affected = RoUsageInfoList.GetAffected(origROFstInfo.MyRODb.RODbID, padroid, desc, "Changed"))
|
||||
using (RoUsageInfoList affected = RoUsageInfoList.GetAffected(origROFstInfo.MyRODb.RODbID, padroid, desc, "Changed", versionList))
|
||||
{
|
||||
foreach (RoUsageInfo roUsg in affected)
|
||||
{
|
||||
@@ -398,7 +399,7 @@ namespace VEPROMS.CSLA.Library
|
||||
// roid's are stored in database as 16 characters long in the rousages table. They may be stored
|
||||
// as 12 characters in the ro.fst.
|
||||
string padroid = chg.Length <= 12 ? chg + "0000" : chg;
|
||||
using (DROUsageInfoList affected = DROUsageInfoList.GetAffected(origROFstInfo.MyRODb.RODbID, padroid.Substring(0,12), desc, "Changed"))
|
||||
using (DROUsageInfoList affected = DROUsageInfoList.GetAffected(origROFstInfo.MyRODb.RODbID, padroid.Substring(0, 12), desc, "Changed", versionList))
|
||||
{
|
||||
foreach (DROUsageInfo droUsg in affected)
|
||||
{
|
||||
@@ -411,7 +412,7 @@ namespace VEPROMS.CSLA.Library
|
||||
{
|
||||
string desc = string.Format("Deleted RO: Value = {0}", origLU.GetRoValue(del));
|
||||
string padroiddel = del.Length <= 12 ? del + "0000" : del;
|
||||
using (RoUsageInfoList affected = RoUsageInfoList.GetAffected(origROFstInfo.MyRODb.RODbID, padroiddel, desc, "Deleted"))
|
||||
using (RoUsageInfoList affected = RoUsageInfoList.GetAffected(origROFstInfo.MyRODb.RODbID, padroiddel, desc, "Deleted",versionList))
|
||||
{
|
||||
foreach (RoUsageInfo roUsg in affected)
|
||||
{
|
||||
@@ -428,7 +429,7 @@ namespace VEPROMS.CSLA.Library
|
||||
}
|
||||
}
|
||||
}
|
||||
using (DROUsageInfoList Daffected = DROUsageInfoList.GetAffected(origROFstInfo.MyRODb.RODbID, del.Substring(0,12), desc, "Deleted"))
|
||||
using (DROUsageInfoList Daffected = DROUsageInfoList.GetAffected(origROFstInfo.MyRODb.RODbID, del.Substring(0, 12), desc, "Deleted", versionList))
|
||||
{
|
||||
foreach (DROUsageInfo droUsg in Daffected)
|
||||
{
|
||||
|
@@ -13,13 +13,20 @@ namespace VEPROMS.CSLA.Library
|
||||
[Serializable()]
|
||||
private class AffectedROUsagesCriteria
|
||||
{
|
||||
public AffectedROUsagesCriteria(int roDbID, string roid, string roDesc, string command, string userID)
|
||||
public AffectedROUsagesCriteria(int roDbID, string roid, string roDesc, string command, string userID, string versionList)
|
||||
{
|
||||
_RODbID = roDbID;
|
||||
_ROID = roid;
|
||||
_RODesc = roDesc;
|
||||
_Command = command;
|
||||
_UserID = userID;
|
||||
_VersionList = versionList;
|
||||
}
|
||||
private string _VersionList;
|
||||
public string VersionList
|
||||
{
|
||||
get { return _VersionList; }
|
||||
set { _VersionList = value; }
|
||||
}
|
||||
private int _RODbID;
|
||||
|
||||
@@ -57,11 +64,11 @@ namespace VEPROMS.CSLA.Library
|
||||
set { _UserID = value; }
|
||||
}
|
||||
}
|
||||
public static RoUsageInfoList GetAffected(int roDbID, string roid, string roDesc, string command)
|
||||
public static RoUsageInfoList GetAffected(int roDbID, string roid, string roDesc, string command, string versionList)
|
||||
{
|
||||
try
|
||||
{
|
||||
RoUsageInfoList tmp = DataPortal.Fetch<RoUsageInfoList>(new AffectedROUsagesCriteria(roDbID, roid, roDesc, command, Volian.Base.Library.VlnSettings.UserID));
|
||||
RoUsageInfoList tmp = DataPortal.Fetch<RoUsageInfoList>(new AffectedROUsagesCriteria(roDbID, roid, roDesc, command, Volian.Base.Library.VlnSettings.UserID,versionList));
|
||||
RoUsageInfo.AddList(tmp);
|
||||
tmp.AddEvents();
|
||||
return tmp;
|
||||
@@ -88,6 +95,7 @@ namespace VEPROMS.CSLA.Library
|
||||
cm.Parameters.AddWithValue("@RODesc", criteria.RODesc);
|
||||
cm.Parameters.AddWithValue("@Command", criteria.Command);
|
||||
cm.Parameters.AddWithValue("@UserID", criteria.UserID);
|
||||
cm.Parameters.AddWithValue("@VersionList", criteria.VersionList);
|
||||
|
||||
cm.CommandTimeout = Database.DefaultTimeout;
|
||||
using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
|
||||
|
Reference in New Issue
Block a user