private bool CheckClientState() { //HIV Test Form if (Id == new Guid("b25ec568-852f-11e7-bb31-be2e44b06b34")) { return(ClientState.IsInState(ClientStates, LiveState.HtsConsented)); } //HTS Linkage Form if (Id == new Guid("b25ec112-852f-11e7-bb31-be2e44b06b34")) { return(ClientState.IsInAnyState(ClientStates, LiveState.HtsTestedPos, LiveState.HtsTestedInc, LiveState.HtsCanBeReferred)); } //Member Tracing if (Id == new Guid("b25ec112-852f-11e7-bb31-be2e45b06b36") && null != IndexClientId && !IndexClientId.Value.IsNullOrEmpty()) { return(ClientState.IsInState(ClientStates, IndexClientId.Value, LiveState.FamilyEligibileYes)); } //Partner Tracing if (Id == new Guid("b25ec112-852f-11e7-bb31-be2e46b06b38") && null != IndexClientId && !IndexClientId.Value.IsNullOrEmpty()) { return(ClientState.IsInState(ClientStates, IndexClientId.Value, LiveState.PartnerEligibileYes)); } return(false); }
public void SaveDownloaded(Client client) { InsertOrUpdate(client); // Check if Has ever been tested if (!ClientState.IsInState(client.ClientStates.ToList(), LiveState.HtsTested)) { if (ClientState.IsInAnyState(client.ClientStates.ToList(), LiveState.HtsTestedNeg, LiveState.HtsTestedPos, LiveState.HtsTestedInc)) { client.ClientStates.Add(new ClientState(client.Id, LiveState.HtsTested)); } } var testedPos = null != client.ClientSummaries && client.ClientSummaries.Any(x => x.Area == "Testing" && (x.Report == "Positive" || x.Report == "Inconclusive")); if (!ClientState.IsInState(client.ClientStates.ToList(), LiveState.HtsTestedNeg, LiveState.HtsRetestedNeg) || testedPos) { client.ClientStates.Add(new ClientState(client.Id, LiveState.HtsCanBeReferred)); } var testedPosOnly = null != client.ClientSummaries && client.ClientSummaries.Any(x => x.Area == "Testing" && (x.Report == "Positive")); if (testedPos) { client.ClientStates.Add(new ClientState(client.Id, LiveState.HtsCanBeLinked)); } var states = client.ClientStates.Where(x => x.Status == LiveState.HtsEnrolled || x.Status == LiveState.HtsSmartCardEnrolled || x.Status == LiveState.HtsFamAcceptedYes || x.Status == LiveState.HtsPnsAcceptedYes || x.Status == LiveState.HtsTested || x.Status == LiveState.HtsCanBeReferred || x.Status == LiveState.HtsCanBeLinked); foreach (var clientState in states) { var rowsAffected = _db.Update(clientState); if (rowsAffected == 0) { _db.Insert(clientState); } } foreach (var clientSummary in client.ClientSummaries) { var rowsAffected = _db.Update(clientSummary); if (rowsAffected == 0) { _db.Insert(clientSummary); } } }