Ejemplo n.º 1
0
        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));
        }