46 lines
1.8 KiB
C#
46 lines
1.8 KiB
C#
using MedicalDatabaseContracts.Models;
|
|
using Microsoft.Extensions.Logging;
|
|
using Npgsql;
|
|
using System.Data;
|
|
|
|
namespace MedicalPostgresqlDatabase.Storages
|
|
{
|
|
public class PatientStorage : AbstractPostgresqlStorage<Patient>
|
|
{
|
|
public PatientStorage(ILogger<PatientStorage> logger) : base(logger, "patients", "patient_id", "patients_id_seq") { }
|
|
|
|
protected override Patient CreateEntityFromReader(NpgsqlDataReader reader)
|
|
{
|
|
return new Patient
|
|
{
|
|
Id = Convert.ToInt32(reader.GetValue(PRIMARY_KEY_COLUMN_NAME)),
|
|
Name = Convert.ToString(reader.GetValue("name")),
|
|
Surname = Convert.ToString(reader.GetValue("surname")),
|
|
Patronymic = Convert.ToString(reader.GetValue("patronymic")),
|
|
PhoneNumber = Convert.ToString(reader.GetValue("phone_number")),
|
|
Gender = Convert.ToString(reader.GetValue("gender")),
|
|
Birthday = Convert.ToDateTime(reader.GetValue("birthday")),
|
|
Weight = Convert.ToInt32(reader.GetValue("weight")),
|
|
Height = Convert.ToInt32(reader.GetValue("height")),
|
|
};
|
|
}
|
|
|
|
protected override Dictionary<string, object> GetEntityAttributesDictionary(Patient item)
|
|
{
|
|
var dict = new Dictionary<string, object>
|
|
{
|
|
{ PRIMARY_KEY_COLUMN_NAME, item.Id },
|
|
{ "name", item.Name },
|
|
{ "surname", item.Surname },
|
|
{ "patronymic", item.Patronymic ?? string.Empty },
|
|
{ "phone_number", item.PhoneNumber },
|
|
{ "gender", item.Gender },
|
|
{ "birthday", item.Birthday },
|
|
{ "weight", item.Weight },
|
|
{ "height", item.Height },
|
|
};
|
|
return dict;
|
|
}
|
|
}
|
|
}
|