Esempio n. 1
0
        public void ExcellusMedicaidIncorrectPhoneCustomerExport(HealthPlanCustomerIncorrectPhoneExportFilter filter, string destinationFolderPath, string fileName, ILogger logger)
        {
            logger.Info(string.Format("Starting for Corporate Tag: {0} StartDate: {1}", filter.CorporateTag, filter.StartDate.ToShortDateString()));

            var list = IncorrectPhoneNumberExportReport(filter, logger);

            if (!list.Any())
            {
                return;
            }

            if (!Directory.Exists(destinationFolderPath))
            {
                Directory.CreateDirectory(destinationFolderPath);
            }

            var destinationFileName = Path.Combine(destinationFolderPath, fileName);

            if (File.Exists(destinationFileName))
            {
                File.Delete(destinationFileName);
            }

            logger.Info(string.Format("Corporate Tag: {0} StartDate: {1} Create CSV at Path: {2} ", filter.CorporateTag, filter.StartDate.ToShortDateString(), destinationFileName));

            WriteCsv(destinationFileName, list, logger);
        }
        private void IncorrectPhoneNumberReportForGapPatient(CorporateAccount account, DateTime fromDate, DateTime toDate)
        {
            var filter = new HealthPlanCustomerIncorrectPhoneExportFilter
            {
                CorporateTag = account.Tag,
                StartDate    = fromDate,
                EndDate      = toDate,
                CustomTags   = _bcbsMiGapPatinetTags
            };

            var dateAddedXmlFile  = string.Format(_BcbsmiDateAddedIncorrectPhoneNumberSettingPath, account.Tag, "Q_IncorrectPhoneNumber_" + Convert.ToString(toDate.Year));
            var dateAddedSettings = _dateAddedSettingManager.Deserialize(dateAddedXmlFile);

            dateAddedSettings = (dateAddedSettings == null || dateAddedSettings.AddedDate.IsNullOrEmpty()) ? new DateAddedXml {
                AddedDate = new List <DateAddedSettings>()
            } : dateAddedSettings;

            _logger.Info(string.Format("Starting Gap Patient for Corporate Tag: {0} StartDate: {1}", filter.CorporateTag, filter.StartDate.ToShortDateString()));

            IncorrectPhoneNumberReport("Q_MOBILE_IncorrectPhoneNumber", account, filter, dateAddedSettings.AddedDate);

            _logger.Info(string.Format("Completed Gap Patient for Corporate Tag: {0} StartDate: {1}\n", filter.CorporateTag, filter.StartDate.ToShortDateString()));
        }
        private void IncorrectPhoneNumberReportForNormalPatient(CorporateAccount account, DateTime fromDate, DateTime toDate)
        {
            var tagToExlude = new List <string>();

            if (!_bcbsMiGapPatinetTags.IsNullOrEmpty())
            {
                tagToExlude.AddRange(_bcbsMiGapPatinetTags);
            }

            if (!_bcbsMiRiskPatientTags.IsNullOrEmpty())
            {
                tagToExlude.AddRange(_bcbsMiRiskPatientTags);
            }

            var filter = new HealthPlanCustomerIncorrectPhoneExportFilter
            {
                CorporateTag = account.Tag,
                StartDate    = fromDate,
                EndDate      = toDate,
                CustomTags   = tagToExlude.ToArray(),
                ExcludeCustomerWithCustomTag = true
            };

            var dateAddedXmlFile  = string.Format(_BcbsmiDateAddedIncorrectPhoneNumberSettingPath, account.Tag, "IncorrectPhoneNumber_" + Convert.ToString(toDate.Year));
            var dateAddedSettings = _dateAddedSettingManager.Deserialize(dateAddedXmlFile);

            dateAddedSettings = (dateAddedSettings == null || dateAddedSettings.AddedDate.IsNullOrEmpty()) ? new DateAddedXml {
                AddedDate = new List <DateAddedSettings>()
            } : dateAddedSettings;

            _logger.Info(string.Format("Starting Normal Patient for Corporate Tag: {0} StartDate: {1}", filter.CorporateTag, filter.StartDate.ToShortDateString()));

            IncorrectPhoneNumberReport("IncorrectPhoneNumber", account, filter, dateAddedSettings.AddedDate);

            _logger.Info(string.Format("Completed Normal Patient for Corporate Tag: {0} StartDate: {1}\n", filter.CorporateTag, filter.StartDate.ToShortDateString()));
        }
