B2023-072: Crash when restoring annotation whose type had been removed
This commit is contained in:
parent
fe270e55c7
commit
be72063a3c
@ -1704,8 +1704,9 @@ namespace VEPROMS.CSLA.Library
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
AnnotationInfo tmp = DataPortal.Fetch<AnnotationInfo>(new RestoreCriteria(aai));
|
AnnotationInfo tmp = DataPortal.Fetch<AnnotationInfo>(new RestoreCriteria(aai));
|
||||||
|
// B2023 - 073: Crash when restoring annotation whose type had been removed (if no record return null)
|
||||||
|
if (tmp.ErrorMessage == "No Record Found") return null;
|
||||||
AddToCache(tmp);
|
AddToCache(tmp);
|
||||||
if (tmp.ErrorMessage == "No Record Found") tmp = null;
|
|
||||||
tmp.MyItem.RefreshItemAnnotations();
|
tmp.MyItem.RefreshItemAnnotations();
|
||||||
return tmp;
|
return tmp;
|
||||||
}
|
}
|
||||||
|
@ -827,6 +827,16 @@ namespace Volian.Controls.Library
|
|||||||
if (FlexibleMessageBox.Show(this, "Do you want to restore this annotation?", "Confirm Annotation Restore", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes)
|
if (FlexibleMessageBox.Show(this, "Do you want to restore this annotation?", "Confirm Annotation Restore", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||||
{
|
{
|
||||||
AnnotationInfo ai = AnnotationInfo.RestoreAnnotation(aai);
|
AnnotationInfo ai = AnnotationInfo.RestoreAnnotation(aai);
|
||||||
|
// B2023-072: Don't crash if annotation type was deleted for the restore annotation
|
||||||
|
if (ai == null)
|
||||||
|
{
|
||||||
|
AnnotationTypeInfo ati = AnnotationTypeInfo.Get(aai.TypeID);
|
||||||
|
if (ati == null)
|
||||||
|
{
|
||||||
|
FlexibleMessageBox.Show(this, "Annotation Type was deleted, cannot restore Annotation Type\r\nCopy text from window in Change Details and paste into new annotation to restore the text.", "Annotation Type Deleted", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
OnAnnotationRestored(ai, ai.MyItem);
|
OnAnnotationRestored(ai, ai.MyItem);
|
||||||
RefreshRequired = true;
|
RefreshRequired = true;
|
||||||
UpdateHistory();
|
UpdateHistory();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user