Commit 56077e5a authored by Almouhannad's avatar Almouhannad

(B) Update PatientMedicine, PatientDisease entities

parent 4b6e6961
using Domain.Entities.People.Patients.Relations.PatientDiseases;
using Domain.Entities.Medicals.Diseases;
using Domain.Entities.Medicals.Medicines;
using Domain.Entities.People.Patients.Relations.PatientDiseases;
using Domain.Entities.People.Patients.Relations.PatientMedicines;
using Domain.Entities.People.Shared;
using Domain.Entities.People.Shared.GenderValues;
......@@ -104,6 +106,46 @@ public sealed class Patient : Entity
}
#endregion
#region Add medicine
public void AddMedicine(Medicine medicine, int number)
{
PatientMedicine entry;
try
{
entry = PatientMedicine.Create(Id, medicine.Id, number);
}
catch
{
throw;
}
if (Medicines is null)
Medicines = [];
Medicines.Add(entry);
}
#endregion
#region Add disease
public void AddDisease (Disease disease)
{
PatientDisease entry;
try
{
entry = PatientDisease.Create(Id, disease.Id);
}
catch
{
throw;
}
if (Diseases is null)
Diseases = [];
Diseases.Add(entry);
}
#endregion
#endregion
}
using Domain.Entities.Medicals.Diseases;
using Domain.Exceptions.InvalidValue;
using Domain.Primitives;
namespace Domain.Entities.People.Patients.Relations.PatientDiseases;
public sealed class PatientDisease(int id) : Entity(id)
public sealed class PatientDisease : Entity
{
#region Private ctor
private PatientDisease(int id) : base(id)
{
}
private PatientDisease(int id, int patientId, int diseaseId) : base(id)
{
PatientId = patientId;
DiseaseId = diseaseId;
}
#endregion
#region Properties
......@@ -27,4 +39,17 @@ public sealed class PatientDisease(int id) : Entity(id)
#endregion
#endregion
#region Methods
#region Static factory
public static PatientDisease Create(int patientId, int diseaseId)
{
if (patientId <= 0 || diseaseId <= 0)
throw new InvalidValuesDomainException<PatientDisease>();
return new PatientDisease(0, patientId, diseaseId);
}
#endregion
#endregion
}
using Domain.Entities.Medicals.Medicines;
using Domain.Exceptions.InvalidValue;
using Domain.Primitives;
namespace Domain.Entities.People.Patients.Relations.PatientMedicines;
public sealed class PatientMedicine(int id) : Entity(id)
public sealed class PatientMedicine : Entity
{
#region Private ctor
private PatientMedicine(int id) : base(id)
{
}
private PatientMedicine(int id, int patientId, int medicineId, int number) : base(id)
{
PatientId = patientId;
MedicineId = medicineId;
Number = number;
}
#endregion
#region Properties
#region Patient
......@@ -28,5 +44,18 @@ public sealed class PatientMedicine(int id) : Entity(id)
#endregion
#endregion
#region Methods
#region Static factory
public static PatientMedicine Create(int patientId, int medicineId, int number)
{
if (patientId <= 0 || medicineId <= 0 || number <= 0)
throw new InvalidValuesDomainException<PatientMedicine>();
return new PatientMedicine(0, patientId, medicineId, number);
}
#endregion
#endregion
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment