public async Task <Result <AddLinkageResponse> > Handle(AddLinkageCommand request, CancellationToken cancellationToken)
        {
            try
            {
                PatientLinkage patientLinkage = new PatientLinkage()
                {
                    PersonId     = request.PersonId,
                    LinkageDate  = request.DateEnrolled,
                    CCCNumber    = request.CCCNumber,
                    Facility     = request.Facility,
                    Enrolled     = true,
                    DeleteFlag   = false,
                    CreatedBy    = request.UserId,
                    CreateDate   = DateTime.Now,
                    HealthWorker = request.HealthWorker,
                    Cadre        = request.Carde
                };

                await _unitOfWork.Repository <PatientLinkage>().AddAsync(patientLinkage);

                await _unitOfWork.SaveAsync();

                _unitOfWork.Dispose();

                return(Result <AddLinkageResponse> .Valid(new AddLinkageResponse
                {
                    LinkageId = patientLinkage.Id
                }));
            }
            catch (Exception e)
            {
                return(Result <AddLinkageResponse> .Invalid(e.Message));
            }
        }
예제 #2
0
        public async Task <IActionResult> LinkPatient([FromBody] AddLinkageCommand command)
        {
            var response = await _mediator.Send(command, Request.HttpContext.RequestAborted);

            if (response.IsValid)
            {
                return(Ok(response.Value));
            }
            return(BadRequest(response));
        }
예제 #3
0
        public async Task <Result <AddLinkageResponse> > Handle(AddLinkageCommand request, CancellationToken cancellationToken)
        {
            try
            {
                int patientLinkageId = 0;

                if (request.IsEdit)
                {
                    var patientLinkage = await _unitOfWork.Repository <PatientLinkage>().FindByIdAsync(request.Id);

                    if (patientLinkage != null)
                    {
                        patientLinkage.LinkageDate  = request.DateEnrolled;
                        patientLinkage.CCCNumber    = request.CCCNumber;
                        patientLinkage.Facility     = request.Facility;
                        patientLinkage.HealthWorker = request.HealthWorker;
                        patientLinkage.Cadre        = request.Carde;
                        patientLinkage.ArtStartDate = request.Artstartdate;
                        patientLinkage.Comments     = request.Remarks;

                        _unitOfWork.Repository <PatientLinkage>().Update(patientLinkage);
                        await _unitOfWork.SaveAsync();

                        patientLinkageId = patientLinkage.Id;
                    }
                }
                else
                {
                    PatientLinkage patientLinkage = new PatientLinkage()
                    {
                        PersonId     = request.PersonId,
                        LinkageDate  = request.DateEnrolled,
                        CCCNumber    = request.CCCNumber,
                        Facility     = request.Facility,
                        Enrolled     = true,
                        DeleteFlag   = false,
                        CreatedBy    = request.UserId,
                        CreateDate   = DateTime.Now,
                        HealthWorker = request.HealthWorker,
                        Cadre        = request.Carde,
                        ArtStartDate = request.Artstartdate,
                        Comments     = request.Remarks
                    };

                    await _unitOfWork.Repository <PatientLinkage>().AddAsync(patientLinkage);

                    await _unitOfWork.SaveAsync();

                    patientLinkageId = patientLinkage.Id;
                }

                _unitOfWork.Dispose();

                return(Result <AddLinkageResponse> .Valid(new AddLinkageResponse
                {
                    LinkageId = patientLinkageId
                }));
            }
            catch (Exception e)
            {
                Log.Error(e.Message);
                return(Result <AddLinkageResponse> .Invalid(e.Message));
            }
        }