public async Task <Result <List <PrepEncountersView> > > Handle(GetPrepEncountersCommand request, CancellationToken cancellationToken) { using (_prepUnitOfWork) { try { if (request.fromDate != null && request.toDate != null) { list = await _prepUnitOfWork.Repository <PrepEncountersView>() .Get(x => x.PatientId == request.PatientId && x.ServiceAreaId == request.ServiceAreaId && x.EncounterStartTime.Value <= request.toDate && x.EncounterStartTime.Value >= request.fromDate).Take(300).ToListAsync(); } else { list = await _prepUnitOfWork.Repository <PrepEncountersView>() .Get(x => x.PatientId == request.PatientId && x.ServiceAreaId == request.ServiceAreaId).ToListAsync(); } return(Result <List <PrepEncountersView> > .Valid(list)); } catch (Exception e) { Log.Error($"Could not fetch PrEP Encounters for PatientId: {request.PatientId}"); return(Result <List <PrepEncountersView> > .Invalid($"Could not fetch PrEP Encounters for PatientId: {request.PatientId}")); } } }
public async Task <IActionResult> GetPrepEncounters([FromBody] GetPrepEncountersCommand getPrepEncountersCommand) { var response = await _mediator.Send(getPrepEncountersCommand, Request.HttpContext.RequestAborted); if (response.IsValid) { return(Ok(response.Value)); } return(BadRequest(response)); }