B2017-082 Added a check for a RO Path being assigned at the working draft node

This commit is contained in:
John Jenko 2017-05-05 14:53:47 +00:00
parent 243779476c
commit 3b03233003

View File

@ -144,6 +144,7 @@ namespace VEPROMS
private ZipFile MyExpxZipFile = null;
private ZipFile MyImpxZipFile = null;
private DateTime MyStart;
private bool successfullExport = true;
private void btnDoExport_Click(object sender, EventArgs e)
{
btnExport.Enabled = false;
@ -177,7 +178,10 @@ namespace VEPROMS
this.Cursor = Cursors.Default;
}
// added message to user when export of a procedure or procedure set has completed
msg += MyProcedure;
if (successfullExport)
msg += MyProcedure;
else
msg = "Could not complete export";
MessageBox.Show(msg, "Export", MessageBoxButtons.OK, MessageBoxIcon.Information);
btnCloseExport.Enabled = true;
}
@ -1416,65 +1420,78 @@ namespace VEPROMS
// MyWriter.WriteEndElement();
// MyWriter.WriteEndDocument();
//}
private void ExportDocVersion(XmlElement xn, DocVersionInfo dvi, string nodename)
{
/*
VersionID
FolderID
VersionType
Name
Title
ItemID
FormatID
Config
DTS
UserID
*/
lblExportStatus.Text = "Exporting DocVersion...";
Application.DoEvents();
// bug fix: B2017-082 don't export if no RO Path - display an message to the user to assign a RO Path
private bool ValidDocVersionAssociation(DocVersionInfo dvi)
{
if (dvi.DocVersionAssociationCount <= 0)
{
MessageBox.Show("Assign a Referenced Object path to the Working Draft tree node before exporting.", "RO Path not assigned");
successfullExport = false;
return false;
}
return true;
}
private void ExportDocVersion(XmlElement xn, DocVersionInfo dvi, string nodename)
{
/*
VersionID
FolderID
VersionType
Name
Title
ItemID
FormatID
Config
DTS
UserID
*/
lblExportStatus.Text = "Exporting DocVersion...";
Application.DoEvents();
string formatFileName = (dvi.MyFormat != null) ? dvi.MyFormat.Name : "";
XmlElement xe = xn.OwnerDocument.CreateElement(nodename);
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "versionid", dvi.VersionID.ToString()));
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "folderid", dvi.FolderID.ToString()));
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "versiontype", dvi.VersionType.ToString()));
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "name", dvi.Name));
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "title", dvi.Title));
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "itemid", dvi.ItemID.ToString()));
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "formatid", dvi.FormatID.ToString()));
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", dvi.Config));
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", dvi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")));
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", dvi.UserID.ToString()));
XmlElement xe = xn.OwnerDocument.CreateElement(nodename);
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "versionid", dvi.VersionID.ToString()));
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "folderid", dvi.FolderID.ToString()));
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "versiontype", dvi.VersionType.ToString()));
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "name", dvi.Name));
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "title", dvi.Title));
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "itemid", dvi.ItemID.ToString()));
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "formatid", dvi.FormatID.ToString()));
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", dvi.Config));
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", dvi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")));
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", dvi.UserID.ToString()));
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "formatfilename", formatFileName));
xn.AppendChild(xe);
if (dvi.DocVersionAssociationCount > 0)
foreach (AssociationInfo ai in dvi.DocVersionAssociations)
ExportAssociation(xe, ai, "association");
string fn = PEIPath + @"\folder.xml";
xn.OwnerDocument.Save(fn);
MyExpxZipFile.AddFile(fn, "folder");
MyExpxZipFile.Save();
File.Delete(fn);
//here
lblExportStatus.Text = "Exporting Procedures...";
Application.DoEvents();
if (dvi.Procedures.Count > 0)
{
pbExportProcedure.Value = 0;
pbExportProcedure.Maximum = dvi.Procedures.Count;
lblExportProcedure.Text = pbExportProcedure.Maximum.ToString() + " Procedures";
foreach (ItemInfo ii in dvi.Procedures)
{
XmlDocument xd = new XmlDocument();
ExportItem(xd, ii, "procedure");
fn = string.Format(@"{0}\proc{1}.xml", PEIPath, pbExportProcedure.Value.ToString().PadLeft(4, '0'));
xd.Save(fn);
MyExpxZipFile.AddFile(fn, "procedures");
MyExpxZipFile.Save();
File.Delete(fn);
xd = null;
}
}
}
xn.AppendChild(xe);
if (!ValidDocVersionAssociation(dvi)) return; // bug fix: B2017-082 don't export if no RO Path
if (dvi.DocVersionAssociationCount > 0)
foreach (AssociationInfo ai in dvi.DocVersionAssociations)
ExportAssociation(xe, ai, "association");
string fn = PEIPath + @"\folder.xml";
xn.OwnerDocument.Save(fn);
MyExpxZipFile.AddFile(fn, "folder");
MyExpxZipFile.Save();
File.Delete(fn);
//here
lblExportStatus.Text = "Exporting Procedures...";
Application.DoEvents();
if (dvi.Procedures.Count > 0)
{
pbExportProcedure.Value = 0;
pbExportProcedure.Maximum = dvi.Procedures.Count;
lblExportProcedure.Text = pbExportProcedure.Maximum.ToString() + " Procedures";
foreach (ItemInfo ii in dvi.Procedures)
{
XmlDocument xd = new XmlDocument();
ExportItem(xd, ii, "procedure");
fn = string.Format(@"{0}\proc{1}.xml", PEIPath, pbExportProcedure.Value.ToString().PadLeft(4, '0'));
xd.Save(fn);
MyExpxZipFile.AddFile(fn, "procedures");
MyExpxZipFile.Save();
File.Delete(fn);
xd = null;
}
}
}
private void ExportDocVersion(DocVersionInfo dvi, string nodename)
{
/*
@ -1678,6 +1695,7 @@ namespace VEPROMS
MyWriter.WriteAttributeString("userid", db.UserID.ToString());
MyWriter.WriteEndElement();
}
public void ExportItem(XmlDocument xd, ItemInfo ii, string nodename)
{
XmlElement xe = xd.CreateElement(nodename);