using MedicalDatabaseContracts.Models; using Microsoft.Extensions.Logging; using Npgsql; using System.Data; namespace MedicalPostgresqlDatabase.Storages { public class PatientStorage : AbstractPostgresqlStorage { public PatientStorage(ILogger 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 GetEntityAttributesDictionary(Patient item) { var dict = new Dictionary { { 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; } } }