public async Task <IActionResult> AddPrepStatus([FromBody] AddPrepStatusCommand addPrepStatusCommand) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var response = await _mediator.Send(addPrepStatusCommand, Request.HttpContext.RequestAborted); if (response.IsValid) { return(Ok(response.Value)); } return(BadRequest(response)); }
public async Task <Result <PatientPrEPStatus> > Handle(AddPrepStatusCommand request, CancellationToken cancellationToken) { using (_prepUnitOfWork) { try { if (request.Id.HasValue && request.Id.Value > 0) { var result = await _prepUnitOfWork.Repository <PatientPrEPStatus>() .FindByIdAsync(request.Id.Value); if (result != null) { result.AdherenceCounsellingDone = request.AdherenceCounsellingDone; result.SignsOrSymptomsHIV = request.SignsOrSymptomsHIV; // result.ContraindicationsPrepPresent = request.ContraindicationsPrepPresent; result.PrepStatusToday = request.PrepStatusToday; result.CreatedBy = request.CreatedBy; result.CondomsIssued = request.CondomsIssued; result.NoOfCondoms = request.NoOfCondoms; _prepUnitOfWork.Repository <PatientPrEPStatus>().Update(result); await _prepUnitOfWork.SaveAsync(); return(Result <PatientPrEPStatus> .Valid(result)); } else { PatientPrEPStatus patientPrEpStatus = new PatientPrEPStatus() { PatientId = request.PatientId, PatientEncounterId = request.PatientEncounterId, SignsOrSymptomsHIV = request.SignsOrSymptomsHIV, AdherenceCounsellingDone = request.AdherenceCounsellingDone, //ContraindicationsPrepPresent = request.ContraindicationsPrepPresent, PrepStatusToday = request.PrepStatusToday, DeleteFlag = false, CreatedBy = request.CreatedBy, CreateDate = DateTime.Now, CondomsIssued = request.CondomsIssued, NoOfCondoms = request.NoOfCondoms }; await _prepUnitOfWork.Repository <PatientPrEPStatus>().AddAsync(patientPrEpStatus); await _prepUnitOfWork.SaveAsync(); return(Result <PatientPrEPStatus> .Valid(patientPrEpStatus)); } } else { PatientPrEPStatus patientPrEpStatus = new PatientPrEPStatus() { PatientId = request.PatientId, PatientEncounterId = request.PatientEncounterId, SignsOrSymptomsHIV = request.SignsOrSymptomsHIV, AdherenceCounsellingDone = request.AdherenceCounsellingDone, //ContraindicationsPrepPresent = request.ContraindicationsPrepPresent, PrepStatusToday = request.PrepStatusToday, DeleteFlag = false, CreatedBy = request.CreatedBy, CreateDate = DateTime.Now, CondomsIssued = request.CondomsIssued, NoOfCondoms = request.NoOfCondoms }; await _prepUnitOfWork.Repository <PatientPrEPStatus>().AddAsync(patientPrEpStatus); await _prepUnitOfWork.SaveAsync(); return(Result <PatientPrEPStatus> .Valid(patientPrEpStatus)); } } catch (Exception ex) { string message = $"An error occured while saving prep status request for patientId {request.PatientId}"; Log.Error(ex, message); return(Result <PatientPrEPStatus> .Invalid(message)); } } }