Statistics project added, ver. 2.18.1088
This commit is contained in:
@@ -0,0 +1,162 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using NHibernate;
|
||||
using FluentNHibernate;
|
||||
using FluentNHibernate.Cfg;
|
||||
using FluentNHibernate.Cfg.Db;
|
||||
using Results;
|
||||
using Results.Entities;
|
||||
using Statistics.Resources;
|
||||
using Statistics.UserControls;
|
||||
|
||||
namespace Statistics
|
||||
{
|
||||
public partial class StatisticsDlg : Form
|
||||
{
|
||||
static string[] testBenchNames = new string[] { "WR10", "WR11", "WR13", "WR14", "WR15", "PT7" };
|
||||
///
|
||||
#if false
|
||||
static string[] connectionStrings = new string[] {
|
||||
"SERVER=10.42.128.197; DATABASE=st-wr10-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CHARSET=utf8;", /// WR10
|
||||
"SERVER=10.42.128.98; DATABASE=st-wr11-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CHARSET=utf8;", /// WR11
|
||||
"SERVER=10.42.128.152; DATABASE=st-wr13-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CHARSET=utf8;", /// WR13
|
||||
"SERVER=10.42.128.143; DATABASE=st-wr14-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CHARSET=utf8;", /// WR14
|
||||
"SERVER=10.42.128.63; DATABASE=st-wr15-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CHARSET=utf8;", /// WR15
|
||||
"" /// PT7
|
||||
};
|
||||
#else
|
||||
static string[] connectionStrings = new string[] {
|
||||
"SERVER=localhost; DATABASE=st-wr10-r; UID=root; PASSWORD=; CHARSET=utf8;", /// WR10
|
||||
"SERVER=localhost; DATABASE=st-wr11-r; UID=root; PASSWORD=; CHARSET=utf8;", /// WR11
|
||||
"SERVER=localhost; DATABASE=st-wr13-r; UID=root; PASSWORD=; CHARSET=utf8;", /// WR13
|
||||
"SERVER=localhost; DATABASE=st-wr14-r; UID=root; PASSWORD=; CHARSET=utf8;", /// WR14
|
||||
"SERVER=localhost; DATABASE=st-wr15-r; UID=root; PASSWORD=; CHARSET=utf8;", /// WR15
|
||||
"" /// PT7
|
||||
};
|
||||
#endif
|
||||
///
|
||||
static ISessionFactory[] sessionFactories = new ISessionFactory[6];
|
||||
|
||||
|
||||
|
||||
public StatisticsDlg()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
ManageCheckGroupBox(timePeriodCheckBox, timePeriodGroupBox);
|
||||
|
||||
for (MidId midId = 0; midId < MidId.Count; midId++)
|
||||
{
|
||||
int i = (int)midId;
|
||||
midsTabControl.TabPages[i].Text = midId.ToString();
|
||||
(midsTabControl.TabPages[i].Controls[0] as MidOrWaterMetersCtrl).MidId = midId;
|
||||
(midsTabControl.TabPages[i].Controls[0] as MidOrWaterMetersCtrl).Parent = this;
|
||||
}
|
||||
midsTabControl.TabPages[0].Text = Strings.Water_meters;
|
||||
|
||||
Localize();
|
||||
}
|
||||
|
||||
void Localize()
|
||||
{
|
||||
Text = Strings.Statistics;
|
||||
timePeriodCheckBox.Text = Strings.Time_period;
|
||||
fromLabel1.Text = Strings.From;
|
||||
toLabel1.Text = Strings.To;
|
||||
}
|
||||
|
||||
private void StatisticsDlg_Load(object sender, EventArgs e)
|
||||
{
|
||||
for (int i = 0; i < testBenchNames.Length; i++)
|
||||
{
|
||||
if ((i < connectionStrings.Length) && !string.IsNullOrEmpty(connectionStrings[i]))
|
||||
{
|
||||
sessionFactories[i] = null;
|
||||
try
|
||||
{
|
||||
sessionFactories[i] = Fluently.Configure()
|
||||
.Database(MySQLConfiguration.Standard.ConnectionString(connectionStrings[i]))
|
||||
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<Results.Entities.Batch>())
|
||||
.ExposeConfiguration(BuildSchema)
|
||||
.BuildSessionFactory();
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
MessageBox.Show(string.Format("Cannot open one of database of {0}", testBenchNames[i]), "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void BuildSchema(NHibernate.Cfg.Configuration config)
|
||||
{
|
||||
/// This NHibernate tool takes a configuration with mapping info and exports a database schema
|
||||
new NHibernate.Tool.hbm2ddl.SchemaExport(config).SetOutputFile("db_schema");
|
||||
}
|
||||
|
||||
private void ManageCheckGroupBox(CheckBox chk, GroupBox grp)
|
||||
{
|
||||
/// Make sure the CheckBox isn't in the GroupBox. This will only happen the first time.
|
||||
if (chk.Parent == grp)
|
||||
{
|
||||
grp.Parent.Controls.Add(chk); /// Reparent the CheckBox so it's not in the GroupBox.
|
||||
chk.Location = new Point(chk.Left + grp.Left, chk.Top + grp.Top); /// Adjust the CheckBox's location.
|
||||
chk.BringToFront(); /// Move the CheckBox to the top of the stacking order.
|
||||
}
|
||||
|
||||
/// Enable or disable the GroupBox.
|
||||
grp.Enabled = chk.Checked;
|
||||
}
|
||||
|
||||
private void timePeriodCheckBox_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
ManageCheckGroupBox(timePeriodCheckBox, timePeriodGroupBox);
|
||||
}
|
||||
|
||||
|
||||
public void UpdateRequest(int benchId, MidId midId)
|
||||
{
|
||||
if (benchId >= sessionFactories.Length || sessionFactories[benchId] == null || (midId == MidId.WaterMeters))
|
||||
{
|
||||
if (midId == MidId.WaterMeters)
|
||||
{
|
||||
MessageBox.Show("Loading statistics of water meters is not implemented yet");
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show(string.Format("Cannot load statistics of {0}", (benchId < testBenchNames.Length) ? testBenchNames[benchId] : "XY"));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
ISession session = sessionFactories[benchId].OpenSession();
|
||||
var listOfComponentsWithFlowmeter = session.QueryOver<Components>()
|
||||
.Where(x => (x.Flowmeter == midId.ToString()))
|
||||
.List();
|
||||
IList<TestRslt> testRslts = new List<TestRslt>();
|
||||
foreach (var cmpnts in listOfComponentsWithFlowmeter)
|
||||
{
|
||||
var listOfRslts = session.QueryOver<TestRslt>()
|
||||
.Where(x => ((x.EndTime >= dateTimeFromPicker.Value) && (x.EndTime <= dateTimeToPicker.Value)))
|
||||
.And(x => (x.Components == cmpnts))
|
||||
.List();
|
||||
foreach (var tr in listOfRslts) testRslts.Add(tr);
|
||||
}
|
||||
|
||||
session.Close();
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
MessageBox.Show(string.Format("Error loading statistics of {0}\r\n{1}", (benchId < testBenchNames.Length) ? testBenchNames[benchId] : "XY", exc.Message));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user