public SaveCareTeamDataResponse SaveCareTeam(SaveCareTeamRequest request) { SaveCareTeamDataResponse response = null; try { IRestClient client = new JsonServiceClient(); // '/{Context}/{Version}/{ContractNumber}/Contacts/{ContactId}/CareTeams var url = Common.Helper.BuildURL(string.Format("{0}/{1}/{2}/{3}/Contacts/{4}/CareTeams", DDContactServiceUrl, "NG", request.Version, request.ContractNumber, request.ContactId), request.UserId); response = client.Post <SaveCareTeamDataResponse>(url, new SaveCareTeamDataRequest { CareTeamData = Mapper.Map <CareTeamData>(request.CareTeam), Version = request.Version, ContactId = request.ContactId, ContractNumber = request.ContractNumber, Context = "NG" } as object); } catch (WebServiceException wse) { throw new WebServiceException("AD:SaveCareTeam()::" + wse.Message, wse.InnerException); } return(response); }
public void ContactManager_SaveCareTeam_Contact_Is_Not_IsPatient_Should_Throw() { //Arrange var contactManager = new ContactManager(); var members = new List <Member> { new Member { ContactId = "cid", StatusId = 1, RoleId = "rid" } }; var stubRequest = new SaveCareTeamRequest { ContactId = "cid", CareTeam = new CareTeam() { Members = members } }; var mockContactEndPointUtil = new Mock <IContactEndpointUtil>(); mockContactEndPointUtil.Setup(mceu => mceu.SaveCareTeam(It.IsAny <SaveCareTeamRequest>())) .Returns(new SaveCareTeamDataResponse()); mockContactEndPointUtil.Setup(mceu => mceu.GetContactByContactId(It.IsAny <AppDomain.NG.DTO.GetContactByContactIdRequest>())) .Returns(new ContactData { PatientId = "" }); var mockCohortRuleUtil = new Mock <ICohortRuleUtil>(); mockCohortRuleUtil.Setup(mcru => mcru.HasMultipleActiveCorePCM(It.IsAny <AppDomain.NG.DTO.CareTeam>())) .Returns(false); mockCohortRuleUtil.Setup(mcru => mcru.HasMultipleActiveCorePCP(It.IsAny <AppDomain.NG.DTO.CareTeam>())) .Returns(false); var mockCohortRuleProcessor = new Mock <ICohortRulesProcessor>(); contactManager.EndpointUtil = mockContactEndPointUtil.Object; contactManager.CohortRuleUtil = mockCohortRuleUtil.Object; contactManager.CohortRules = mockCohortRuleProcessor.Object; //Act try { var response = contactManager.SaveCareTeam(stubRequest); } catch (Exception ex) { Assert.AreEqual(string.Format("Contact with id: {0} is not a patient.", "cid"), ex.Message); } //Assert. mockContactEndPointUtil.Verify(mr => mr.SaveCareTeam(It.IsAny <SaveCareTeamRequest>()), Times.Never); }
public void ContactManager_SaveCareTeam_Success() { //Arrange var contactManager = new ContactManager(); var members = new List <Member> { new Member { ContactId = "cid", StatusId = 1, RoleId = "rid" } }; var stubRequest = new SaveCareTeamRequest { ContactId = "cid", CareTeam = new CareTeam() { Members = members } }; var mockContactEndPointUtil = new Mock <IContactEndpointUtil>(); mockContactEndPointUtil.Setup(mceu => mceu.SaveCareTeam(It.IsAny <SaveCareTeamRequest>())) .Returns(new SaveCareTeamDataResponse()); mockContactEndPointUtil.Setup(mceu => mceu.GetContactByContactId(It.IsAny <AppDomain.NG.DTO.GetContactByContactIdRequest>())) .Returns(new ContactData { PatientId = "pid" }); mockContactEndPointUtil.Setup(mceu => mceu.GetContactsByContactIds(It.IsAny <List <string> >(), It.IsAny <double>(), It.IsAny <string>(), It.IsAny <string>())) .Returns(new List <ContactData>()); var mockCohortRuleUtil = new Mock <ICohortRuleUtil>(); mockCohortRuleUtil.Setup(mcru => mcru.HasMultipleActiveCorePCM(It.IsAny <AppDomain.NG.DTO.CareTeam>())) .Returns(false); mockCohortRuleUtil.Setup(mcru => mcru.HasMultipleActiveCorePCP(It.IsAny <AppDomain.NG.DTO.CareTeam>())) .Returns(false); var mockCohortRuleProcessor = new Mock <ICohortRulesProcessor>(); contactManager.EndpointUtil = mockContactEndPointUtil.Object; contactManager.CohortRuleUtil = mockCohortRuleUtil.Object; contactManager.CohortRules = mockCohortRuleProcessor.Object; //Act var response = contactManager.SaveCareTeam(stubRequest); //Assert. Assert.IsNotNull(response); mockContactEndPointUtil.Verify(mr => mr.SaveCareTeam(It.IsAny <SaveCareTeamRequest>()), Times.Once); }
public void ContactManager_SaveCareTeam_InCompleteMember_EmptyStatusId_Should_Throw() { var contactManager = new ContactManager(); var members = new List <Member> { new Member { ContactId = "cid" } }; var stubRequest = new SaveCareTeamRequest { ContactId = "cid", CareTeam = new CareTeam() { Members = members } }; contactManager.SaveCareTeam(stubRequest); }
public SaveCareTeamResponse Post(SaveCareTeamRequest request) { if (request == null) { throw new ArgumentNullException("request"); } var response = new SaveCareTeamResponse(); ValidateTokenResponse result = null; try { request.Token = base.Request.Headers["Token"] as string; result = Security.IsUserValidated(request.Version, request.Token, request.ContractNumber); if (result.UserId.Trim() != string.Empty) { request.UserId = result.UserId; response = ContactManager.SaveCareTeam(request); } else { throw new UnauthorizedAccessException(); } } catch (Exception ex) { CommonFormatter.FormatExceptionResponse(response, base.Response, ex); if ((ex is WebServiceException) == false) { ContactManager.LogException(ex); } } finally { if (result != null) { AuditHelper.LogAuditData(request, result.SQLUserId, null, System.Web.HttpContext.Current.Request, request.GetType().Name); } } return(response); }
public SaveCareTeamResponse SaveCareTeam(SaveCareTeamRequest request) { var response = new SaveCareTeamResponse(); if (request == null) { throw new ArgumentNullException("request"); } if (request.CareTeam == null) { throw new ArgumentNullException("request.CareTeam"); } //if(request.CareTeam.Members.IsNullOrEmpty()) // throw new ApplicationException(string.Format("CareTeam should have atleast one or more members.")); if (string.IsNullOrEmpty(request.ContactId)) { throw new ArgumentException(string.Format("ContactId is null or empty"), "request"); } foreach (var member in request.CareTeam.Members) { ValidateCareTeamMemberFields(member); if (!string.IsNullOrEmpty(member.RoleId) && !string.IsNullOrEmpty(member.CustomRoleName)) { member.RoleId = null; } } //TODO: Refactor. var contact = GetContactByContactId(new GetContactByContactIdRequest { ContractNumber = request.ContractNumber, ContactId = request.ContactId, UserId = request.UserId, Version = request.Version }); if (contact == null) { throw new ApplicationException(string.Format("Contact with id: {0} does not exist.", request.ContactId)); } if (!contact.IsPatient) { throw new ApplicationException(string.Format("Contact with id: {0} is not a patient.", request.ContactId)); } if (CohortRuleUtil.HasMultipleActiveCorePCM(request.CareTeam)) { throw new ApplicationException("The Care team cannot have multiple Active, Core PCMs"); } if (CohortRuleUtil.HasMultipleActiveCorePCP(request.CareTeam)) { throw new ApplicationException("The Care team cannot have multiple Active, Core PCPs"); } try { var domainResponse = EndpointUtil.SaveCareTeam(request); if (domainResponse != null) { response.CareTeam = Mapper.Map <CareTeam>(domainResponse.CareTeamData); #region Populate Contact object for each care team member. if (response.CareTeam != null) { if (!response.CareTeam.Members.IsNullOrEmpty()) { var contactIds = response.CareTeam.Members.Select(a => a.ContactId).ToList(); var contactsData = EndpointUtil.GetContactsByContactIds(contactIds, request.Version, request.ContractNumber, request.UserId); if (contactsData != null) { foreach (var member in response.CareTeam.Members) { var data = contactsData.FirstOrDefault(c => c.Id == member.ContactId); if (data == null) { throw new ApplicationException(string.Format("Contact card for a care team member with contact id = {0} was not found", member.ContactId)); } else { member.Contact = Mapper.Map <Contact>(data); } } } } } #endregion var cohortRuleCheckData = new CohortRuleCheckData() { ContactId = request.ContactId, ContractNumber = request.ContractNumber, UserId = request.UserId, PatientId = contact.PatientId }; CohortRules.EnqueueCohorRuleCheck(cohortRuleCheckData); } } catch (Exception ex) { throw new Exception("AD:SaveCareTeam()::" + ex.Message, ex.InnerException); } return(response); }
public SaveCareTeamResponse SaveCareTeam(SaveCareTeamRequest request) { throw new NotImplementedException(); }