public SuspectCondition SaveSuspectCondition(SuspectCondition domainObject) { using (var adapter = PersistenceLayer.GetDataAccessAdapter()) { var entity = Mapper.Map <SuspectCondition, SuspectConditionEntity>(domainObject); if (!adapter.SaveEntity(entity, true)) { throw new PersistenceFailureException("Could not save Suspect Condition"); } return(Mapper.Map <SuspectConditionEntity, SuspectCondition>(entity)); } }
public void ParseSuspectCondition(List <SuspectConditionUploadLog> suspectConditionUploadLogs, List <SuspectConditionUploadLog> failedRecordsList) { foreach (var suspectConditionUploadLog in suspectConditionUploadLogs) { try { if (!suspectConditionUploadLog.IsSuccessFull) { _suspectConditionUploadLogRepository.SaveSuspectConditionUploadLog(suspectConditionUploadLog); failedRecordsList.Add(suspectConditionUploadLog); continue; } var memberDob = Convert.ToDateTime(suspectConditionUploadLog.DOB); var customers = _customerRepository.GetCustomerForSuspectConditionUpload(suspectConditionUploadLog.GMPI, suspectConditionUploadLog.MemberID, suspectConditionUploadLog.MemberName, memberDob); if (customers != null) { var customerIds = customers.Select(x => x.CustomerId); var captureReferenceDate = Convert.ToDateTime(suspectConditionUploadLog.CaptureReferenceDate); var isExisting = _suspectConditionRepository.IsCustoemrExistForIcdCodeAndDate(customerIds, suspectConditionUploadLog.ICDCode, captureReferenceDate); if (isExisting) { suspectConditionUploadLog.IsSuccessFull = false; suspectConditionUploadLog.ErrorMessage = "Record already exist in the system for given ICDCode and CaptureReferenceDate."; _suspectConditionUploadLogRepository.SaveSuspectConditionUploadLog(suspectConditionUploadLog); failedRecordsList.Add(suspectConditionUploadLog); continue; } foreach (var customer in customers) { //if ((customer.Name.LastName + "," + customer.Name.FirstName + "" + customer.Name.MiddleName).Trim().ToLower() != suspectConditionUploadLog.MemberName.Replace(" ", "").Trim().ToLower()) //{ // suspectConditionUploadLog.IsSuccessFull = false; // suspectConditionUploadLog.ErrorMessage = "Member Name does not match with existing record for given GMPI."; // _suspectConditionUploadLogRepository.SaveSuspectConditionUploadLog(suspectConditionUploadLog); // failedRecordsList.Add(suspectConditionUploadLog); // continue; //} //if (customer.DateOfBirth.HasValue && customer.DateOfBirth.Value.ToString("MM/dd/yyyy") != suspectConditionUploadLog.DOB) //{ // suspectConditionUploadLog.IsSuccessFull = false; // suspectConditionUploadLog.ErrorMessage = "DOB does not match with existing record for given GMPI."; // _suspectConditionUploadLogRepository.SaveSuspectConditionUploadLog(suspectConditionUploadLog); // failedRecordsList.Add(suspectConditionUploadLog); // continue; //} var suspectCondition = new SuspectCondition { CaptureAction = suspectConditionUploadLog.CaptureAction, CaptureLocation = suspectConditionUploadLog.CaptureLocation, CaptureReasonDescription = suspectConditionUploadLog.CaptureReasonDescription, CaptureReferenceDate = Convert.ToDateTime(suspectConditionUploadLog.CaptureReferenceDate), CustomerId = customer.CustomerId, DOB = Convert.ToDateTime(suspectConditionUploadLog.DOB), GMPI = suspectConditionUploadLog.GMPI, HCC = suspectConditionUploadLog.HCC, HCCDesc = suspectConditionUploadLog.HCCDesc, ICDCode = suspectConditionUploadLog.ICDCode, ICDCodeVersion = suspectConditionUploadLog.ICDCodeVersion, ICDDesc = suspectConditionUploadLog.ICDDesc, FirstName = customer.Name.FirstName, MiddleName = customer.Name.MiddleName, LastName = customer.Name.LastName, SectionName = suspectConditionUploadLog.SectionName, SubscriberID = suspectConditionUploadLog.SubscriberID, SuspectConditionUploadId = suspectConditionUploadLog.SuspectConditionUploadId, MemberID = suspectConditionUploadLog.MemberID, }; _suspectConditionUploadLogRepository.SaveSuspectConditionUploadLog(suspectConditionUploadLog); _suspectConditionRepository.SaveSuspectCondition(suspectCondition); } } else { suspectConditionUploadLog.IsSuccessFull = false; if (!string.IsNullOrEmpty(suspectConditionUploadLog.GMPI) && !string.IsNullOrEmpty(suspectConditionUploadLog.MemberID)) { suspectConditionUploadLog.ErrorMessage = "No customer found for given GMPI, Member ID, Member Name and DOB"; } else if (!string.IsNullOrEmpty(suspectConditionUploadLog.GMPI) && string.IsNullOrEmpty(suspectConditionUploadLog.MemberID)) { suspectConditionUploadLog.ErrorMessage = "No customer found for given GMPI, Member Name and DOB"; } else { suspectConditionUploadLog.ErrorMessage = "No customer found for given Member ID, Member Name and DOB"; } _suspectConditionUploadLogRepository.SaveSuspectConditionUploadLog(suspectConditionUploadLog); failedRecordsList.Add(suspectConditionUploadLog); continue; } } catch (Exception ex) { suspectConditionUploadLog.ErrorMessage = ex.Message; suspectConditionUploadLog.IsSuccessFull = false; _suspectConditionUploadLogRepository.SaveSuspectConditionUploadLog(suspectConditionUploadLog); failedRecordsList.Add(suspectConditionUploadLog); } } }