public async Task <Result <CheckOutResponse> > Handle(PatientCheckOutCommand request, CancellationToken cancellationToken)
        {
            try
            {
                if (request.Id > 0)
                {
                    var servicechecked = await _prepUnitOfWork.Repository <ServiceCheckin>().Get(x => x.Id == request.Id).FirstOrDefaultAsync();

                    if (servicechecked != null)
                    {
                        servicechecked.Status     = request.Status;
                        servicechecked.End        = DateTime.Now;
                        servicechecked.DeleteFlag = request.DeleteFlag;

                        _prepUnitOfWork.Repository <ServiceCheckin>().Update(servicechecked);
                        await _prepUnitOfWork.SaveAsync();

                        Id      = servicechecked.Id;
                        message = "Patient Successfully checked out";
                    }
                }
                else
                {
                    var serviceChecked = await _prepUnitOfWork.Repository <ServiceCheckin>().Get(x => x.PatientId == request.PatientId &&
                                                                                                 x.ServiceId == request.ServiceId && x.VisitDate.ToString() == request.VisitDate.ToString()).FirstOrDefaultAsync();

                    if (serviceChecked != null)
                    {
                        serviceChecked.Status     = request.Status;
                        serviceChecked.End        = DateTime.Now;
                        serviceChecked.DeleteFlag = request.DeleteFlag;
                        _prepUnitOfWork.Repository <ServiceCheckin>().Update(serviceChecked);
                        await _prepUnitOfWork.SaveAsync();

                        Id      = serviceChecked.Id;
                        message = "Patient Successfully checked out";
                    }
                }



                return(Result <CheckOutResponse> .Valid(new CheckOutResponse()
                {
                    Id = Id,
                    Message = message
                }));
            }
            catch (Exception ex)
            {
                return(Result <CheckOutResponse> .Invalid(ex.Message));
            }
        }
        public async Task <IActionResult> PatientCheckout([FromBody] PatientCheckOutCommand checkoutCommand)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var response = await _mediator.Send(checkoutCommand, Request.HttpContext.RequestAborted);

            if (response.IsValid)
            {
                return(Ok(response.Value));
            }
            return(BadRequest(response));
        }