public async Task <Result <AddTestingResponse> > Handle(AddTestingCommand request, CancellationToken cancellationToken) { try { using (_unitOfWork) { HtsEncounter encounter = await _unitOfWork.Repository <HtsEncounter>().FindByIdAsync(request.HtsEncounterId); encounter.CoupleDiscordant = request.FinalTestingResult.CoupleDiscordant; encounter.FinalResultGiven = request.FinalTestingResult.FinalResultGiven; _unitOfWork.Repository <HtsEncounter>().Update(encounter); await _unitOfWork.SaveAsync(); // Create Testing instances List <Core.Model.Testing> testings = new List <Core.Model.Testing>(); request.Testing.ForEach(t => testings.Add(new Core.Model.Testing { ExpiryDate = t.ExpiryDate, HtsEncounterId = request.HtsEncounterId, KitId = t.KitId, KitLotNumber = t.KitLotNumber, Outcome = t.Outcome, ProviderId = request.ProviderId, TestRound = t.TestRound, CreateDate = DateTime.Now, DeleteFlag = false })); await _unitOfWork.Repository <Core.Model.Testing>().AddRangeAsync(testings); await _unitOfWork.SaveAsync(); // Create HtsEncounterResult instance HtsEncounterResult hTSEncounterResult = new HtsEncounterResult { FinalResult = request.FinalTestingResult.FinalResult, HtsEncounterId = request.HtsEncounterId, RoundOneTestResult = request.FinalTestingResult.FinalResultHiv1, RoundTwoTestResult = request.FinalTestingResult.FinalResultHiv2 }; await _unitOfWork.Repository <HtsEncounterResult>().AddAsync(hTSEncounterResult); await _unitOfWork.SaveAsync(); _unitOfWork.Dispose(); return(Result <AddTestingResponse> .Valid(new AddTestingResponse() { AddedSuccessfully = true })); } } catch (Exception e) { return(Result <AddTestingResponse> .Invalid(e.Message)); } }
public async Task <IActionResult> Post([FromBody] AddTestingCommand addTestingCommand) { var consentList = new List <KeyValuePair <string, int> >(); //consentList.Add(new KeyValuePair<string, int>("ConsentToBeTested", addEncounterCommand.Encounter.Consent)); consentList.Add(new KeyValuePair <string, int>("ConsentToListPartners", addTestingCommand.FinalTestingResult.AcceptedPartnerListing)); var consent = await _mediator.Send(new AddConsentCommand() { PatientID = addTestingCommand.PatientId, PatientMasterVisitId = addTestingCommand.PatientMasterVisitId, ConsentDate = DateTime.Now, ConsentType = consentList, ServiceAreaId = addTestingCommand.ServiceAreaId, DeclineReason = addTestingCommand.FinalTestingResult.ReasonsDeclinePartnerListing, UserId = addTestingCommand.ProviderId }, Request.HttpContext.RequestAborted); if (consent.IsValid) { } else { return(BadRequest(consent)); } var response = await _mediator.Send(addTestingCommand, Request.HttpContext.RequestAborted); if (response.IsValid) { return(Ok(response.Value)); } return(BadRequest(response)); }