public async Task <bool> Update(InitiatedLinkRequest linkRequest) { try { linkPatientContext.InitiatedLinkRequest.Update(linkRequest); return(true); } catch (Exception exception) { Log.Fatal(exception, exception.StackTrace); return(false); } }
private async void ShouldReturnLinkReferenceResponse() { const string linkReferenceNumber = "linkreference"; const string authType = "MEDIATED"; const string programRefNo = "129"; const string medium = "MOBILE"; IEnumerable <CareContextEnquiry> careContexts = new[] { new CareContextEnquiry(programRefNo) }; var patient = new LinkEnquiry(TestBuilders.Faker().Random.Hash(), TestBuilders.Faker().Random.Hash(), testPatient.Identifier, careContexts); var patientReferenceRequest = new PatientLinkEnquiry(TestBuilders.Faker().Random.Hash(), TestBuilders.Faker().Random.Hash(), patient); guidGenerator.Setup(x => x.NewGuid()).Returns(linkReferenceNumber); patientVerification.Setup(x => x.SendTokenFor(new Session(linkReferenceNumber , new Communication(CommunicationMode.MOBILE, testPatient.PhoneNumber) , new OtpGenerationDetail(TestBuilder.Faker().Random.Word(), OtpAction.LINK_PATIENT_CARECONTEXT.ToString())))) .ReturnsAsync((OtpMessage)null); var initiatedLinkRequest = new InitiatedLinkRequest(patientReferenceRequest.RequestId, patientReferenceRequest.TransactionId, linkReferenceNumber, false, It.IsAny <string>()); linkRepository.Setup(x => x.SaveRequestWith(linkReferenceNumber, patientReferenceRequest.Patient.ConsentManagerId, patientReferenceRequest.Patient.ConsentManagerUserId, patientReferenceRequest.Patient.ReferenceNumber, new[] { programRefNo })) .ReturnsAsync(new Tuple <LinkEnquires, Exception>(null, null)); linkRepository.Setup(x => x.Save(patientReferenceRequest.RequestId, patientReferenceRequest.TransactionId, linkReferenceNumber)) .ReturnsAsync(Option.Some(initiatedLinkRequest)); patientRepository.Setup(x => x.PatientWith(testPatient.Identifier)) .Returns(Option.Some(testPatient)); var(response, _) = await linkPatient.LinkPatients(patientReferenceRequest); patientVerification.Verify(); linkRepository.Verify(); guidGenerator.Verify(); discoveryRequestRepository.Verify(x => x.Delete(patientReferenceRequest.TransactionId, patientReferenceRequest.Patient.ConsentManagerUserId)); response.Link.ReferenceNumber.Should().Be(linkReferenceNumber); response.Link.AuthenticationType.Should().Be(authType); response.Link.Meta.CommunicationHint.Should().Be(testPatient.PhoneNumber); response.Link.Meta.CommunicationMedium.Should().Be(medium); response.Link.Should().NotBeNull(); }
public async Task <Option <InitiatedLinkRequest> > Save(string requestId, string transactionId, string linkReferenceNumber) { try { var initiatedLinkRequest = new InitiatedLinkRequest(requestId, transactionId, linkReferenceNumber, false, DateTime.Now.ToUniversalTime().ToString(Constants.DateTimeFormat)); await linkPatientContext.InitiatedLinkRequest.AddAsync(initiatedLinkRequest).ConfigureAwait(false); await linkPatientContext.SaveChangesAsync(); return(Option.Some(initiatedLinkRequest)); } catch (Exception exception) { Log.Fatal(exception, exception.StackTrace); return(Option.None <InitiatedLinkRequest>()); } }