tbf/ResultsBrowser/ResultsBrowserWnd.cs

175 lines
5.4 KiB
C#
Raw Normal View History

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;
2016-06-02 22:19:23 +00:00
using NHibernate;
using Results.Entities;
using ResultsBrowser.Filters;
using ResultsBrowser.Resources;
namespace ResultsBrowser
{
public partial class ResultsBrowserWnd : Form
{
2016-06-02 22:19:23 +00:00
IList<Filters.IFilter> filters;
public ResultsBrowserWnd()
{
InitializeComponent();
2016-06-02 22:19:23 +00:00
filters = new List<Filters.IFilter>();
}
private void ResultsBrowserWnd_Load(object sender, EventArgs e)
{
Localize();
RedrawTestBenches();
2016-06-02 22:19:23 +00:00
checkBox1.Checked = true;
}
void RedrawTestBenches()
{
checkBox1.Text = Program.LocalSettings.Bench1;
checkBox2.Text = Program.LocalSettings.Bench2;
checkBox3.Text = Program.LocalSettings.Bench3;
checkBox1.Visible = !string.IsNullOrEmpty(checkBox1.Text);
checkBox2.Visible = !string.IsNullOrEmpty(checkBox2.Text);
checkBox3.Visible = !string.IsNullOrEmpty(checkBox3.Text);
}
void Localize()
{
Text = "Results Browser"; /// or Statistics
filtersGroupBox.Text = "Filters";
resultsGroupBox.Text = "Query results";
settingsBtn.Text = "Settings";
addFilterBtn.Text = "Add filter";
loadQueryBtn.Text = "Load query";
saveQueryBtn.Text = "Save query";
testBenchesGroupBox.Text = "Test benches";
executeQueryBtn.Text = "Execute query";
}
private void settingsBtn_Click(object sender, EventArgs e)
{
if (new Forms.DatabaseSettingsDlg().ShowDialog() == DialogResult.OK)
{
RedrawTestBenches();
}
}
private void addFilterBtn_Click(object sender, EventArgs e)
{
Forms.AddFilterDlg dlg = new Forms.AddFilterDlg();
if (dlg.ShowDialog() == DialogResult.OK && dlg.SelectedFilterName != null)
{
2016-06-02 22:19:23 +00:00
Filters.IFilter filter = Factory.GetFilter(dlg.SelectedFilterName);
filters.Add(filter);
filtersFlowLayoutPanel.Controls.Add(filter.GetFilterUI());
}
}
private void loadQueryBtn_Click(object sender, EventArgs e)
{
OpenFileDialog dlg = new OpenFileDialog();
if (dlg.ShowDialog() == DialogResult.OK)
{
FiltersConfig filtersConfig = FiltersConfig.Load(dlg.FileName);
filters.Clear();
filtersFlowLayoutPanel.Controls.Clear();
///
for (int i = 0; i < filtersConfig.FiltersCount; i++)
{
2016-06-02 22:19:23 +00:00
Filters.IFilter filter = Factory.LoadFilter(filtersConfig.FilterName[i], filtersConfig.FilterData[i]);
filters.Add(filter);
filtersFlowLayoutPanel.Controls.Add(filter.GetFilterUI());
}
}
}
private void saveQueryBtn_Click(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
FiltersConfig filtersConfig = new FiltersConfig(filters.Count);
try
{
for (int i = 0; i < filters.Count; i++)
{
filtersConfig.FilterName[i] = filters[i].GetThisFilterName();
sb.Clear();
filters[i].UI2Data();
filters[i].Save(sb);
filtersConfig.FilterData[i] = sb.ToString();
}
}
catch (Exception exc)
{
MessageBox.Show(exc.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return;
}
SaveFileDialog dlg = new SaveFileDialog();
if (dlg.ShowDialog() == DialogResult.OK)
{
filtersConfig.Save(dlg.FileName);
}
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
}
private void checkBox2_CheckedChanged(object sender, EventArgs e)
{
}
private void checkBox3_CheckedChanged(object sender, EventArgs e)
{
}
private void executeQueryBtn_Click(object sender, EventArgs e)
{
2016-06-02 22:19:23 +00:00
try
{
foreach (var filter in filters) filter.UI2Data(); /// Update filter data
IList<WaterMeter> waterMeters = null;
IList<WaterMeter> waterMeters2;
Results.DB.ConnectionString = checkBox1.Checked ? Program.LocalSettings.ConnectionString1 :
(checkBox2.Checked ? Program.LocalSettings.ConnectionString2 :
(checkBox3.Checked ? Program.LocalSettings.ConnectionString3 :
Program.LocalSettings.ConnectionString1));
ISession[] sessions = new ISession[] { Results.DB.CreateSession() };
2016-06-02 22:19:23 +00:00
foreach (var filter in filters)
{
waterMeters2 = filter.ExecuteQuery(sessions, waterMeters);
waterMeters = waterMeters2;
}
resultsListBox.Items.Clear();
foreach (var wm in waterMeters) resultsListBox.Items.Add(wm.ToString());
}
catch (Exception exc)
{
MessageBox.Show(exc.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return;
}
}
}
}