Beispiel #1
0
        public async Task <Result <PatientCircumcisionStatus> > Handle(AddPatientCircumcisionStatusCommand request, CancellationToken cancellationToken)
        {
            using (_prepUnitOfWork)
            {
                try
                {
                    if (request.Id.HasValue && request.Id.Value > 0)
                    {
                        var result = await _prepUnitOfWork.Repository <PatientCircumcisionStatus>()
                                     .FindByIdAsync(request.Id.Value);

                        if (result != null)
                        {
                            result.ClientCircumcised = request.ClientCircumcised;
                            result.ReferredToVMMC    = request.ReferredToVMMC;

                            _prepUnitOfWork.Repository <PatientCircumcisionStatus>().Update(result);
                            await _prepUnitOfWork.SaveAsync();

                            return(Result <PatientCircumcisionStatus> .Valid(result));
                        }
                    }

                    PatientCircumcisionStatus patientCircumcisionStatus = new PatientCircumcisionStatus()
                    {
                        PatientId         = request.PatientId,
                        ClientCircumcised = request.ClientCircumcised,
                        ReferredToVMMC    = request.ReferredToVMMC,
                        CreateDate        = request.CreateDate,
                        CreatedBy         = request.CreatedBy,
                        DeleteFlag        = request.DeleteFlag
                    };

                    await _prepUnitOfWork.Repository <PatientCircumcisionStatus>().AddAsync(patientCircumcisionStatus);

                    await _prepUnitOfWork.SaveAsync();

                    return(Result <PatientCircumcisionStatus> .Valid(patientCircumcisionStatus));
                }
                catch (Exception ex)
                {
                    string message = $"An error occured while saving prep circumcision status request for patientId {request.PatientId}";
                    Log.Error(ex, message);

                    return(Result <PatientCircumcisionStatus> .Invalid(message));
                }
            }
        }
Beispiel #2
0
        public async Task <IActionResult> AddCircumcisionStatus(
            [FromBody] AddPatientCircumcisionStatusCommand addPatientCircumcisionStatusCommand)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

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

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