Cache ROImages so they only have to be read once.

Added Page Number to DebugText.txt when printing.
This commit is contained in:
Rich 2012-08-14 16:23:06 +00:00
parent cc4b8a2020
commit 9ca49944e3
2 changed files with 39 additions and 14 deletions

View File

@ -159,13 +159,18 @@ namespace DataLoader
FileInfo fi = new FileInfo(imgfile); FileInfo fi = new FileInfo(imgfile);
frmMain.Status = "Processing Image " + fname; frmMain.Status = "Processing Image " + fname;
// if the roimage record exists, don't create a new one... // if the roimage record exists, don't create a new one...
ROImage roImg = null;
//Console.WriteLine("ROImage Key {0} List {1} ID {2}", ROImage.CacheCountPrimaryKey, ROImage.CacheCountList, ROImage.CacheCountByRODbID); //Console.WriteLine("ROImage Key {0} List {1} ID {2}", ROImage.CacheCountPrimaryKey, ROImage.CacheCountList, ROImage.CacheCountByRODbID);
//Console.WriteLine("ROImageInfo Key {0} List {1}", ROImageInfo.CacheCountPrimaryKey, ROImageInfo.CacheCountList); //Console.WriteLine("ROImageInfo Key {0} List {1}", ROImageInfo.CacheCountPrimaryKey, ROImageInfo.CacheCountList);
//Console.WriteLine("ROFst Key {0} List {1} ID {2}", ROFst.CacheCountPrimaryKey, ROFst.CacheCountList, ROFst.CacheCountByRODbID_DTS); //Console.WriteLine("ROFst Key {0} List {1} ID {2}", ROFst.CacheCountPrimaryKey, ROFst.CacheCountList, ROFst.CacheCountByRODbID_DTS);
//Console.WriteLine("ROFstInfo Key {0} List {1}", ROFstInfo.CacheCountPrimaryKey, ROFstInfo.CacheCountList); //Console.WriteLine("ROFstInfo Key {0} List {1}", ROFstInfo.CacheCountPrimaryKey, ROFstInfo.CacheCountList);
using (roImg = ROImage.GetByRODbID_FileName_DTS(rodb.RODbID, imgname, fi.LastWriteTimeUtc)) frmMain.AddInfo("Adding RO Image {0}", imgname);
//using (roImg = ROImage.GetByRODbID_FileName_DTS(rodb.RODbID, imgname, fi.LastWriteTimeUtc))
//{
ROImage roImg = null;
roImg = GetImageFromAvailable(rodb.RODbID, imgname, fi.LastWriteTimeUtc);
if (roImg == null)
{ {
roImg = ROImage.GetByRODbID_FileName_DTS(rodb.RODbID, imgname, fi.LastWriteTimeUtc);
if (roImg == null) if (roImg == null)
{ {
using (FileStream fsIn = new FileStream(imgfile, FileMode.Open, FileAccess.Read, FileShare.Read)) using (FileStream fsIn = new FileStream(imgfile, FileMode.Open, FileAccess.Read, FileShare.Read))
@ -178,6 +183,8 @@ namespace DataLoader
roImg = ROImage.MakeROImage(rodb, imgname, ab, null, fi.LastWriteTimeUtc, "Migration"); roImg = ROImage.MakeROImage(rodb, imgname, ab, null, fi.LastWriteTimeUtc, "Migration");
} }
} }
AddToAvailable(roImg, rodb.RODbID, imgname, fi.LastWriteTimeUtc);
}
// see if it's already linked to the current rofst.. // see if it's already linked to the current rofst..
//Figure figure = Figure.GetByROFstID_ImageID(rofstinfo.ROFstID, roImg.ImageID); //Figure figure = Figure.GetByROFstID_ImageID(rofstinfo.ROFstID, roImg.ImageID);
using (Figure figure = Figure.GetByROFstID_ImageID(rofstinfo.ROFstID, roImg.ImageID)) using (Figure figure = Figure.GetByROFstID_ImageID(rofstinfo.ROFstID, roImg.ImageID))
@ -188,11 +195,29 @@ namespace DataLoader
//figure = Figure.MakeFigure(rofst, roImg, null); //figure = Figure.MakeFigure(rofst, roImg, null);
using (Figure tfig = Figure.MakeFigure(rofst, roImg, null)) ; using (Figure tfig = Figure.MakeFigure(rofst, roImg, null)) ;
} }
roImg.Dispose(); //roImg.Dispose();
}
} }
else else
frmMain.AddError("Cannot Find Image File {0}", imgfile); frmMain.AddError("Cannot Find Image File {0}", imgfile);
} }
private void AddToAvailable(ROImage roImg, int dbid, string imgname, DateTime dateTime)
{
string key = AvailableKey(dbid, imgname, dateTime);
_AvaiableROImages.Add(key, roImg);
}
private string AvailableKey(int dbid, string imgname, DateTime dateTime)
{
return string.Format("{0}|{1}|{2}", dbid, imgname, dateTime.ToString("yyyyMMdd HHmmss"));
}
private ROImage GetImageFromAvailable(int dbid, string imgname, DateTime dateTime)
{
string key = AvailableKey(dbid, imgname, dateTime);
if (_AvaiableROImages.ContainsKey(key)) return _AvaiableROImages[key];
return null;
}
private Dictionary<string, ROImage> _AvaiableROImages = new Dictionary<string, ROImage>();
} }
} }

View File

@ -472,7 +472,7 @@ namespace Volian.Print.Library
MyPageHelper.BottomMessage = new vlnText(cb, this, myMsg, myMsg, centerpos, msg_yLocation, docstyle.End.Font); MyPageHelper.BottomMessage = new vlnText(cb, this, myMsg, myMsg, centerpos, msg_yLocation, docstyle.End.Font);
} }
} }
if (yLocalypagestart != yPageStart) DebugText.WriteLine("ToPdf-yPagestartDiff:{0},{1},{2}", MyItemInfo.ItemID, yLocalypagestart, yPageStart); if (yLocalypagestart != yPageStart) DebugText.WriteLine("ToPdf-yPagestartDiff:{0},{1},{2},{3}", MyPageHelper.MyPdfContentByte.PdfWriter.CurrentPageNumber, MyItemInfo.ItemID, yLocalypagestart, yPageStart);
return yPageStart; return yPageStart;
} }
private vlnParagraph TopMostChild private vlnParagraph TopMostChild