Esempio n. 4
0
        public void HealthPlanIncorrectPhoneCustomerExport(DateTime cutOffDate, string destinationFileFormate, ILogger logger)
        {
            var healthPlans = _corporateAccountRepository.GetAllHealthPlan();

            if (healthPlans.IsNullOrEmpty())
            {
                logger.Info("No Healthplan exists");
                return;
            }

            if (!_settings.DoNotSendHomeVistIncorrectPhoneNumberAccountIds.IsNullOrEmpty())
            {
                healthPlans = healthPlans.Where(hp => !_settings.DoNotSendHomeVistIncorrectPhoneNumberAccountIds.Contains(hp.Id));
            }

            logger.Info("Starting Corporate Customer Export for Incorrect Phone Number");

            foreach (var corporateAccount in healthPlans)
            {
                if ((corporateAccount.Id == _settings.WellmedAccountId || corporateAccount.Id == _settings.WellmedTxAccountId))
                {
                    if (DateTime.Today.DayOfWeek != _settings.WellmedIncorrectPhoneNumberDayOfWeek)
                    {
                        logger.Info("Day of the week is " + ((long)DateTime.Today.DayOfWeek) + " Account Id: " + corporateAccount.Id);
                        continue;
                    }
                }
                //else if (corporateAccount.Id == _settings.HcpNvAccountId)
                //{
                //    if ((long)DateTime.Today.DayOfWeek != _settings.HcpNvIncorrectPhoneNumberDayOfWeek)
                //    {
                //        logger.Info("Today is Day of Week is " + DateTime.Today.DayOfWeek);
                //        logger.Info("Service will run on Day of Week " +
                //                     (DayOfWeek)_settings.HcpNvIncorrectPhoneNumberDayOfWeek);
                //        continue;
                //    }
                //}
                else if (DateTime.Today.DayOfWeek != _dayOfWeek)
                {
                    logger.Info("Day of the week is " + ((long)DateTime.Today.DayOfWeek) + " Account Id: " + corporateAccount.Id);
                    continue;
                }


                var filter = new HealthPlanCustomerIncorrectPhoneExportFilter
                {
                    CorporateTag = corporateAccount.Tag,
                    StartDate    = cutOffDate
                };

                if (corporateAccount.Id == _settings.HealthNowAccountId)
                {
                    filter.CustomTags = _settings.HealthNowCustomTags;
                }
                else if (corporateAccount.Id == _settings.ExcellusAccountId)
                {
                    filter.CustomTags = _settings.ExcellusCustomTags;
                }

                logger.Info(string.Format("Starting for Corporate Tag: {0} StartDate: {1}", filter.CorporateTag, filter.StartDate.ToShortDateString()));

                var list = IncorrectPhoneNumberExportReport(filter, logger);

                if (!list.Any())
                {
                    continue;
                }

                var destinationFolderPath = string.Format(destinationFileFormate, corporateAccount.FolderName, DateTime.Today.Year);

                var fileName = "IncorrectPhoneNumber.csv";

                if (_settings.OptumIncorrectPhoneNumberAccountIds.Contains(corporateAccount.Id))
                {
                    destinationFolderPath = string.Format(_settings.OptumIncorrectPhoneNumberDownloadPath, corporateAccount.FolderName);
                    fileName = "IncorrectPhoneNumber" + DateTime.Today.ToString("yyyyMMdd") + ".csv";
                }
                else if (corporateAccount.Id == _martinsPointExclusiveAccountId)
                {
                    fileName = "Exclusive_IncorrectPhoneNumber.csv";
                }
                else if (corporateAccount.Id == _settings.ExcellusAccountId)
                {
                    destinationFolderPath = Directory.GetParent(destinationFolderPath).FullName;
                    fileName = "IncorrectPhoneNumber_" + DateTime.Today.ToString("yyyyMMdd") + ".csv";
                }
                else if (corporateAccount.Id == _settings.HealthNowAccountId)
                {
                    destinationFolderPath = string.Format(_settings.HealthPlanDownloadPath, corporateAccount.FolderName);
                    fileName = "IncorrectPhoneNumber_" + DateTime.Today.ToString("yyyyMMdd") + ".csv";
                    DirectoryOperationsHelper.DeleteFiles(destinationFolderPath, "IncorrectPhoneNumber*.csv");
                }
                else if (corporateAccount.Id == _settings.MedMutualAccountId)
                {
                    destinationFolderPath = string.Format(_settings.HealthPlanDownloadPath, corporateAccount.FolderName);
                    fileName = "IncorrectPhoneNumbers_" + DateTime.Today.ToString("yyyyMMdd") + ".csv";
                    DirectoryOperationsHelper.DeleteFiles(destinationFolderPath, "IncorrectPhoneNumbers*.csv");
                }
                else if (corporateAccount.Id == _settings.WellmedWellCareAccountId)
                {
                    var wellmedAccount = healthPlans.FirstOrDefault(x => x.Id == _settings.WellmedAccountId);
                    if (wellmedAccount != null)
                    {
                        destinationFolderPath = string.Format(destinationFileFormate, wellmedAccount.FolderName, DateTime.Today.Year);

                        fileName = "WCR_IncorrectPhoneNumbers_" + DateTime.Today.ToString("yyyyMMdd") + ".csv";
                    }

                    DirectoryOperationsHelper.DeleteFiles(destinationFolderPath, "WCR_IncorrectPhoneNumbers*.csv");
                }
                else if (corporateAccount.Id == _settings.ConnecticareAccountId)
                {
                    destinationFolderPath = string.Format(_settings.HealthPlanDownloadPath, corporateAccount.FolderName);
                    fileName = "Comm Incorrect Phone Number " + DateTime.Today.ToString("yyyy-MM-dd") + ".csv";
                }
                else if (corporateAccount.Id == _settings.ConnecticareMaAccountId)
                {
                    destinationFolderPath = string.Format(_settings.HealthPlanDownloadPath, corporateAccount.FolderName);
                    fileName = "MCR Incorrect Phone Number " + DateTime.Today.ToString("yyyy-MM-dd") + ".csv";
                }
                else if (corporateAccount.Id == _settings.BcbsScAccountId || corporateAccount.Id == _settings.BcbsScAssessmentAccountId)
                {
                    destinationFolderPath = string.Format(_settings.HealthPlanExportRootPath, corporateAccount.FolderName);
                }
                else if (corporateAccount.Id == _settings.FloridaBlueFepAccountId)
                {
                    destinationFolderPath = Path.Combine(string.Format(_settings.HealthPlanDownloadPath, corporateAccount.FolderName), "Reports");
                    fileName = "IncorrectPhoneNumber_" + DateTime.Today.ToString("yyyyMMdd") + ".csv";
                    DirectoryOperationsHelper.DeleteFiles(destinationFolderPath, "IncorrectPhoneNumber*.csv");
                }
                else if (corporateAccount.Id == _settings.PPAccountId)
                {
                    logger.Info("PP Account");
                    destinationFolderPath = string.Format(_settings.HealthPlanDownloadPath, corporateAccount.FolderName);
                    fileName = "IncorrectPhoneNumber_" + DateTime.Today.ToString("yyyyMMdd") + ".csv";
                }
                else if (corporateAccount.Id == _settings.NammAccountId)
                {
                    logger.Info("Namm Account Id");
                    destinationFolderPath = string.Format(_settings.HealthPlanExportRootPath, corporateAccount.FolderName);
                    fileName = "IncorrectPhoneNumber_" + DateTime.Today.ToString("yyyyMMdd") + ".csv";
                }
                //else if (corporateAccount.Id == _settings.HcpNvAccountId)
                //{

                //    logger.Info("HCP NV");
                //    var folderName = _settings.HcpNvFolder;
                //    destinationFolderPath = Path.Combine(string.Format(_settings.OutTakeReportPath, folderName), "IncorrectPhone");
                //    fileName = string.Format("IncorrectPhoneNumber_{0}_{1}_{2}.csv", corporateAccount.AcesClientShortName, folderName, DateTime.Today.ToString("MMddyyyy"));
                //}
                else if (corporateAccount.Id == _settings.WellmedAccountId)
                {
                    logger.Info("Wellmed FL");
                    var folderName = _settings.WellmedFlFolder;
                    destinationFolderPath = Path.Combine(string.Format(_settings.OutTakeReportPath, folderName), "IncorrectPhone");
                    fileName = string.Format("IncorrectPhoneNumber_{0}_{1}_{2}.csv", corporateAccount.AcesClientShortName, folderName, DateTime.Today.ToString("MMddyyyy"));
                }
                else if (corporateAccount.Id == _settings.WellmedTxAccountId)
                {
                    logger.Info("Wellmed TX");
                    var folderName = _settings.WellmedTxFolder;
                    destinationFolderPath = Path.Combine(string.Format(_settings.OutTakeReportPath, folderName), "IncorrectPhone");
                    fileName = string.Format("IncorrectPhoneNumber_{0}_{1}_{2}.csv", corporateAccount.AcesClientShortName, folderName, DateTime.Today.ToString("MMddyyyy"));
                }

                if (_settings.OptumAccountIds.Contains(corporateAccount.Id))
                {
                    try
                    {
                        DirectoryOperationsHelper.DeleteDirectory(destinationFolderPath, true);
                    }
                    catch (Exception ex)
                    {
                        logger.Error("Some error occurred while deleting directory at path: " + destinationFolderPath);
                        logger.Error("Message: " + ex.Message);
                        logger.Error("Stack Trace: " + ex.StackTrace);
                    }
                }

                if (!Directory.Exists(destinationFolderPath))
                {
                    Directory.CreateDirectory(destinationFolderPath);
                }

                var destinationFileName = Path.Combine(destinationFolderPath, fileName);

                if (File.Exists(destinationFileName))
                {
                    File.Delete(destinationFileName);
                }

                logger.Info(string.Format("Corporate Tag: {0} StartDate: {1} Create CSV at Path: {2} ", filter.CorporateTag, filter.StartDate.ToShortDateString(), destinationFileName));

                WriteCsv(destinationFileName, list, logger);

                //if (File.Exists(destinationFileName))
                //{
                //    if (corporateAccount.Id == _settings.FloridaBlueFepAccountId && _settings.SendReportToFloridaBlueSftp)
                //    {
                //        var destinationSftpPath = _settings.FloridaBlueSftpPath + "\\" + corporateAccount.FolderName + "\\Download\\Reports";
                //        PostFile(destinationFileName, destinationSftpPath, _settings.FloridaBlueSftpHost, _settings.FloridaBlueSftpUserName, _settings.FloridaBlueSftpPassword, fileName, logger);
                //    }
                //    else
                //    {
                //        SendIncorrectPhoneNumberClientSftp(corporateAccount, destinationFileName, logger);
                //    }

                //}
            }
        }
