Commit for development environment setup
This commit is contained in:
302
PROMS/VEPROMS/TestFullLoad/frmTestLoadAtOnce.cs
Normal file
302
PROMS/VEPROMS/TestFullLoad/frmTestLoadAtOnce.cs
Normal file
@@ -0,0 +1,302 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using VEPROMS.CSLA.Library;
|
||||
|
||||
namespace TestFullLoad
|
||||
{
|
||||
public partial class frmLoadAtOnce : Form
|
||||
{
|
||||
public frmLoadAtOnce()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
private ItemInfoList _Procedures;
|
||||
private bool _IsMultiUnit = false;
|
||||
private void frmLoadAtOnce_Load(object sender, EventArgs e)
|
||||
{
|
||||
LoadSettings();
|
||||
// Set these events after loading settings - otherwise the settings will be updated to the defaults
|
||||
Move+=new EventHandler(frmLoadAtOnce_Move);
|
||||
Resize+=new EventHandler(frmLoadAtOnce_Resize);
|
||||
try
|
||||
{
|
||||
DocVersionInfo docVersion = GetDocVersionWithContent();
|
||||
if (docVersion.MultiUnitCount > 1)
|
||||
{
|
||||
foreach (string s in docVersion.UnitNames)
|
||||
cbUnits.Items.Add(s.Trim());
|
||||
cbUnits.SelectedIndex = 0;
|
||||
cbUnits.Enabled = true;
|
||||
_IsMultiUnit = true;
|
||||
}
|
||||
_Procedures = docVersion.Procedures;
|
||||
lbProcedures.DataSource = _Procedures;
|
||||
lbProcedures.SelectedIndex = -1;
|
||||
lbProcedures.SelectedValueChanged+=new EventHandler(lbProcedures_SelectedValueChanged);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine("ex - {0}", ex);
|
||||
}
|
||||
}
|
||||
private void LoadSettings()
|
||||
{
|
||||
if (GetPropertyString("Location") != "")
|
||||
this.Location = Properties.Settings.Default.Location;
|
||||
if ((Properties.Settings.Default["Size"] ?? "") != "")
|
||||
this.Size = Properties.Settings.Default.Size;
|
||||
this.WindowState = Properties.Settings.Default.WindowState;
|
||||
Database.ConnectionName = "VEPROMS_BODINE_DEBUG";
|
||||
if (Properties.Settings.Default.LastDatabase != string.Empty)
|
||||
{
|
||||
if (MessageBox.Show(string.Format("use database {0}?", Properties.Settings.Default.LastDatabase), "use database", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||
Database.SelectedDatabase = Properties.Settings.Default.LastDatabase;
|
||||
}
|
||||
Properties.Settings.Default.LastDatabase = Database.SelectedDatabase;
|
||||
Properties.Settings.Default.Save();
|
||||
}
|
||||
private string GetPropertyString(string propertyName)
|
||||
{
|
||||
object prop = Properties.Settings.Default[propertyName];
|
||||
return prop == null ? "" : prop.ToString();
|
||||
}
|
||||
private DocVersionInfo GetDocVersionWithContent()
|
||||
{
|
||||
DocVersionInfoList dvList = DocVersionInfoList.Get();
|
||||
foreach (DocVersionInfo docVersion in dvList)
|
||||
if (docVersion.Procedures != null)
|
||||
if (docVersion.Procedures[0].ItemID != 0)
|
||||
return docVersion;
|
||||
return null;
|
||||
}
|
||||
private int WalkThroughChildren(ItemInfo itemInfo)
|
||||
{
|
||||
Console.WriteLine(itemInfo.ItemID);
|
||||
if (itemInfo.ItemID == 284)
|
||||
Console.WriteLine("stop or spot");
|
||||
int retval = 0;
|
||||
// Look at siblings and look at children
|
||||
if (itemInfo != null)
|
||||
{
|
||||
if (itemInfo.MyContent.ContentPartCount > 0)
|
||||
{
|
||||
foreach (PartInfo pi in itemInfo.MyContent.ContentParts)
|
||||
{
|
||||
foreach (ItemInfo ii in pi.MyItems)
|
||||
{
|
||||
//retval += WalkThroughSiblings(ii);
|
||||
retval++;
|
||||
retval += WalkThroughChildren(ii);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
private string ChildList(ItemInfo itm, int level)
|
||||
{
|
||||
StringBuilder retval = new StringBuilder();
|
||||
// Look at siblings and look at children
|
||||
//if (itm.MyContent.ContentPartCount > 0 && itm.ItemID != 4078 && itm.ItemID != 4192 && itm.ItemID != 4194 &&
|
||||
// itm.ItemID != 4330 && itm.ItemID != 4452)
|
||||
if (itm.MyContent.ContentPartCount > 0 )
|
||||
{
|
||||
//retval.Append(string.Format("\r\n{0}(", "".PadLeft(level, '\t')));
|
||||
retval.Append(ShowItem(itm));
|
||||
foreach (PartInfo pi in itm.MyContent.ContentParts)
|
||||
{
|
||||
retval.Append(string.Format("\r\n{0}({1} ", "".PadLeft(level + 1, '\t'), Enum.GetName(typeof(E_FromTypes), pi.FromType)));
|
||||
foreach (ItemInfo ii in pi.MyItems)
|
||||
{
|
||||
//retval += WalkThroughSiblings(ii);
|
||||
if (retval.ToString().EndsWith(")"))
|
||||
retval.Append(string.Format("\r\n{0}", "".PadLeft(level + 2, '\t')));
|
||||
retval.Append(ChildList(ii, level + 1));
|
||||
}
|
||||
retval.Append(string.Format(")", "".PadLeft(level, '\t')));
|
||||
}
|
||||
//retval.Append(string.Format("\r\n{0})", "".PadLeft(level, '\t')));
|
||||
}
|
||||
else
|
||||
{
|
||||
retval.Append(ShowItem(itm));
|
||||
}
|
||||
return retval.ToString();
|
||||
}
|
||||
private string ShowItem(ItemInfo itm)
|
||||
{
|
||||
return string.Format("{0}{1} ", itm.ItemID, ActiveSection(itm));
|
||||
//return string.Format("{0}{1} ", itm.ItemID, ActiveParent(itm));
|
||||
}
|
||||
private string ActiveParent(ItemInfo itm)
|
||||
{
|
||||
if (itm == null || itm.MyActiveParent == null) return string.Empty;
|
||||
return string.Format("({0})", itm.MyActiveParent);
|
||||
}
|
||||
private string ActiveSection(ItemInfo itm)
|
||||
{
|
||||
if (itm == null || itm.MyActiveSection == null) return "";
|
||||
return string.Format("({0})", itm.MyActiveSection);
|
||||
}
|
||||
//private int WalkThroughSiblings(ItemInfo itemInfo)
|
||||
//{
|
||||
// int retval = 0;
|
||||
// if (itemInfo.NextItemCount > 0)
|
||||
// {
|
||||
// foreach (ItemInfo itm in itemInfo.NextItems)
|
||||
// {
|
||||
// retval++;
|
||||
// retval += WalkThroughChildren(itm);
|
||||
// }
|
||||
// }
|
||||
// return retval;
|
||||
//}
|
||||
private void lbProcedures_SelectedValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
ItemInfo itemInfo = lbProcedures.SelectedValue as ItemInfo;
|
||||
if (itemInfo != null)
|
||||
{
|
||||
LoadEntireProcedure(itemInfo.ItemID);
|
||||
pg.SelectedObject = MyItemInfo;
|
||||
}
|
||||
}
|
||||
private ItemInfo _MyItemInfo;
|
||||
public ItemInfo MyItemInfo
|
||||
{
|
||||
get { return _MyItemInfo; }
|
||||
set { _MyItemInfo = value; }
|
||||
}
|
||||
private int LoadEntireProcedure(int itemID)
|
||||
{
|
||||
DateTime dtStart = DateTime.Now;// Record the start time
|
||||
MyItemInfo = GetItem(itemID);// Load an item
|
||||
DateTime dtLoad = DateTime.Now;// Record the time to this point
|
||||
int cnt = WalkThroughChildren(MyItemInfo);// Scan the item counting it's nodes
|
||||
DateTime dtEnd = DateTime.Now; // Record the end time
|
||||
RecordResults(dtStart,dtLoad,dtEnd,cnt);// Place results on Status Line
|
||||
//pg.SelectedObject = itemInfo; // Set the propertygrid to point to the loaded object
|
||||
return cnt;
|
||||
}
|
||||
private ItemInfo GetItem(int itemID)
|
||||
{
|
||||
switch (cbType.Text as string)
|
||||
{
|
||||
case("One at a time")://
|
||||
return ItemInfo.Get(itemID);
|
||||
case ("CSLA - All at Once - Spin Through Children")://
|
||||
return ItemInfo.GetItemAndChildren2(itemID);
|
||||
case ("SQL - All at Once - Query")://
|
||||
if (_IsMultiUnit)
|
||||
return ProcedureInfo.GetItemAndChildrenByUnit(itemID, 0, cbUnits.SelectedIndex + 1);
|
||||
else
|
||||
return ItemInfo.GetItemAndChildren(itemID, 0);
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
private TimeSpan _TsLoad;
|
||||
private TimeSpan _TsWalk;
|
||||
private TimeSpan _TsTotal;
|
||||
private int _Count;
|
||||
private void ResetResults()
|
||||
{
|
||||
_TsLoad = _TsWalk = _TsTotal = new TimeSpan(0);
|
||||
_Count = 0;
|
||||
}
|
||||
private void RecordResults(DateTime dtStart, DateTime dtLoad, DateTime dtEnd, int count)
|
||||
{
|
||||
TimeSpan tsLoad = dtLoad - dtStart;
|
||||
TimeSpan tsWalk = dtEnd - dtLoad;
|
||||
TimeSpan tsTotal = dtEnd - dtStart;
|
||||
_TsLoad += tsLoad;
|
||||
_TsWalk += tsWalk;
|
||||
_TsTotal += tsTotal;
|
||||
_Count += count;
|
||||
tsslStatus.Text = string.Format("Load {0}, Check {1}, Total {2}, Items {3}",
|
||||
tsLoad.TotalSeconds, tsWalk.TotalSeconds, tsTotal.TotalSeconds, count);
|
||||
//Application.DoEvents();
|
||||
//Console.WriteLine("{0}\t{1}\t{2}\t{3}", tsLoad.TotalSeconds,tsWalk.TotalSeconds,tsTotal.TotalSeconds, cnt);
|
||||
}
|
||||
private void DisplaySummary()
|
||||
{
|
||||
tsslStatus.Text = string.Format("Load {0}, Check {1}, Total {2}, Items {3}",
|
||||
_TsLoad.TotalSeconds, _TsWalk.TotalSeconds, _TsTotal.TotalSeconds, _Count);
|
||||
Console.WriteLine("{0},{1},{2},{3}",
|
||||
_TsLoad.TotalSeconds, _TsWalk.TotalSeconds, _TsTotal.TotalSeconds, _Count);
|
||||
}
|
||||
private string _MyTitle;
|
||||
public string MyTitle
|
||||
{
|
||||
get { return _MyTitle; }
|
||||
set
|
||||
{
|
||||
if (_MyTitle == value) return;
|
||||
_MyTitle = value;
|
||||
Console.WriteLine(MyTitle);
|
||||
}
|
||||
}
|
||||
|
||||
private void btnRunAll_Click(object sender, EventArgs e)
|
||||
{
|
||||
Cursor tmp = this.Cursor;
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
//DateTime dtStart = DateTime.Now;
|
||||
MyTitle = cbType.Text;
|
||||
ResetResults();
|
||||
int cnt = 0;
|
||||
foreach(ItemInfo itemInfo in _Procedures)
|
||||
cnt += LoadEntireProcedure(itemInfo.ItemID);
|
||||
//DateTime dtEnd = DateTime.Now;
|
||||
//tsslStatus.Text = string.Format("Total {0} Count {1}",
|
||||
// TimeSpan.FromTicks(dtEnd.Ticks - dtStart.Ticks).TotalSeconds,cnt);
|
||||
DisplaySummary();
|
||||
this.Cursor = tmp;
|
||||
}
|
||||
private void btnRunOne_Click(object sender, EventArgs e)
|
||||
{
|
||||
// Run the Gets for
|
||||
int itemID = int.Parse(tbItemID.Text);
|
||||
//for(int i=1;i<5;i++)
|
||||
// ShowItem(ItemInfo.GetItemAndChildren(itemID, 0), string.Format("XX All at Once Query({0})",i));
|
||||
//ShowItem(ItemInfo.Get(itemID),"One at a time");
|
||||
//ShowItem(ItemInfo.GetItemAndChildren2(itemID),"All at Once");
|
||||
ShowItem(ItemInfo.GetItemAndChildren(itemID, 0), "XX All at Once Query");
|
||||
}
|
||||
private void ShowItem(ItemInfo itemInfo, string title)
|
||||
{
|
||||
Console.WriteLine("{0}\r\n{1}", title, ChildList(itemInfo, 0));
|
||||
}
|
||||
private void frmLoadAtOnce_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
SaveSettings();
|
||||
}
|
||||
private void SaveSettings()
|
||||
{
|
||||
Properties.Settings.Default.LastDatabase = Database.SelectedDatabase;
|
||||
Properties.Settings.Default.WindowState = this.WindowState;
|
||||
Properties.Settings.Default.Save();
|
||||
}
|
||||
private void frmLoadAtOnce_Move(object sender, EventArgs e)
|
||||
{
|
||||
if (this.WindowState == FormWindowState.Normal)
|
||||
{
|
||||
Properties.Settings.Default.Location = this.Location;
|
||||
Properties.Settings.Default.Size = this.Size;
|
||||
}
|
||||
}
|
||||
private void frmLoadAtOnce_Resize(object sender, EventArgs e)
|
||||
{
|
||||
if (this.WindowState == FormWindowState.Normal)
|
||||
{
|
||||
Properties.Settings.Default.Location = this.Location;
|
||||
Properties.Settings.Default.Size = this.Size;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user