Fixed code so that Deletes of Procedures and Sections would no cause steps to be resequenced.
Added code to Just Get RODb and not all of it's children. Added code to create an RoImageFile (Temporary) to be used to view and print images Additional DEBUG info
This commit is contained in:
@@ -5,6 +5,7 @@ using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using Csla;
|
||||
using Csla.Data;
|
||||
using System.IO;
|
||||
|
||||
namespace VEPROMS.CSLA.Library
|
||||
{
|
||||
@@ -82,4 +83,164 @@ namespace VEPROMS.CSLA.Library
|
||||
}
|
||||
}
|
||||
}
|
||||
public class ROImageFile : IDisposable
|
||||
{
|
||||
private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
||||
#region Fields
|
||||
private bool _IsDisposed;
|
||||
private static string _TemporaryFolder = null;
|
||||
#endregion
|
||||
#region Properties
|
||||
public static string TemporaryFolder
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_TemporaryFolder == null)
|
||||
{
|
||||
// This will create a Temp\VE-PROMS folder in the LocalSettings Folder.
|
||||
//XP - C:\Documents and Settings\{user}\Local Settings\Application Data\Temp\VE-PROMS
|
||||
//Vista - C:\Users\{user}\AppData\Local\Temp\VE-PROMS
|
||||
_TemporaryFolder = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\Temp";
|
||||
if (!Directory.Exists(TemporaryFolder)) Directory.CreateDirectory(TemporaryFolder);
|
||||
_TemporaryFolder += @"\VE-PROMS";
|
||||
if (!Directory.Exists(TemporaryFolder)) Directory.CreateDirectory(TemporaryFolder);
|
||||
}
|
||||
return _TemporaryFolder;
|
||||
}
|
||||
}
|
||||
private ROImageInfo _MyROImage = null;
|
||||
public ROImageInfo MyROImage
|
||||
{
|
||||
get { return _MyROImage; }
|
||||
set
|
||||
{
|
||||
TryDelete();
|
||||
_MyROImage = value;
|
||||
CreateFile();
|
||||
}
|
||||
}
|
||||
private FileInfo _MyFile = null;
|
||||
public FileInfo MyFile
|
||||
{
|
||||
get { return _MyFile; }
|
||||
}
|
||||
private string _Extension = "TIF";
|
||||
public string Extension
|
||||
{
|
||||
get { return _Extension; }
|
||||
set { _Extension = value; }
|
||||
}
|
||||
#endregion
|
||||
#region Private Methods
|
||||
private void TryDelete()
|
||||
{
|
||||
if (_MyROImage == null) return;
|
||||
if (_MyFile == null) return;
|
||||
if (_MyFile.Exists)
|
||||
{
|
||||
try
|
||||
{
|
||||
_MyFile.Delete();
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
_MyLog.Error("TryDelete", ex);
|
||||
}
|
||||
finally
|
||||
{
|
||||
_MyFile = null;
|
||||
_MyROImage = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
private bool _Created = false;
|
||||
private int _Unique = 0;
|
||||
private string Unique
|
||||
{
|
||||
get
|
||||
{
|
||||
string retval = "";
|
||||
if (_Unique != 0) retval = "_" + _Unique.ToString();
|
||||
_Unique++;
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
private void CreateFile()
|
||||
{
|
||||
while (!_Created)
|
||||
CreateTemporaryFile();
|
||||
}
|
||||
|
||||
private void CreateTemporaryFile()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (_MyROImage != null)
|
||||
{
|
||||
_MyFile = new FileInfo(string.Format(@"{0}\tmp_{1}{2}", TemporaryFolder, Unique, MyROImage.FileName));
|
||||
FileStream fs = _MyFile.Create();
|
||||
fs.Write(MyROImage.Content, 0, MyROImage.Content.Length);
|
||||
fs.Close();
|
||||
_MyFile.CreationTime = MyROImage.DTS;
|
||||
_MyFile.LastWriteTime = MyROImage.DTS;
|
||||
_Created = true;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(ex.Message);
|
||||
}
|
||||
}
|
||||
public string FullName
|
||||
{
|
||||
get { return _MyFile.FullName; }
|
||||
set
|
||||
{
|
||||
if (FullName != value)
|
||||
_MyFile = new FileInfo(value);
|
||||
}
|
||||
}
|
||||
public void SaveFile()
|
||||
{
|
||||
// TODO: Add Try & Catch logic
|
||||
if (_MyROImage == null) return;
|
||||
ROImage roImage = _MyROImage.Get();
|
||||
FileStream fs = _MyFile.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
|
||||
Byte[] buf = new byte[_MyFile.Length];
|
||||
fs.Read(buf, 0, buf.Length);
|
||||
fs.Close();
|
||||
//roImage.FileName;
|
||||
roImage.Content = buf;
|
||||
roImage.UserID = Environment.UserName;
|
||||
roImage.DTS = _MyFile.LastWriteTime;
|
||||
roImage.Save();
|
||||
}
|
||||
#endregion
|
||||
#region Constructors
|
||||
public ROImageFile(ROImageInfo myROImage)
|
||||
{
|
||||
MyROImage = myROImage;
|
||||
}
|
||||
#endregion
|
||||
#region Destructor
|
||||
~ROImageFile()
|
||||
{
|
||||
Dispose(false);
|
||||
}
|
||||
public void Dispose()
|
||||
{
|
||||
Dispose(false);
|
||||
GC.SuppressFinalize(this);
|
||||
}
|
||||
|
||||
protected void Dispose(bool disposing)
|
||||
{
|
||||
if (!_IsDisposed)
|
||||
{
|
||||
_IsDisposed = true;
|
||||
TryDelete();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user