From 68d3ef8861a490c978a5b0e54b6095cd79ff7f1e Mon Sep 17 00:00:00 2001 From: Jsj Date: Thu, 21 Feb 2008 16:51:50 +0000 Subject: [PATCH] Outside Transitions logic and annotations for unresolved transitions --- PROMS/DataLoader/Steps.cs | 50 +++++++++++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 13 deletions(-) diff --git a/PROMS/DataLoader/Steps.cs b/PROMS/DataLoader/Steps.cs index dce9d1c4..cce87108 100644 --- a/PROMS/DataLoader/Steps.cs +++ b/PROMS/DataLoader/Steps.cs @@ -16,7 +16,7 @@ namespace DataLoader { public partial class Loader { - private Item AddStep(OleDbConnection cn, string StepType, string Textm, string Recid, string stpseq, string structtype, Item FromItem, DateTime dts, string userid, bool conv_caret) + private Item AddStep(OleDbConnection cn, string StepType, string Textm, string Recid, string stpseq, string structtype, Item FromItem, DateTime dts, string userid, bool conv_caret, string pth) { Content content = null; Item item = null; @@ -37,7 +37,7 @@ namespace DataLoader else stptext = TextConvert.ConvertText(Textm.Substring(0, tok), conv_caret); - string seqcvt = TextConvert.ConvertSeq(stpseq); + string seqcvt = TextConvert.ConvertSeq(stpseq); // Figure marker - it should NEVER get here!!! int tokfig = Textm.IndexOf('\xE8'); @@ -52,11 +52,11 @@ namespace DataLoader if (cbittst != ' ' && (cbittst & 0x80) > 1) { ManualPagebreak = true; - if (ci==null) ci = new ConfigInfo(null); + if (ci == null) ci = new ConfigInfo(null); ci.AddItem("Step", "ManualPagebreak", "True"); newstptyp = StepType.Substring(1, 1); } - + // Need the content record for the RO & transitions. //content = Content.MakeContent(null, stptext, 20000 + int.Parse(newstptyp!=null?newstptyp:StepType),null, ManualPagebreak?ci.ToString():null, dts, userid); content = Content.New(null, stptext, 20000 + int.Parse(newstptyp != null ? newstptyp : StepType), null, ManualPagebreak ? ci.ToString() : null, dts, userid); @@ -64,7 +64,7 @@ namespace DataLoader // Before we save it, handle RO & Transitions tokens. int tokrt = Textm.IndexOf('\x15'); - bool txtdirty = false; + bool txtdirty = false; if (tokrt > -1) { txtdirty = true; @@ -78,10 +78,11 @@ namespace DataLoader // use the unicode chars. char[] chrrotrn = { '\x252C', '\x2566' }; tokrt = Textm.IndexOfAny(chrrotrn); + _TransitionMigrationErrors = new List(); if (tokrt > -1) { txtdirty = true; - stptext = MigrateTrans(cn, stptext, seqcvt, content); + stptext = MigrateTrans(cn, stptext, seqcvt, content, pth); } if (txtdirty) { @@ -89,6 +90,9 @@ namespace DataLoader //content.Save(); } if (!content.IsSavable) ErrorRpt.ErrorReport(content); + List migrationerrors = null; + if (_ContentMigrationErrors.ContainsKey(content.ContentID)) + migrationerrors = _ContentMigrationErrors[content.ContentID]; content.Save(); // check if already created thru new during transition migration... if (dicTrans_ItemIds.ContainsKey(ProcNumber + "|" + seqcvt)) @@ -101,18 +105,38 @@ namespace DataLoader if (!item.IsSavable) ErrorRpt.ErrorReport(item); item.Save(); dicTrans_ItemIds.Remove(ProcNumber + "|" + seqcvt); + dicTrans_MigrationErrors.Remove(ProcNumber + "|" + seqcvt); } else item = Item.MakeItem(FromItem, content, content.DTS, content.UserID); + if (migrationerrors != null) + { + foreach (string str in migrationerrors) + { + ItemAnnotation ia = item.ItemAnnotations.Add(MigrationErrorType); + ia.SearchText = str; + } + if (!item.IsSavable) ErrorRpt.ErrorReport(item); + item.Save(); + } + if (_TransitionMigrationErrors.Count > 0) + { + foreach (string str in _TransitionMigrationErrors) + { + if (!dicTrans_MigrationErrors.ContainsKey(str)) + dicTrans_MigrationErrors.Add(str, new List()); + dicTrans_MigrationErrors[str].Add(item); + } + } dicTrans_ItemDone[ProcNumber + "|" + seqcvt] = item; dicOldStepSequence[content] = seqcvt; } catch (Exception ex) { - log.Error("Save Step"); - log.ErrorFormat("oldstepsequence = {0}", stpseq); - log.ErrorFormat("{0}\r\n\r\n{1}", ex.Message, ex.InnerException); - log.ErrorFormat(ex.StackTrace); + log.Error("Save Step"); + log.ErrorFormat("oldstepsequence = {0}", stpseq); + log.ErrorFormat("{0}\r\n\r\n{1}", ex.Message, ex.InnerException); + log.ErrorFormat(ex.StackTrace); item = null; } @@ -251,7 +275,7 @@ namespace DataLoader } return retval; } - private Item MigrateStep(OleDbConnection cn, DataTable dt, DataRowView drv, Item FromItem, bool conv_caret) + private Item MigrateStep(OleDbConnection cn, DataTable dt, DataRowView drv, Item FromItem, bool conv_caret, string pth) { try { @@ -259,7 +283,7 @@ namespace DataLoader Item item = AddStep(cn, drv["Type"].ToString() , (drv["textm"] == DBNull.Value ? drv["Text"].ToString() : drv["Textm"].ToString()) , drv["Recid"].ToString(), drv["CStep"].ToString() + drv["CSequence"].ToString(), "S", FromItem // was str - , GetDTS(drv["Date"].ToString(), drv["Time"].ToString()), drv["Initials"].ToString(), conv_caret); + , GetDTS(drv["Date"].ToString(), drv["Time"].ToString()), drv["Initials"].ToString(), conv_caret, pth); //Content cont = Content.MakeContent(null,(drv["textm"] == DBNull.Value ? drv["Text"].ToString() : drv["Textm"].ToString()),drv["Type"]+20000,null,null, // GetDTS(drv["Date"].ToString(), drv["Time"].ToString()), drv["Initials"].ToString()); //Item item = Item.MakeItem(FromItem, cont, cont.DTS, cont.UserID); @@ -312,7 +336,7 @@ namespace DataLoader , (drvs["textm"] == DBNull.Value ? drvs["Text"].ToString() : drvs["Textm"].ToString()) , drv["Recid"].ToString(), drvs["CStep"].ToString() + drvs["CSequence"].ToString() , GetStructType(drvs["sequence"].ToString()), FrItem - , GetDTS(drvs["Date"].ToString(), drvs["Time"].ToString()), drvs["Initials"].ToString(), conv_caret); + , GetDTS(drvs["Date"].ToString(), drvs["Time"].ToString()), drvs["Initials"].ToString(), conv_caret, pth); if (FrType > 0 ) {