From d228ca58dc9ea2c3f18db21516ee8ec28eee159e Mon Sep 17 00:00:00 2001 From: John Date: Fri, 1 Sep 2017 12:40:09 +0000 Subject: [PATCH] B2017-179 detect if Paste/Replace was aborted due to Transition references and user had selected to go to the first transition that needs attention. The Paste/Replace method can now return a NULL, so we needed to handle that. --- .../VEPROMS.CSLA.Library/Extension/ItemInsertExt.cs | 13 ++++++++++++- PROMS/Volian.Controls.Library/DisplayTabControl.cs | 1 + 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/ItemInsertExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/ItemInsertExt.cs index 1ec78e28..f503d8a5 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/ItemInsertExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/ItemInsertExt.cs @@ -2334,6 +2334,13 @@ namespace VEPROMS.CSLA.Library #region PasteReplace public static ItemInfo PasteReplace(ItemInfo itemInfo, int copyStartID, string chgid) { + bool tmp= false; + return PasteReplace(itemInfo, copyStartID, chgid, ref tmp); + } + // B2017-179 return a bool (firstTrans) if we could not replace the step but the user wants to position to the first transition that needs resolved + public static ItemInfo PasteReplace(ItemInfo itemInfo, int copyStartID, string chgid, ref bool firstTrans) + { + firstTrans = false; if (!CanDeleteObject()) throw new System.Security.SecurityException("User not authorized to remove a Item"); try @@ -2378,7 +2385,11 @@ namespace VEPROMS.CSLA.Library { ItemInfo iii = itemInfo.HandleSqlExceptionOnDelete(ex); if (iii == itemInfo) return null;// If self returned then return null - if (iii != null) return iii; + if (iii != null) + { + firstTrans = true; // B2017-179 set the firstTrans to true and return the itminfo of the first transition location that needs resolved + return iii; + } if (!HandleSqlExceptionOnCopy(ex)) { if (ex.Message.Contains("has External Transitions and has no next step") diff --git a/PROMS/Volian.Controls.Library/DisplayTabControl.cs b/PROMS/Volian.Controls.Library/DisplayTabControl.cs index a018e4c8..75e9562f 100644 --- a/PROMS/Volian.Controls.Library/DisplayTabControl.cs +++ b/PROMS/Volian.Controls.Library/DisplayTabControl.cs @@ -527,6 +527,7 @@ namespace Volian.Controls.Library break; case ItemInfo.EAddpingPart.Replace: EditItem ei = edtitm.PasteReplace(copyStartID); + if (ei == null) return false; //B2017-179 PasteReplace will return null if was aborted if (ei.MyItemInfo.ItemID != edtitm.MyItemInfo.ItemID) { edtitm.Dispose();