98 lines
3.3 KiB
C#
Raw Normal View History

using MedicalView.Doctors;
using MedicalView.Specializations;
using MedicalView.Diagnoses;
using MedicalView.Patients;
using Microsoft.Extensions.Logging;
using MedicalDatabaseContracts;
using MedicalDatabaseContracts.Models;
namespace MedicalView.Visits
2024-04-24 10:32:27 +04:00
{
public partial class FormMain : Form
{
private ILogger _logger;
private IStorage<Visit> _visitStorage;
public FormMain(ILogger<FormMain> logger, IStorage<Visit> visitStorage)
2024-04-24 10:32:27 +04:00
{
InitializeComponent();
_logger = logger;
_visitStorage = visitStorage;
2024-04-24 10:32:27 +04:00
}
private void FormMain_Load(object sender, EventArgs e)
2024-04-24 10:32:27 +04:00
{
LoadData();
}
private void DiagnosesToolStripMenuItem_Click(object sender, EventArgs e)
{
var service = Program.ServiceProvider?.GetService(typeof(FormDiagnoses));
if (service is FormDiagnoses form)
{
form.ShowDialog();
}
2024-04-24 10:32:27 +04:00
}
private void SpecializationsToolStripMenuItem_Click(object sender, EventArgs e)
{
var service = Program.ServiceProvider?.GetService(typeof(FormSpecializations));
if (service is FormSpecializations form)
{
form.ShowDialog();
}
}
private void DoctorsToolStripMenuItem_Click(object sender, EventArgs e)
{
var service = Program.ServiceProvider?.GetService(typeof(FormDoctors));
if (service is FormDoctors form)
{
form.ShowDialog();
}
}
private void PatientsToolStripMenuItem1_Click(object sender, EventArgs e)
{
var service = Program.ServiceProvider?.GetService(typeof(FormPatients));
if (service is FormPatients form)
{
form.ShowDialog();
}
}
protected virtual void LoadData()
{
SetStatusStripText("Загрузка списка...");
try
{
long elapsed;
var items = _visitStorage.GetAll(out elapsed);
dataGridView.DataSource = items;
foreach (DataGridViewTextBoxColumn column in dataGridView.Columns)
{
if (column.Name.Contains("Id"))
{
column.Visible = false;
}
}
dataGridView.ReadOnly = true;
_logger.LogInformation("Список загружен успешно");
SetStatusStripText($"Готово. Загружено записей: {items.Count}, время загрузки {elapsed} мск");
}
catch (Exception ex)
{
string errorMessage = "Ошибка загрузки списка";
_logger.LogError(string.Join(", ", errorMessage, $"\"{ex.Message}\""));
MessageBox.Show(string.Join("\n\n", errorMessage, $"{ex.Message}"), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
SetStatusStripText($"Ошибка загрузки");
}
}
protected virtual void SetStatusStripText(string text)
{
toolStripStatusLabel.Text = text;
}
2024-04-24 10:32:27 +04:00
}
}