Added frmVEPROMS parameter to the constructor so that SessionPing can be disabled.

Added frmVEPROMS parameter to the constructor so that SessionPing can be disabled.  Disabled SessionPing when Importing a Procedure Set,
Added frmVEPROMS parameter to the constructor so that SessionPing can be disabled.  Added logic to disable SessionPing.
This commit is contained in:
Rich 2017-05-24 12:59:28 +00:00
parent 73d7c13d65
commit 26ad9239f2
3 changed files with 93 additions and 36 deletions

View File

@ -49,11 +49,19 @@ namespace VEPROMS
_MyApproval.MySessionInfo = _MySessionInfo;
}
}
private ApprovalInfo _MyApproval = new ApprovalInfo();
private ApprovalInfo _MyApproval;
private bool _CheckForMore = false;
private DocVersionInfo _MyDocVersion;
public dlgApproveProcedure(DocVersionInfo myDocVersion)
frmVEPROMS _MyFrmVEPROMS = null;
public frmVEPROMS MyFrmVEPROMS
{
get { return _MyFrmVEPROMS; }
set { _MyFrmVEPROMS = value; }
}
public dlgApproveProcedure(DocVersionInfo myDocVersion, frmVEPROMS myFrmVEPROMS)
{
MyFrmVEPROMS = myFrmVEPROMS;// Save frmVEPROMS for Import to shutoff SessionPing
_MyApproval = new ApprovalInfo(myFrmVEPROMS);// Save frmVEPROMS for Import to shutoff SessionPing
ApplicabilityIndex = myDocVersion.DocVersionConfig.SelectedSlave;
this.ConsistencyPrintRequest += new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
_MyDocVersion = myDocVersion;
@ -214,8 +222,10 @@ namespace VEPROMS
else
return tmpProcedures[GetDisplayNumberOnly(key)];
}
public dlgApproveProcedure(DocVersionInfo myDocVersion, bool selectSome)
public dlgApproveProcedure(DocVersionInfo myDocVersion, bool selectSome, frmVEPROMS myFrmVEPROMS)
{
MyFrmVEPROMS = myFrmVEPROMS;// Save frmVEPROMS for Import to shutoff SessionPing
_MyApproval = new ApprovalInfo(myFrmVEPROMS);// Save frmVEPROMS for Import to shutoff SessionPing
this.ConsistencyPrintRequest += new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
_MyDocVersion = myDocVersion;
InitializeComponent();
@ -227,8 +237,10 @@ namespace VEPROMS
pnlSelect.SendToBack();
this.Width = pnlSelect.Width + this.Width - this.ClientSize.Width; ;
}
public dlgApproveProcedure(ProcedureInfo myProcedure)
public dlgApproveProcedure(ProcedureInfo myProcedure, frmVEPROMS myFrmVEPROMS)
{
MyFrmVEPROMS = myFrmVEPROMS;// Save frmVEPROMS for Import to shutoff SessionPing
_MyApproval = new ApprovalInfo(myFrmVEPROMS);// Save frmVEPROMS for Import to shutoff SessionPing
this.ConsistencyPrintRequest += new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
_MyDocVersion = myProcedure.MyDocVersion;
InitializeComponent();
@ -732,6 +744,12 @@ namespace VEPROMS
public delegate void ApprovalStatusChangeEvent(ApprovalInfo sender, ApprovalMessageArgs e);
public class ApprovalInfo
{
frmVEPROMS _MyFrmVEPROMS = null;
public frmVEPROMS MyFrmVEPROMS
{
get { return _MyFrmVEPROMS; }
set { _MyFrmVEPROMS = value; }
}
public event ApprovalStatusChangeEvent StatusUpdated;
public void OnStatusUpdated(ApprovalInfo sender, ApprovalMessageArgs e)
{
@ -804,8 +822,9 @@ namespace VEPROMS
get { return _MyProcedures; }
//set { _MyProcedures = value; }
}
public ApprovalInfo()
public ApprovalInfo(frmVEPROMS myFrmVEPROMS)
{
MyFrmVEPROMS = myFrmVEPROMS;// Save frmVEPROMS for Import to shutoff SessionPing
_MyProcedures = new List<ApprovalProcedure>();
}
private static string FormatRev(Match m)
@ -1164,7 +1183,7 @@ namespace VEPROMS
pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0;
if (si.IsApproved == 1)
{
dlgExportImport dlg = new dlgExportImport("Export", pi); // "true tell export to convert ROs and Transitions to text
dlgExportImport dlg = new dlgExportImport("Export", pi, MyFrmVEPROMS); // "true tell export to convert ROs and Transitions to text
dlg.DocReplace = frm.DocReplace; // this tells approval to prepare an export file with resolved transitions and ROs, word sections are saved with resolved ROs during approval PDF creation and saved in DocReplace
System.Xml.XmlDocument xd = new System.Xml.XmlDocument();
dlg.ExportItem(xd, pi, "procedure");

View File

@ -19,6 +19,12 @@ namespace VEPROMS
#region Log4Net
private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
#endregion
frmVEPROMS _MyFrmVEPROMS = null;// Save frmVEPROMS for Import to shutoff SessionPing
public frmVEPROMS MyFrmVEPROMS
{
get { return _MyFrmVEPROMS; }
set { _MyFrmVEPROMS = value; }
}
private bool _ConvertROsToTextDuringImport = false;
private bool _ConvertROsAndTransitionsToText = false; // set to true when Approval creates an Export file
@ -59,22 +65,25 @@ namespace VEPROMS
xa.InnerText = value;
return xa;
}
public dlgExportImport(string mode, FolderInfo folderInfo)
public dlgExportImport(string mode, FolderInfo folderInfo, frmVEPROMS myFrmVEPROMS)
{
MyFrmVEPROMS = myFrmVEPROMS;// Save frmVEPROMS for Import to shutoff SessionPing
_MyMode = mode;
MyFolder = folderInfo;
InitializeComponent();
this.Text = mode + " Dialog for " + folderInfo.Name;
}
public dlgExportImport(string mode, DocVersionInfo docVersionInfo)
{
public dlgExportImport(string mode, DocVersionInfo docVersionInfo, frmVEPROMS myFrmVEPROMS)
{
MyFrmVEPROMS = myFrmVEPROMS;// Save frmVEPROMS for Import to shutoff SessionPing
_MyMode = mode;
MyDocVersion = docVersionInfo;
InitializeComponent();
this.Text = mode + " Dialog for " + docVersionInfo.Name + " of " + docVersionInfo.MyFolder.Name;
}
public dlgExportImport(string mode, ProcedureInfo procedureInfo)
{
public dlgExportImport(string mode, ProcedureInfo procedureInfo, frmVEPROMS myFrmVEPROMS)
{
MyFrmVEPROMS = myFrmVEPROMS;// Save frmVEPROMS for Import to shutoff SessionPing
_MyMode = mode;
MyProcedure = procedureInfo;
InitializeComponent();
@ -218,9 +227,11 @@ namespace VEPROMS
if (MyFolder != null) // import a folder - a .expx file
{
TurnChangeManagerOff.Execute();
MyFrmVEPROMS.DisablePing = true;// Turn-off SessionPing
TryToLoadImportDataDocument();// Added Try Catch Error Handling to assure that the Change Manager is tuned-on
MyDocVersion = null;
isImported = true;
MyFrmVEPROMS.DisablePing = false;// Turn-on SessionPing
TurnChangeManagerOn.Execute();
}
if (MyDocVersion != null) // import a procedure - a .pxml file
@ -3013,23 +3024,37 @@ namespace VEPROMS
{
XmlNode image = nd.SelectSingleNode("image");
int imageid = int.Parse(image.Attributes.GetNamedItem("imageid").InnerText);
ROImage roimage = ROImage.Get(imageid);
string config;
DateTime dts;
string userid;
if (roimage == null)
using (ROImage roimage = ROImage.GetJustROImage(imageid))//Dispose when done
{
string filename = image.Attributes.GetNamedItem("filename").InnerText;
byte[] content = Convert.FromBase64String(image.Attributes.GetNamedItem("content").InnerText);
config = image.Attributes.GetNamedItem("config").InnerText;
dts = DateTime.Parse(image.Attributes.GetNamedItem("dts").InnerText);
userid = image.Attributes.GetNamedItem("userid").InnerText;
roimage = ROImage.MakeROImage(MyRODb, filename, content, config, dts, userid);
string config;
DateTime dts;
string userid;
if (roimage == null)
{
string filename = image.Attributes.GetNamedItem("filename").InnerText;
byte[] content = Convert.FromBase64String(image.Attributes.GetNamedItem("content").InnerText);
config = image.Attributes.GetNamedItem("config").InnerText;
dts = DateTime.Parse(image.Attributes.GetNamedItem("dts").InnerText);
userid = image.Attributes.GetNamedItem("userid").InnerText;
// Dispose when done
using (ROImage roimage1 = ROImage.MakeROImage(MyRODb, filename, content, config, dts, userid))
{
config = nd.Attributes.GetNamedItem("config").InnerText;
dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText);
userid = nd.Attributes.GetNamedItem("userid").InnerText;
// Dispose when done
using(Figure fig = Figure.MakeFigure(rofst, roimage, config, dts, userid)){;}
}
}
else
{
config = nd.Attributes.GetNamedItem("config").InnerText;
dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText);
userid = nd.Attributes.GetNamedItem("userid").InnerText;
// Dispose when done
using(Figure fig = Figure.MakeFigure(rofst, roimage, config, dts, userid)){;}
}
}
config = nd.Attributes.GetNamedItem("config").InnerText;
dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText);
userid = nd.Attributes.GetNamedItem("userid").InnerText;
Figure fig = Figure.MakeFigure(rofst, roimage, config, dts, userid);
}
}

View File

@ -521,7 +521,7 @@ namespace VEPROMS
else
{
int ownerid = MySessionInfo.CheckOutItem(fi.FolderID, CheckOutType.Session);
dlgExportImport dlg = new dlgExportImport(args.Index == 0 ? "Export" : "Import", fi);
dlgExportImport dlg = new dlgExportImport(args.Index == 0 ? "Export" : "Import", fi, this);//Added frmVEPROMS Parameter
dlg.ShowDialog(this);
MySessionInfo.CheckInItem(ownerid);
if (args.Index == 1 && dlg.MyNewFolder != null)
@ -546,7 +546,7 @@ namespace VEPROMS
return;
}
int ownerid = MySessionInfo.CheckOutItem(dvi.VersionID, CheckOutType.DocVersion);
dlgExportImport dlg = new dlgExportImport("Import", dvi);
dlgExportImport dlg = new dlgExportImport("Import", dvi, this);//Added frmVEPROMS Parameter
dlg.MyNewProcedure = null;
dlg.ExternalTransitionItem = null;
dlg.ShowDialog(this);
@ -568,7 +568,7 @@ namespace VEPROMS
else
{
int ownerid = MySessionInfo.CheckOutItem(pi.ItemID, CheckOutType.Procedure);
dlgExportImport dlg = new dlgExportImport("Export", pi);
dlgExportImport dlg = new dlgExportImport("Export", pi, this);//Added frmVEPROMS Parameter
dlg.ShowDialog(this);
MySessionInfo.CheckInItem(ownerid);
}
@ -717,7 +717,7 @@ namespace VEPROMS
}
int ownerid = MySessionInfo.CheckOutItem(dvi.VersionID, CheckOutType.DocVersion);
dvi.DocVersionConfig.SelectedSlave = args.UnitIndex;
dlgApproveProcedure dlg = new dlgApproveProcedure(dvi, true);
dlgApproveProcedure dlg = new dlgApproveProcedure(dvi, true, this);//Added frmVEPROMS Parameter
dlg.MySessionInfo = MySessionInfo;
dlg.ShowDialog(this);
displayHistory.RefreshList();
@ -738,7 +738,7 @@ namespace VEPROMS
}
int ownerid = MySessionInfo.CheckOutItem(dvi.VersionID, CheckOutType.DocVersion);
dvi.DocVersionConfig.SelectedSlave = args.UnitIndex;
dlgApproveProcedure dlg = new dlgApproveProcedure(dvi);
dlgApproveProcedure dlg = new dlgApproveProcedure(dvi,this);//Added frmVEPROMS Parameter
dlg.MySessionInfo = MySessionInfo;
dlg.ShowDialog(this);
displayHistory.RefreshList();
@ -814,7 +814,7 @@ namespace VEPROMS
return;
}
int ownerid = MySessionInfo.CheckOutItem(pi.ItemID, 0);
dlgApproveProcedure dlg = new dlgApproveProcedure(pi);
dlgApproveProcedure dlg = new dlgApproveProcedure(pi,this);//Added frmVEPROMS Parameter
dlg.MySessionInfo = MySessionInfo;
dlg.ShowDialog(this);
displayHistory.RefreshList();
@ -1193,14 +1193,27 @@ namespace VEPROMS
{
get { return _MyCloseTabList; }
}
private bool _DisablePing = false;
public bool DisablePing
{
get { return _DisablePing; }
set
{
_DisablePing = value;
//_MyLog.WarnFormat("DisableSessionPing = {0}", value);
}
}
private void PingSession(Object obj)
{
MySemaphore.WaitOne();
List<int> myList = MySessionInfo.PingSession();
foreach (DisplayTabItem dti in tc.MyBar.Items)
if (!DisablePing)// If Ping is disabled don't do ping - This was causing a deadlock during import
{
if (!myList.Contains(dti.OwnerID))
MyCloseTabList.PushDTI(dti);
List<int> myList = MySessionInfo.PingSession();
foreach (DisplayTabItem dti in tc.MyBar.Items)
{
if (!myList.Contains(dti.OwnerID))
MyCloseTabList.PushDTI(dti);
}
}
MySemaphore.Release();
}