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)); }