B2017-209: Restoring an enhanced step whose source step is deleted causes crash
This commit is contained in:
parent
77c7cb6d6b
commit
fbc4b42ff1
@ -1632,7 +1632,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
// B2017-069 when we restore a step that once had enhanced document links,
|
// B2017-069 when we restore a step that once had enhanced document links,
|
||||||
// remove the enhanced document link information - fixes delete/restore issue of linked steps.
|
// remove the enhanced document link information - fixes delete/restore issue of linked steps.
|
||||||
RemoveEnhancedFromConfig(tmp);
|
RemoveEnhancedFromConfig(tmp, false);
|
||||||
return tmp;
|
return tmp;
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
@ -1641,8 +1641,8 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// B2017-070 - when retoring a step that once had enhanced links, remove the link info for the notes and cautions as well
|
// B2017-070 - when restoring a step that once had enhanced links, remove the link info for the notes and cautions as well
|
||||||
private static void RemoveEnhancedFromConfig(ItemInfo tmp)
|
public static void RemoveEnhancedFromConfig(ItemInfo tmp, bool doOneStepOnly)
|
||||||
{
|
{
|
||||||
XmlDocument xd = new XmlDocument();
|
XmlDocument xd = new XmlDocument();
|
||||||
if (tmp.MyContent.Config == null || tmp.MyContent.Config == "") return; // B2017-164 & B2017-172 check for null or empty config
|
if (tmp.MyContent.Config == null || tmp.MyContent.Config == "") return; // B2017-164 & B2017-172 check for null or empty config
|
||||||
@ -1660,17 +1660,18 @@ namespace VEPROMS.CSLA.Library
|
|||||||
tmp._MyConfig = null; // refresh the memory value
|
tmp._MyConfig = null; // refresh the memory value
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (doOneStepOnly) return;
|
||||||
if (tmp.IsHigh)
|
if (tmp.IsHigh)
|
||||||
{
|
{
|
||||||
if (tmp.Cautions != null)
|
if (tmp.Cautions != null)
|
||||||
foreach (ItemInfo chld in tmp.Cautions)
|
foreach (ItemInfo chld in tmp.Cautions)
|
||||||
{
|
{
|
||||||
RemoveEnhancedFromConfig(chld);
|
RemoveEnhancedFromConfig(chld, false);
|
||||||
}
|
}
|
||||||
if (tmp.Notes != null)
|
if (tmp.Notes != null)
|
||||||
foreach (ItemInfo chld in tmp.Notes)
|
foreach (ItemInfo chld in tmp.Notes)
|
||||||
{
|
{
|
||||||
RemoveEnhancedFromConfig(chld);
|
RemoveEnhancedFromConfig(chld, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -884,7 +884,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
{
|
{
|
||||||
// the RemoveEnhancedFromConfig method clears from the pasted step and any cautions/notes that may be off
|
// the RemoveEnhancedFromConfig method clears from the pasted step and any cautions/notes that may be off
|
||||||
// of the pasted step.
|
// of the pasted step.
|
||||||
if (pasteItem.HasEnhancedLinkedStep) ItemInfo.RemoveEnhancedFromConfig(pasteItem);
|
if (pasteItem.HasEnhancedLinkedStep) ItemInfo.RemoveEnhancedFromConfig(pasteItem, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -634,6 +634,17 @@ namespace Volian.Controls.Library
|
|||||||
if (myRoFst != null) myRoFst.ROTableUpdate -= new ROFstInfoROTableUpdateEvent(myRoFst_ROTableUpdate);
|
if (myRoFst != null) myRoFst.ROTableUpdate -= new ROFstInfoROTableUpdateEvent(myRoFst_ROTableUpdate);
|
||||||
RefreshRequired = true;
|
RefreshRequired = true;
|
||||||
UpdateHistory();
|
UpdateHistory();
|
||||||
|
MyItemInfo.RefreshConfig();
|
||||||
|
// B2017-209: see if the restore has invalid enhanced data, i.e. the source step that it 'links to' does not exist.
|
||||||
|
// Note that this is only applicable when restoring an enhanced step if its linked source step is deleted because
|
||||||
|
// the enhanced (background/deviation/etc) cannot be deleted unless they are unlinked first.
|
||||||
|
if (MyItemInfo.IsEnhancedStep)
|
||||||
|
{
|
||||||
|
// get id for step that is linked & see if it exists - if not, clear the enhanced config data
|
||||||
|
StepConfig sc = MyItemInfo.MyConfig as StepConfig;
|
||||||
|
ItemInfo iexists = ItemInfo.Get(sc.MyEnhancedDocuments[0].ItemID);
|
||||||
|
if (iexists == null) ItemInfo.RemoveEnhancedFromConfig(MyItemInfo, true);
|
||||||
|
}
|
||||||
myRTB.Clear();
|
myRTB.Clear();
|
||||||
myVFG.Clear();
|
myVFG.Clear();
|
||||||
MyEditItem.SetAllTabs();
|
MyEditItem.SetAllTabs();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user