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.ToChar(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, string> GetEntityAttributesDictionary(Patient item)
|
|||
|
{
|
|||
|
var dict = new Dictionary<string, string>
|
|||
|
{
|
|||
|
{ PRIMARY_KEY_COLUMN_NAME, item.Id.ToString() },
|
|||
|
{ "name", item.Name },
|
|||
|
{ "surname", item.Surname },
|
|||
|
{ "patronymic", item.Patronymic },
|
|||
|
{ "phone_number", item.PhoneNumber },
|
|||
|
{ "gender", item.Gender.ToString() },
|
|||
|
{ "birthday", item.Birthday.ToString() },
|
|||
|
{ "weight", item.Weight.ToString() },
|
|||
|
{ "height", item.Height.ToString() },
|
|||
|
};
|
|||
|
return dict;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|