Files

139 lines
4.0 KiB
C#
Raw Permalink Normal View History

2020-12-29 19:23:02 +01:00
using System;
2021-01-05 10:27:21 +01:00
using System.Collections.Generic;
2020-12-29 19:23:02 +01:00
using System.Linq;
using System.Windows.Forms;
namespace DataImporterTool
{
public partial class MainForm : Form, IMainFormView
{
public MainForm()
{
InitializeComponent();
statusImportProgressBar.Minimum = 0;
statusImportProgressBar.Maximum = 100;
btnOpenFolder.Click += BtnOpenFolder_Click;
btnAddAsAccounts.Click += BtnAddAsAccounts_Click;
btnAddAsTanks.Click += BtnAddAsTanks_Click;
btnStartImport.Click += BtnStartImport_Click;
2021-01-05 10:27:21 +01:00
lstSqlAccounts.ValueMember = "Key";
lstSqlAccounts.DisplayMember = "Value";
btnFetchData.Click += BtnFetchData_Click;
btnImportSqlAccounts.Click += BtnImportSqlAccounts_Click;
2020-12-29 19:23:02 +01:00
}
public string MongoDbConnectionString
{
get => txtMongoConnectionString.Text;
set => txtMongoConnectionString.Text = value;
}
public string JsonFolderPath
{
get => txtJsonFolder.Text;
set => txtJsonFolder.Text = value;
}
public string StatusInformation
{
get => statusImportLabel.Text;
set => statusImportLabel.Text = value;
}
2021-01-05 10:27:21 +01:00
public string SqlConnectionString
{
get => txtSqlConnectionString.Text;
set => txtSqlConnectionString.Text = value;
}
2020-12-29 19:23:02 +01:00
public event Action OpenJsonFolderClick;
public event Action<string[]> AddFilesAsAccountsInfoList;
public event Action<string[]> AddFilesAsTanksInfoList;
public event Action StartJsonConvert;
2021-01-05 10:27:21 +01:00
public event Action FetchSqlAccounts;
public event Action<long[]> StartSqlImport;
2020-12-29 19:23:02 +01:00
public void ShowJsonFiles(string[] allJsonFiles)
{
lstAllFiles.DataSource = allJsonFiles;
}
public void ShowJsonAccountFiles(string[] accountJsonFiles)
{
lstAccounts.DataSource = accountJsonFiles;
}
public void ShowJsonTankFiles(string[] tankJsonFiles)
{
lstTanks.DataSource = tankJsonFiles;
}
public void ClearLog()
{
txtIpmortLog.Text = string.Empty;
}
public void AppendLogRow(string logInfo)
{
txtIpmortLog.Text = $"{txtIpmortLog.Text}{Environment.NewLine}{logInfo}";
}
public void SetProcessPercentage(int percentage)
{
statusImportProgressBar.Value = percentage;
}
2021-01-05 10:27:21 +01:00
public void ShowSqlAccounts(Dictionary<long, string> accounts)
{
lstSqlAccounts.DataSource = new BindingSource(accounts, null);
}
2020-12-29 19:23:02 +01:00
private void BtnOpenFolder_Click(object sender, EventArgs e)
{
OpenJsonFolderClick?.Invoke();
}
private void BtnAddAsAccounts_Click(object sender, EventArgs e)
{
var selected = lstAllFiles.SelectedItems.Cast<string>().ToArray();
if (selected.Length > 0)
{
AddFilesAsAccountsInfoList?.Invoke(selected);
}
}
private void BtnAddAsTanks_Click(object sender, EventArgs e)
{
var selected = lstAllFiles.SelectedItems.Cast<string>().ToArray();
if (selected.Length > 0)
{
AddFilesAsTanksInfoList?.Invoke(selected);
}
}
private void BtnStartImport_Click(object sender, EventArgs e)
{
StartJsonConvert?.Invoke();
}
2021-01-05 10:27:21 +01:00
private void BtnFetchData_Click(object sender, EventArgs e)
{
FetchSqlAccounts?.Invoke();
}
private void BtnImportSqlAccounts_Click(object sender, EventArgs e)
{
var selectedAccounts = lstSqlAccounts.SelectedItems.Cast<KeyValuePair<long, string>>().Select(i => i.Key)
.ToArray();
StartSqlImport?.Invoke(selectedAccounts);
}
2020-12-29 19:23:02 +01:00
}
}