public async Task <Result <AddPatientReenrollmentResponse> > Handle(AddPatientReenrollmentCommand request, CancellationToken cancellationToken) { try { var patientcareendings = await _unitOfWork.Repository <PatientCareEnding>().Get(x => x.PatientId == request.PatientId && !x.Active).ToListAsync(); if (patientcareendings.Count > 0) { foreach (var careend in patientcareendings) { careend.DeleteFlag = true; careend.Active = true; _unitOfWork.Repository <PatientCareEnding>().Update(careend); await _unitOfWork.SaveAsync(); } } PatientReenrollment pr = new PatientReenrollment(); pr.CreateDate = DateTime.Now; pr.CreatedBy = request.UserId; pr.DeleteFlag = false; pr.PatientId = request.PatientId; pr.ReenrollmentDate = request.EnrollmentDate; await _unitOfWork.Repository <PatientReenrollment>().AddAsync(pr); await _unitOfWork.SaveAsync(); if (pr.Id > 0) { idnumber = pr.Id; } var patientenrollment = await _unitOfWork.Repository <PatientEnrollment>().Get(x => x.PatientId == request.PatientId && x.ServiceAreaId == request.ServiceAreaId).OrderByDescending(x => x.Id).FirstOrDefaultAsync(); if (patientenrollment != null) { patientenrollment.CareEnded = false; _unitOfWork.Repository <PatientEnrollment>().Update(patientenrollment); await _unitOfWork.SaveAsync(); message += "Patient Successfully reenrolled"; } return(Result <AddPatientReenrollmentResponse> .Valid(new AddPatientReenrollmentResponse() { Id = idnumber, Message = message })); } catch (Exception ex) { return(Result <AddPatientReenrollmentResponse> .Invalid(ex.Message)); } }
public async Task <IActionResult> AddPatientReenollment([FromBody] AddPatientReenrollmentCommand addPatientReenrollmentCommand) { var encountervisit = await _mediator.Send(addPatientReenrollmentCommand, Request.HttpContext.RequestAborted); if (encountervisit.IsValid) { return(Ok(encountervisit.Value)); } return(BadRequest(encountervisit)); }