From bf99440bdee090e9d5387493165455aae2c4e2ec Mon Sep 17 00:00:00 2001 From: Rich Date: Wed, 22 Oct 2014 00:55:04 +0000 Subject: [PATCH] Added code to provide information regarding transitions that are being fixed using the Fix Transitions menu item. Added code to fix transitions that involve Section, SubSections and Steps as part of the path to the transition and how this is rendered in the step's text. --- PROMS/DataLoader/TransitionFixer.cs | 24 ++++++++++++---- .../Extension/ContentExt.cs | 28 +++++++++++++++++++ .../Extension/TransitionExt.cs | 11 +++++++- 3 files changed, 57 insertions(+), 6 deletions(-) diff --git a/PROMS/DataLoader/TransitionFixer.cs b/PROMS/DataLoader/TransitionFixer.cs index 3627ec63..f6b9d40b 100644 --- a/PROMS/DataLoader/TransitionFixer.cs +++ b/PROMS/DataLoader/TransitionFixer.cs @@ -70,9 +70,16 @@ namespace DataLoader public TimeSpan Process(bool checkRTF) { DateTime tstart = DateTime.Now; + ContentInfo.StaticContentInfoChange += new StaticContentInfoEvent(ContentInfo_StaticContentInfoChange); ProcessTransitions(checkRTF); + ContentInfo.StaticContentInfoChange -= new StaticContentInfoEvent(ContentInfo_StaticContentInfoChange); return DateTime.Now - tstart; } + + void ContentInfo_StaticContentInfoChange(object sender, StaticContentInfoEventArgs args) + { + _MyLoader.AddInfo("Fixed Transition for {0}, changed from {1} to {2}", (sender as ContentInfo).ContentID, args.OldValue, args.NewValue); + } private void ProcessTransitions(bool checkRTF) { Status = "Getting List..."; @@ -102,11 +109,18 @@ namespace DataLoader { try { - using (Content c = item.MyContent.Get()) - { - c.FixTransitionText(tran); - c.Save(); - } + string oldtext = item.MyContent.Text; + item.MyContent.FixTransitionText(tran); + string newtext = item.MyContent.Text; + if (newtext != oldtext) + { + using (Content c = item.MyContent.Get()) + { + c.FixTransitionText(tran); + c.Save(); + + } + } if (item.NewTransToUnNumberedItem) { using (Item itm = item.Get()) diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/ContentExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/ContentExt.cs index f069cd52..3e731211 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/ContentExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/ContentExt.cs @@ -363,8 +363,35 @@ namespace VEPROMS.CSLA.Library return retval; } } + public delegate void StaticContentInfoEvent(object sender, StaticContentInfoEventArgs args); + public class StaticContentInfoEventArgs + { + string _OldValue; + public string OldValue + { + get { return _OldValue; } + set { _OldValue = value; } + } + string _NewValue; + public string NewValue + { + get { return _NewValue; } + set { _NewValue = value; } + } + public StaticContentInfoEventArgs(string oldValue, string newValue) + { + _OldValue = oldValue; + _NewValue = newValue; + } + } public partial class ContentInfo { + public static event StaticContentInfoEvent StaticContentInfoChange; + private static void OnStaticContentInfoChange(object sender, StaticContentInfoEventArgs args) + { + if (StaticContentInfoChange != null) + StaticContentInfoChange(sender, args); + } public string MyContentMessage = string.Empty; public string MyGridMessage = string.Empty; public bool InList(params int[] IDs) @@ -414,6 +441,7 @@ namespace VEPROMS.CSLA.Library if (gg != newvalue) { _Text = Text.Substring(0, myIndex) + newvalue + Text.Substring(myIndex + myLength); + OnStaticContentInfoChange(this, new StaticContentInfoEventArgs(gg, newvalue)); break; // Text has been processed } } diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/TransitionExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/TransitionExt.cs index fbe151ad..2a37cd93 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/TransitionExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/TransitionExt.cs @@ -401,6 +401,11 @@ namespace VEPROMS.CSLA.Library public bool _UsedRangeAncestor; private string _Token; public bool SectNumWithStepNum; + private List _SectionsUsed = new List(); + public List SectionsUsed + { + get { return _SectionsUsed; } + } public string Token { get { return _Token; } @@ -660,7 +665,8 @@ namespace VEPROMS.CSLA.Library if (startIndex >= tb._TransFormat.Length) break; } if ((startIndex < tb._TransFormat.Length) && lastAdded) tb.Append(tb._TransFormat.Substring(startIndex, tb._TransFormat.Length - startIndex)); - return (tb.ToString()); + string myReturn = Regex.Replace(tb.ToString(), @"([~`.]*)\.([~`.]*)", "."); + return myReturn; } // TODO: For hlp: LowerCaseTranNumber - lower case substep numbers in transitions @@ -1079,7 +1085,10 @@ namespace VEPROMS.CSLA.Library tb.Append(")"); return true; } + if (tb.SectionsUsed.Contains(tb._ToItem.ItemID)) + return true; string retstr = TranGetSectionNumber(tb._ToItem); + tb.SectionsUsed.Add(tb._ToItem.ItemID); if (retstr != null && retstr != "") { int indx = retstr.IndexOf(' '); // 16 bit code only processes 1st occurance