Esempio n. 5
0
        private IEnumerable <HealthPlanExportCustomerViewModel> IncorrectPhoneNumberExportReport(HealthPlanCustomerIncorrectPhoneExportFilter filter, ILogger logger)
        {
            var list       = new List <HealthPlanExportCustomerViewModel>();
            var pageNumber = 1;


            while (true)
            {
                int totalRecords;
                var customers = _customerRepository.GetHealthPlanIncorrectPhoneCustomerExport(filter, pageNumber, _pageSizeHealthPlanExport, out totalRecords);

                if (customers == null || !customers.Any())
                {
                    break;
                }

                var customerIds   = customers.Select(x => x.CustomerId).ToArray();
                var corporateTags = _corporateCustomerCustomTagRepository.GetByCustomerIds(customerIds);

                var primaryCarePhysicians = _primaryCarePhysicianRepository.GetByCustomerIds(customerIds);

                var model = _exportCustomerViewModelFactory.Create(customers, corporateTags, primaryCarePhysicians);

                list.AddRange(model);

                logger.Info(string.Format("Page Number {0} Total Records {1}", pageNumber, totalRecords));

                pageNumber++;

                if (list.Count >= totalRecords)
                {
                    break;
                }
            }

            return(list);
        }
        private void IncorrectPhoneNumberReport(string fileName, CorporateAccount account, HealthPlanCustomerIncorrectPhoneExportFilter filter, List <DateAddedSettings> dateAddedSettings)
        {
            var list       = new List <BcbsMiIncorrectPhoneViewModel>();
            var pageNumber = 1;

            while (true)
            {
                int totalRecords;
                var customers = _customerRepository.GetHealthPlanIncorrectPhoneCustomerExport(filter, pageNumber, PageSize, out totalRecords);

                _logger.Info(string.Format("Corporate Tag: {0} StartDate: {1} Total Customer Found: {2} PageNumber {3} ", filter.CorporateTag, filter.StartDate.ToShortDateString(), totalRecords, pageNumber));

                if (customers == null || !customers.Any())
                {
                    break;
                }

                var customerIds   = customers.Select(x => x.CustomerId).ToArray();
                var corporateTags = _corporateCustomerCustomTagRepository.GetByCustomerIds(customerIds);

                var primaryCarePhysicians = _primaryCarePhysicianRepository.GetByCustomerIds(customerIds);

                var model = _healthPlanExportCustomerViewModelFactory.CreateIncorrectPhoneListForBcbsMi(customers, corporateTags, primaryCarePhysicians, dateAddedSettings);

                list.AddRange(model);

                pageNumber++;

                if (list.Count >= totalRecords)
                {
                    break;
                }
            }

            if (!list.Any())
            {
                _logger.Info(string.Format("No Patients found for Corporate Tag: {0}", filter.CorporateTag));
                return;
            }

            GenerateReport(fileName, account, list, filter.EndDate.Value);
        }