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())); }
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); // } //} } }
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); }