Ejemplo n.º 1
0
        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));
            }
        }
Ejemplo n.º 2
0
        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);
                }
            }
        }