This commit is contained in:
114
PROMS/DataLoader/Documents.cs
Normal file
114
PROMS/DataLoader/Documents.cs
Normal file
@@ -0,0 +1,114 @@
|
||||
// ========================================================================
|
||||
// Copyright 2006 - Volian Enterprises, Inc. All rights reserved.
|
||||
// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
|
||||
// ------------------------------------------------------------------------
|
||||
// $Workfile: $ $Revision: $
|
||||
// $Author: $ $Date: $
|
||||
//
|
||||
// $History: $
|
||||
// ========================================================================
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Collections;
|
||||
using System.ComponentModel;
|
||||
using System.Windows.Forms;
|
||||
using System.Data;
|
||||
using System.Data.OleDb;
|
||||
using System.Collections.Specialized;
|
||||
using System.Collections.Generic;
|
||||
using System.Xml;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using Volian.MSWord;
|
||||
using Volian.CSLA.Library;
|
||||
|
||||
namespace DataLoader
|
||||
{
|
||||
public partial class frmLoader : Form
|
||||
{
|
||||
private void SaveSectionDocument(string fname, string stpseq, ref byte ctype, ref int cid)
|
||||
{
|
||||
int docid = SaveWordDoc(fname);
|
||||
switch (docid)
|
||||
{
|
||||
case 0:
|
||||
// could add the following back in - but many of these may be put out in the log, and
|
||||
// don't supply any pertinent info.
|
||||
//log.InfoFormat("Timing problem for save of word document, will retry. oldstepsequence = {0}", stpseq);
|
||||
break;
|
||||
case -1:
|
||||
log.ErrorFormat("Could not complete save of word document, oldstepsequence = {0}", stpseq);
|
||||
break;
|
||||
default:
|
||||
ctype = 2;
|
||||
cid = docid;
|
||||
break;
|
||||
}
|
||||
}
|
||||
private int SaveWordDoc(string fname, string title, ConfigInfo ci)
|
||||
{
|
||||
int docid = 0;
|
||||
if (System.IO.File.Exists(fname))
|
||||
{
|
||||
if (cbSaveDoc.Checked)
|
||||
{
|
||||
WordDoc d = new WordDoc(fname);
|
||||
string temppath = Path.GetTempFileName();
|
||||
string s = d.Save(temppath);
|
||||
d.Close();
|
||||
WaitMS(wms);
|
||||
docid = SaveDoc(temppath, title, ci);
|
||||
File.Delete(temppath);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (cbSaveRTF.Checked)
|
||||
docid = SaveDoc(fname, title, ci);
|
||||
}
|
||||
}
|
||||
return docid;
|
||||
}
|
||||
private int SaveWordDoc(string temppath)
|
||||
{
|
||||
return SaveWordDoc(temppath, String.Empty, null);
|
||||
}
|
||||
private int SaveTheDoc(string temppath, string title, ConfigInfo ci)
|
||||
{
|
||||
try
|
||||
{
|
||||
FileStream fs = File.Open(temppath, FileMode.Open, FileAccess.Read, FileShare.None);
|
||||
long len = fs.Length + 1;
|
||||
byte[] ByteArray = new byte[len];
|
||||
int nBytesRead = fs.Read(ByteArray, 0, (int)len);
|
||||
fs.Close();
|
||||
string t1 = (title == null || title == "") ? "notitle" : title;
|
||||
Document doc = Document.MakeDocument(t1, ByteArray, null, ci == null ? null : ci.ToString());
|
||||
return doc.DocID;
|
||||
}
|
||||
// for an io exception, keep trying
|
||||
catch (IOException)
|
||||
{
|
||||
Wait(2);
|
||||
return 0;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
log.Error("Save Word Doc");
|
||||
log.ErrorFormat("{0}\r\n\r\n{1}", ex.Message, ex.InnerException);
|
||||
return -1;
|
||||
}
|
||||
|
||||
}
|
||||
private int SaveDoc(string temppath, string title, ConfigInfo ci)
|
||||
{
|
||||
int done = 0;
|
||||
int ntry = 0;
|
||||
while (done == 0 && ntry < 4)
|
||||
{
|
||||
ntry++;
|
||||
done = SaveTheDoc(temppath, title, ci);
|
||||
}
|
||||
return done;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user