private void MapPatientDetails(UpdateOncologyPatientCommand request, OncologyPatient patient) { patient.OncologyPatientId = request.Model.OncologyPatientId.Value; patient.RegistrationDate = request.Model.RegistrationDate; patient.AdmissionDate = request.Model.AdmissionDate; patient.InformantsRelationship = request.Model.InformantsRelationship; patient.ReasonForReferral = request.Model.ReasonForReferral; }
public async Task <int> Handle(CreateOncologyPatientCommand request, CancellationToken cancellationToken) { var item = await Context.OncologyPatients .Where(p => p.OncologyPatientId == request.Model.OncologyPatientId) .FirstOrDefaultAsync(cancellationToken); if (item != null) { throw new AlreadyExistsException(nameof(OncologyPatient), nameof(request.Model.OncologyPatientId), request.Model.OncologyPatientId); } var pModel = request.Model.Person; var personId = pModel?.PersonId; string governmentIDNumber = pModel?.GovernmentIDNumber; var person = await Context.People .Where(p => p.PersonId == personId || p.GovernmentIDNumber == governmentIDNumber) .FirstOrDefaultAsync(cancellationToken); if (person != null) { var patient2 = Context.OncologyPatients.Include(o => o.Person).FirstOrDefault(p => p.Person.GovernmentIDNumber == pModel.GovernmentIDNumber); if (patient2 != null) { throw new AlreadyExistsException(nameof(OncologyPatient), nameof(pModel.GovernmentIDNumber), pModel.GovernmentIDNumber); } } person = Mapper.Map <Person>(pModel); var newPatient = new OncologyPatient { AdmissionDate = request.Model.AdmissionDate, InformantsRelationship = request.Model.InformantsRelationship, ReasonForReferral = request.Model.ReasonForReferral, RegistrationDate = DateTime.Now, Person = person }; Context.OncologyPatients.Add(newPatient); await Context.SaveChangesAsync(cancellationToken); return(newPatient.OncologyPatientId); }