2023-03-08 09:33:11 +01:00

177 lines
5.3 KiB
C#

using DigitalData.Modules.Logging;
using DigitalData.Modules.Config;
using DigitalData.Modules.Database;
namespace ReportViewer
{
public partial class FrmMain : DevExpress.XtraBars.Ribbon.RibbonForm
{
private readonly LogConfig logConfig;
private readonly Logger logger;
private ConfigManager<Config>? configManager;
private MSSQLServer? database;
private ReportDataLoader? loader;
private bool formLoading = false;
public FrmMain()
{
InitializeComponent();
logConfig = new LogConfig(new LogOptions()
{
LogPath = LogConfig.PathType.AppData,
CustomLogPath = Application.LocalUserAppDataPath,
CompanyName = Application.CompanyName,
ProductName = Application.ProductName
});
logger = logConfig.GetLogger();
}
private void FrmMain_Load(object sender, EventArgs e)
{
try
{
formLoading = true;
configManager = new ConfigManager<Config>(logConfig, Application.UserAppDataPath);
database = new MSSQLServer(logConfig, configManager.Config.ConnectionString);
loader = new ReportDataLoader(logConfig, configManager.Config, database, documentViewer1);
configManager.Config.Providers = configManager.Config.Providers.DistinctBy(p => p.Type).ToList();
configManager.Save();
var debug = configManager.Config.Debug;
logConfig.Debug = debug;
checkDebug.Checked = debug;
DebugChanged(debug);
}
catch (Exception ex)
{
logger.Error(ex);
}
finally
{
formLoading = false;
}
}
private void BarButtonItem1_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
try
{
Config.ServiceProvider provider = null;
if (loader == null)
return;
if (checkHP.Checked)
provider = configManager.Config.Providers.Where(p => p.Type == Config.ServiceProviderType.HellmoldPlank).First();
if (checkGLS.Checked)
provider = configManager.Config.Providers.Where(p => p.Type == Config.ServiceProviderType.GLS).First();
if (checkSample.Checked)
provider = configManager.Config.Providers.Where(p => p.Type == Config.ServiceProviderType.Sample).First();
if (provider == null)
{
MessageBox.Show("Bitte wählen Sie einen Dienstleister aus!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return;
}
DateTime? date = null;
if (dateEdit1.EditValue != null)
date = (DateTime)dateEdit1.EditValue;
loader.Load(date, provider);
barButtonItem2.Enabled = true;
}
catch (Exception ex)
{
logger.Error(ex);
}
}
private void barButtonItem2_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
try
{
if (loader == null)
return;
loader.Print();
}
catch (Exception ex)
{
logger.Error(ex);
}
}
private void ribbon_Click(object sender, EventArgs e)
{
}
private void btnOpenLogDirectory_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
try
{
var path = logConfig.LogDirectory;
if (System.IO.Directory.Exists(path))
{
System.Diagnostics.Process.Start(path);
}
}
catch (Exception ex)
{
logger.Error(ex);
}
}
private void checkDebug_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
if (formLoading)
return;
logConfig.Debug = checkDebug.Checked;
DebugChanged(checkDebug.Checked);
configManager?.Save();
}
private void DebugChanged(bool Debug)
{
if (Debug)
{
checkSample.Visibility = DevExpress.XtraBars.BarItemVisibility.Always;
}
else
{
checkSample.Visibility = DevExpress.XtraBars.BarItemVisibility.Never;
}
}
private void barButtonItem3_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
try
{
var path = configManager?.UserConfigPath;
var directory = System.IO.Path.GetDirectoryName(path);
if (System.IO.Directory.Exists(directory))
{
System.Diagnostics.Process.Start(directory);
}
}
catch (Exception ex)
{
logger.Error(ex);
}
}
}
}