public async Task <Result <CheckinOutCome> > Handle(PatientCheckinCommand request, CancellationToken cancellationToken) { try { var servicecheckin = await _prepUnitOfWork.Repository <ServiceCheckin>().Get(x => x.PatientId == request.PatientId && x.ServiceId == request.ServiceId && x.VisitDate == request.VisitDate).FirstOrDefaultAsync(); if (servicecheckin != null) { servicecheckin.Start = DateTime.Now; servicecheckin.Status = request.Status; servicecheckin.VisitDate = request.VisitDate; servicecheckin.PatientId = request.PatientId; servicecheckin.ServiceId = request.ServiceId; servicecheckin.EMRType = request.EmrType; servicecheckin.Active = true; servicecheckin.DeleteFlag = false; servicecheckin.CreatedBy = request.UserId; _prepUnitOfWork.Repository <ServiceCheckin>().Update(servicecheckin); await _prepUnitOfWork.SaveAsync(); Id = servicecheckin.Id; message += "Successfully checked In"; } else { ServiceCheckin servi = new ServiceCheckin(); servi.Status = request.Status; servi.VisitDate = request.VisitDate; servi.PatientId = request.PatientId; servi.ServiceId = request.ServiceId; servi.EMRType = request.EmrType; servi.Active = true; servi.DeleteFlag = false; servi.CreatedBy = request.UserId; servi.Start = DateTime.Now; servi.Status = request.Status; await _prepUnitOfWork.Repository <ServiceCheckin>().AddAsync(servi); await _prepUnitOfWork.SaveAsync(); Id = servi.Id; message += "Succeessfully checked in"; } return(Result <CheckinOutCome> .Valid(new CheckinOutCome() { ServiceCheckInId = Id, Message = message })); } catch (Exception ex) { return(Result <CheckinOutCome> .Invalid(ex.Message)); } }
public async Task <IActionResult> PatientCheckin([FromBody] PatientCheckinCommand checkinCommand) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var response = await _mediator.Send(checkinCommand, Request.HttpContext.RequestAborted); if (response.IsValid) { return(Ok(response.Value)); } return(BadRequest(response)); }