Added sql procedure ‘ClearCBOverrideForProcedure’ to clear content/config’s Step CBOverride fields for an input itemID (that is a procedure), to fix B2015-039
B2015-039: Clear Change Bar Overrides for approval
This commit is contained in:
@@ -1067,5 +1067,72 @@ namespace VEPROMS.CSLA.Library
|
||||
}
|
||||
this.RaiseListChangedEvents = true;
|
||||
}
|
||||
#region ClearCBOverride
|
||||
// B2015-039 fix:
|
||||
// the following code clears the change bar override attribute from the step config, using the
|
||||
// sql stored procedure 'ClearCBOverrideForProcedure'. The stored procedure returns
|
||||
// a list of content records whose config was updated - so that this list can be used
|
||||
// to refresh config data (caching) and refresh content (caching & User Interface)
|
||||
[Serializable()]
|
||||
private class ClearCBOverrideCriteria
|
||||
{
|
||||
public ClearCBOverrideCriteria(int? itemID)
|
||||
{
|
||||
_ItemID = itemID;
|
||||
}
|
||||
private int? _ItemID;
|
||||
public int? ItemID
|
||||
{
|
||||
get { return _ItemID; }
|
||||
set { _ItemID = value; }
|
||||
}
|
||||
}
|
||||
private void DataPortal_Fetch(ClearCBOverrideCriteria criteria)
|
||||
{
|
||||
try
|
||||
{
|
||||
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
|
||||
{
|
||||
using (SqlCommand cm = cn.CreateCommand())
|
||||
{
|
||||
cm.CommandType = CommandType.StoredProcedure;
|
||||
cm.CommandText = "ClearCBOverrideForProcedure";
|
||||
cm.Parameters.AddWithValue("@ItemID", criteria.ItemID);
|
||||
cm.CommandTimeout = Database.DefaultTimeout;
|
||||
using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
|
||||
{
|
||||
while (dr.Read())
|
||||
{
|
||||
IsReadOnly = false;
|
||||
while (dr.Read())
|
||||
{
|
||||
ContentInfo contentInfo = new ContentInfo(dr);
|
||||
this.Add(contentInfo);
|
||||
}
|
||||
IsReadOnly = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Database.LogException("ClearCBOverrideCriteria.DataPortal_Fetch", ex);
|
||||
throw new DbCslaException("ClearCBOverrideCriteria.DataPortal_Fetch", ex);
|
||||
}
|
||||
}
|
||||
public static ContentInfoList GetClearedCBOverrides(int itemID)
|
||||
{
|
||||
try
|
||||
{
|
||||
ContentInfoList tmp = DataPortal.Fetch<ContentInfoList>(new ClearCBOverrideCriteria(itemID));
|
||||
return tmp;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new DbCslaException("Error on ContentInfoList.GetClearedCBOverrides", ex);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user