From afad3365bd0140771cd144cec310da524d514f2c Mon Sep 17 00:00:00 2001 From: John Jenko Date: Fri, 9 Feb 2024 14:30:11 -0500 Subject: [PATCH] B2024-006 - Improved memory management when performing the Refresh Transitions Amin Tool by encasing the getting of content information in Using statements. Same change was done for the method used by the Update RO Values Amin tool. --- .../VEPROMS.CSLA.Library/Extension/ItemExt.cs | 66 +++++++++++-------- 1 file changed, 38 insertions(+), 28 deletions(-) diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs index 04c00975..810ce4df 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs @@ -665,10 +665,12 @@ namespace VEPROMS.CSLA.Library { TranFixCount++; itemInfo.MyContent.FixTransitionText(traninfo, itemInfo, "Reason for Change: Transition to Non-Editable Step"); - Content content = Content.Get(itemInfo.MyContent.ContentID); - content.FixTransitionText(traninfo, true); - content.Save(); - } + using (Content content = Content.Get(itemInfo.MyContent.ContentID)) //B2024-006 free up content memory when done + { + content.FixTransitionText(traninfo, true); + content.Save(); + } + } } if (!forceConvertToText) @@ -682,10 +684,12 @@ namespace VEPROMS.CSLA.Library forceConvertToText = true; TranFixCount++; itemInfo.MyContent.FixTransitionText(traninfo, itemInfo, "Reason for Change: Transition to External Procedure using Internal Format"); - Content content = Content.Get(itemInfo.MyContent.ContentID); - content.FixTransitionText(traninfo, true); - content.Save(); - } + using (Content content = Content.Get(itemInfo.MyContent.ContentID)) //B2024-006 free up content memory when done + { + content.FixTransitionText(traninfo, true); + content.Save(); + } + } } } } @@ -701,9 +705,11 @@ namespace VEPROMS.CSLA.Library forceConvertToText = true; TranFixCount++; itemInfo.MyContent.FixTransitionText(traninfo, itemInfo, "Reason for Change: Transition to Outside Procedure using Internal Format"); - Content content = Content.Get(itemInfo.MyContent.ContentID); - content.FixTransitionText(traninfo, true); - content.Save(); + using (Content content = Content.Get(itemInfo.MyContent.ContentID)) //B2024-006 free up content memory when done + { + content.FixTransitionText(traninfo, true); + content.Save(); + } } } } @@ -719,9 +725,11 @@ namespace VEPROMS.CSLA.Library if (newText != oldText || newValue == "?") { TranFixCount++; - Content content = Content.Get(itemInfo.MyContent.ContentID); - content.FixTransitionText(traninfo); - content.Save(); + using (Content content = Content.Get(itemInfo.MyContent.ContentID)) //B2024-006 free up content memory when done + { + content.FixTransitionText(traninfo); + content.Save(); + } } } } @@ -966,24 +974,26 @@ namespace VEPROMS.CSLA.Library { //ShowDifference(oldText, newText); // debug - display in Visual Studio Output window ROFixCount++; - Content content = Content.Get(itemInfo.MyContent.ContentID); - if (roval == "?") + using (Content content = Content.Get(itemInfo.MyContent.ContentID)) //B2024-006 free up content memory when done { - oldText = content.ConvertROToText(rousage, roval, roch.type, origROFst); - using (Item myitem = content.ContentItems[0].MyItem) // so that myitem does not stay in cache B2016-153 + if (roval == "?") { - myitem.DisposeOfContent = false; // don't dispose of the contents may be needed if more than one RO needs processed - part of B2017-060 - // B2016-225 (follow through) added more descriptive Annotation Type when RO is converted to text - Annotation.MakeAnnotation(myitem, AnnotationType.GetByNameOrCreate("Link Converted To Text"), "", string.Format("RO value ({0}) converted to text", ItemInfo.ConvertToDisplayText(oldText)), null); + oldText = content.ConvertROToText(rousage, roval, roch.type, origROFst); + using (Item myitem = content.ContentItems[0].MyItem) // so that myitem does not stay in cache B2016-153 + { + myitem.DisposeOfContent = false; // don't dispose of the contents may be needed if more than one RO needs processed - part of B2017-060 + // B2016-225 (follow through) added more descriptive Annotation Type when RO is converted to text + Annotation.MakeAnnotation(myitem, AnnotationType.GetByNameOrCreate("Link Converted To Text"), "", string.Format("RO value ({0}) converted to text", ItemInfo.ConvertToDisplayText(oldText)), null); + } } + else + { + content.FixContentText(rousage, roval, roch.type, origROFst); + } + content.UserID = Volian.Base.Library.VlnSettings.UserID; + content.DTS = DateTime.Now; + content.Save(); } - else - { - content.FixContentText(rousage, roval, roch.type, origROFst); - } - content.UserID = Volian.Base.Library.VlnSettings.UserID; - content.DTS = DateTime.Now; - content.Save(); } } }