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.
This commit is contained in:
John Jenko 2017-09-01 12:40:09 +00:00
parent 738ea466b6
commit d228ca58dc
2 changed files with 13 additions and 1 deletions

View File

@ -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")

View File

@ -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();