Ejemplo n.º 1
0
        private void UpateCustomerPreApprovedTest(CorporateCustomerEditModel model, long createdByOrgRoleUserId, long customerId)
        {
            if (model.PreApprovedTest != null && model.PreApprovedTest.Any())
            {
                var pairs = TestType.A1C.GetNameValuePairs();
                var preApprovedTestIds =
                    pairs.Where(x => model.PreApprovedTest.Contains(x.SecondValue.ToLower())).Select(x => (long)x.FirstValue);

                if (preApprovedTestIds != null && preApprovedTestIds.Any())
                {
                    _preApprovedTestRepository.SavePreApprovedTests(customerId, preApprovedTestIds,
                                                                    createdByOrgRoleUserId);
                }
            }
        }
Ejemplo n.º 2
0
        public void PollForUpdate()
        {
            var files = DirectoryOperationsHelper.GetFiles(_settings.MediaLocation + "\\PreAppprovedTest", "*PreAppprovedTest*.csv");

            var createdBy = _organizationRoleUserRepository.GetOrganizationRoleUser(1);

            foreach (var file in files)
            {
                _logger.Info("Parsing file : " + file);

                DataTable table = _csvReader.ReadWithTextQualifier(file);

                if (table.Rows.Count <= 0)
                {
                    _logger.Info("No records found.");
                    continue;
                }

                foreach (DataRow row in table.Rows)
                {
                    var clientId = GetRowValue(row, "Client_Id");
                    //var contractNumber = GetRowValue(row, "Contract_Number");
                    var preApprovedTests = GetPreApprovedTests(row, "Pre-approved tests");

                    if (string.IsNullOrEmpty(clientId))                  // || string.IsNullOrEmpty(contractNumber)
                    {
                        _logger.Info("Skipping row : Client Id blank."); //or Contract Number
                        continue;
                    }

                    var chaseOutbound = _chaseOutboundRepository.GetByClientId(clientId);

                    if (chaseOutbound == null)
                    {
                        _logger.Info(string.Format("Chase data not found for Client Id : {0}", clientId));
                        continue;
                    }

                    if (preApprovedTests != null && preApprovedTests.Any())
                    {
                        var pairs = TestType.A1C.GetNameValuePairs();
                        var preApprovedTestExists = pairs.Where(x => preApprovedTests.Contains(x.SecondValue.ToLower())).Select(x => x.SecondValue.ToLower());

                        var testNotExist = string.Empty;

                        if (preApprovedTestExists != null && preApprovedTestExists.Any() && (preApprovedTestExists.Count() != preApprovedTests.Count()))
                        {
                            var testNotExistInSystem = preApprovedTests.Where(x => !preApprovedTestExists.Contains(x.ToLower())).Select(x => x).ToArray();

                            testNotExist = string.Join(",", testNotExistInSystem);
                        }
                        else if (preApprovedTestExists == null || !preApprovedTestExists.Any())
                        {
                            testNotExist = string.Join(",", preApprovedTests);
                        }

                        if (!string.IsNullOrEmpty(testNotExist))
                        {
                            _logger.Info(testNotExist + " test alias name does not exist in HIP");
                            continue;
                        }

                        var preApprovedTestIds = pairs.Where(x => preApprovedTests.Contains(x.SecondValue.ToLower())).Select(x => (long)x.FirstValue);
                        if (preApprovedTestIds != null && preApprovedTestIds.Any())
                        {
                            _preApprovedTestRepository.SavePreApprovedTests(chaseOutbound.CustomerId, preApprovedTestIds, createdBy.Id);

                            _logger.Info(string.Format("Pre-approved tests updated for Client Id : {0}", clientId));
                        }
                    }
                }

                _logger.Info("Parsed file : " + file);
            }
        }