patbef-ServiceInside/Support/Controls/Devices.cs

135 lines
4.1 KiB
C#

using MySql.Data.MySqlClient;
using Support.Controllers;
using Support.Crypto;
using Support.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Support.Controls
{
public partial class Devices : UserControl
{
private Models.Appsettings Appsettings = null;
private DeviceController DeviceController = null;
private Main _MainForm = null;
private bool IsRunning = false;
private delegate void UpdateDeviceDelegate(DeviceModel deviceModel);
public Devices(Models.Appsettings appsettings, Main mainForm)
{
this._MainForm = mainForm;
this.Appsettings = appsettings;
string connString = appsettings.DatabaseConnectionString;
string decryptedConnectioString = AES.Decrypt(connString);
if (!string.IsNullOrEmpty(decryptedConnectioString))
{
connString = decryptedConnectioString;
}
this.DeviceController = new Controllers.DeviceController(new Database(connString), this.Appsettings);
InitializeComponent();
}
private void btnSearch_Click(object sender, EventArgs e)
{
try
{
if(!this.IsRunning)
{
string orderID = txtOrderId.Text;
string zip = txtZIP.Text;
string birthday = txtBirthday.Text;
string udid = txtUDID.Text;
this.IsRunning = true;
this._MainForm.ShowLoading();
new Thread(() =>
{
DeviceModel deviceModel = this.DeviceController.GetDevice(orderID, zip, birthday, udid);
this.UpdateDevice(deviceModel);
}).Start();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void UpdateDevice(DeviceModel deviceModel)
{
if(dtDevice.InvokeRequired)
{
dtDevice.Invoke(new UpdateDeviceDelegate(UpdateDevice), deviceModel);
}
else
{
this.IsRunning = false;
this._MainForm.HideLoading();
dtDevice.AutoGenerateColumns = false;
dgResults.AutoGenerateColumns = false;
dtDevice.DataSource = null;
dgResults.DataSource = null;
if(deviceModel != null)
{
dtDevice.DataSource = new List<DeviceModel>() { deviceModel };
if(deviceModel.Orders != null && deviceModel.Orders.Count > 0)
{
dgResults.DataSource = deviceModel.Orders;
}
}
}
}
private void dgResults_CellMouseEnter(object sender, DataGridViewCellEventArgs e)
{
if(e.RowIndex >= 0 && e.ColumnIndex == 9)
{
dgResults.Cursor = Cursors.Hand;
}
else
{
dgResults.Cursor = Cursors.Default;
}
}
private void dgResults_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0 && e.ColumnIndex == 9 && dgResults.Rows != null && dgResults.Rows.Count > 0 && dgResults.Rows[e.RowIndex].DataBoundItem != null &&
dgResults.Rows[e.RowIndex].DataBoundItem.GetType() == typeof(Models.Order))
{
Models.Order order = (Models.Order)dgResults.Rows[e.RowIndex].DataBoundItem;
if(order != null)
{
Logs logs = new Logs(order);
logs.ShowDialog();
}
else
{
MessageBox.Show("Kein Auftrag gefunden");
}
}
}
}
}