56 lines
1.9 KiB
C#

using MedicalDatabaseContracts;
using MedicalDatabaseContracts.Models;
using Microsoft.Extensions.Logging;
namespace MedicalView
{
public partial class FormDiagnoses : Form
{
private ILogger _logger;
private IStorage<Diagnose> _diagnosesStorage;
public FormDiagnoses(ILogger<FormDiagnoses> logger, IStorage<Diagnose> diagnosesStorage)
{
InitializeComponent();
_logger = logger;
_diagnosesStorage = diagnosesStorage;
}
private void FormDiagnoses_Load(object sender, EventArgs e)
{
LoadData();
}
private void RefreshToolStripMenuItem_Click(object sender, EventArgs e)
{
LoadData();
}
private void LoadData()
{
SetStatusStripText("Загрузка диагнозов...");
try
{
long elapsed;
var items = _diagnosesStorage.GetAll(out elapsed);
dataGridView.DataSource = items;
dataGridView.Columns["Id"].Visible = false;
_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($"Ошибка загрузки");
}
}
private void SetStatusStripText(string text)
{
toolStripStatusLabel.Text = text;
}
}
}