private void PatientWithGapTag(DateTime exportToTime, DateTime exportFromTime, CorporateAccount corporateAccount, DateTime?eventDateFromConsider, DateTime?eventDateToConsider) { try { var destinationFolderPdfPath = string.Format(_destinationFolderResultPdfPath, corporateAccount.FolderName); destinationFolderPdfPath = destinationFolderPdfPath + "\\Q-ResultPdf"; PostResultPdfOnSftp(exportToTime, exportFromTime, corporateAccount, destinationFolderPdfPath, true, _bcbsMiGapPatinetTags); if (DirectoryOperationsHelper.IsDirectoryExist(destinationFolderPdfPath) && DirectoryOperationsHelper.GetFiles(destinationFolderPdfPath).Any()) { var destinationSftp = string.Format(_destinationFolderResultReportPath, corporateAccount.FolderName); if (!DirectoryOperationsHelper.IsDirectoryExist(destinationSftp)) { DirectoryOperationsHelper.CreateDirectory(destinationSftp); } var destinationfile = destinationSftp + @"\Q_MOBILE_ResultPdf_" + DateTime.Today.ToString("yyyyMMdd") + ".zip"; _zipHelper.CreateZipFiles(destinationFolderPdfPath, destinationfile, true); } } catch (Exception exception) { _logger.Error(string.Format("some error occurred for the \n Message {0} \n Stack Trace {1}", exception.Message, exception.StackTrace)); } }
private void MoveEventFiles(string sourceDirectoryPath, string destDirectoryPath) { if (!Directory.Exists(destDirectoryPath)) { Directory.CreateDirectory(destDirectoryPath); } var files = Directory.GetFiles(sourceDirectoryPath); foreach (var filePath in files) { var fileName = Path.GetFileName(filePath); if (File.Exists(destDirectoryPath + fileName)) { File.Delete(destDirectoryPath + fileName); } File.Move(filePath, destDirectoryPath + fileName); } var location = _mediaRepository.GetScannedDocumentStorageFolderLocation(); var eventId = Directory.GetParent(destDirectoryPath).Name; _zipHelper.CreateZipFiles(destDirectoryPath, location.PhysicalPath + eventId + ".zip", true); }
private void ZipResultPdfFiles() { if (!Directory.Exists(_destinationFolderPdfPath + "/pdf/")) { Directory.CreateDirectory(_destinationFolderPdfPath + "/pdf/"); } if (!Directory.GetFiles(_destinationFolderPdfPath + "/pdf/").Any()) { _logger.Info("No file found for Posting"); return; } var destinationfile = "HealthFair_Data_" + DateTime.Today.ToString("MMyydd") + ".zip"; var directoryToDeleteFrom = new DirectoryInfo(_destinationFolderPdfPath); foreach (var file in directoryToDeleteFrom.GetFiles("HealthFair_Data_*.zip")) { _logger.Info("Deleting zip file : " + file.Name); file.Delete(); } _logger.Info("Zip file started: " + _destinationFolderPdfPath + "\\" + destinationfile); var sourceFile = _destinationFolderPdfPath + "\\" + destinationfile; _zipHelper.CreateZipFiles(_destinationFolderPdfPath + "/pdf/", sourceFile, true); _logger.Info("Zip file Completed: " + _destinationFolderPdfPath + "\\" + destinationfile); ExportResultInSftp(destinationfile, sourceFile); if (!Directory.Exists(_destinationFolderPdfPath + "/ArchivePdf/")) { Directory.CreateDirectory(_destinationFolderPdfPath + "/ArchivePdf/"); } var sourceDir = new DirectoryInfo(_destinationFolderPdfPath + "/pdf/"); var destinationDir = new DirectoryInfo(_destinationFolderPdfPath + "/ArchivePdf/"); DeepCopy(sourceDir, destinationDir); }
public bool ZipCdContentsPerEvent(long eventId) { var eventCustomers = _eventCustomerRepository.GetEventCustomersWithCdPurchaseByEventId(eventId); var cdPurchasedCount = eventCustomers.Count(); var cdContentGeneratedCount = eventCustomers.Select(eventCustomer => _cdContentGeneratorTracking.IsCdContentGenerated(eventCustomer.EventId, eventCustomer.CustomerId)).Count(isCdContentGenerated => isCdContentGenerated); if (cdContentGeneratedCount == 0) { return(false); } var sourcePath = _mediaRepository.GetCdContentFolderLocation(eventId).PhysicalPath; //TODO:Extract zip files for the customer whose cd content folder has been deleted. var files = Directory.GetFiles(sourcePath).Where(file => file.EndsWith(".zip")); foreach (var file in files) { string directoryName = Path.GetDirectoryName(file) + "\\" + Path.GetFileNameWithoutExtension(file); if (Directory.Exists(directoryName)) { try { Directory.Delete(directoryName, true); _zipHelper.ExtractZipFiles(file); } catch { throw; } } } var outPutPath = _zipHelper.CreateZipFiles(sourcePath, true); var eventPath = _mediaRepository.GetResultPacketMediaLocation(eventId).PhysicalPath; var fileName = eventPath + eventId + ".zip"; if (File.Exists(fileName)) { File.Delete(fileName); } File.Move(outPutPath, fileName); if (cdContentGeneratedCount >= cdPurchasedCount) { foreach (var dir in Directory.GetDirectories(sourcePath)) { try { Directory.Delete(dir, true); } catch { } } } return(true); }
public void PollForPdfDownload() { try { if (_accountIds.IsNullOrEmpty()) { return; } var corporateAccounts = _corporateAccountRepository.GetByIds(_accountIds); foreach (var corporateAccount in corporateAccounts) { try { _logger.Info(string.Format("Generating for accountId {0} and account tag {1}. ", corporateAccount.Id, corporateAccount.Tag)); var destinationFolderPdf = string.Format(_destinationFolderPdfSetting, corporateAccount.FolderName); var customSettingFilePath = string.Format(_customSettingFile, corporateAccount.Tag); var customSettings = _customSettingManager.Deserialize(customSettingFilePath); var exportToTime = DateTime.Now.AddHours(-1); var exportFromTime = customSettings.LastTransactionDate ?? _cutOfDate; bool inclcludeCustomTag = false; string[] CustomTags = null; var considerEventDate = true; DateTime?eventCutOfDate = _settings.PPEventCutOfDate; if (corporateAccount.Id == _settings.HealthNowAccountId) { CustomTags = _settings.HealthNowCustomTags; inclcludeCustomTag = true; } if (corporateAccount.Id == _settings.ExcellusAccountId) { CustomTags = _settings.ExcellusCustomTags; inclcludeCustomTag = true; } if (corporateAccount.Id == _settings.PPAccountId) { considerEventDate = true; } DateTime?stopSendingPdftoHealthPlanDate = null; if (corporateAccount.IsHealthPlan) { stopSendingPdftoHealthPlanDate = _settings.StopSendingPdftoHealthPlanDate; } var eventCustomerResults = _eventCustomerResultRepository.GetEventCustomerResultsToFax((int)TestResultStateNumber.ResultDelivered, (int)NewTestResultStateNumber.ResultDelivered, false, exportToTime, exportFromTime, corporateAccount.Id, corporateAccount.Tag, true, CustomTags, inclcludeCustomTag, considerEventDate, eventCutOfDate , stopSendingPdftoHealthPlanDate: stopSendingPdftoHealthPlanDate); var customerResults = eventCustomerResults as EventCustomerResult[] ?? eventCustomerResults.ToArray(); customerResults = customerResults ?? new EventCustomerResult[] { }; var resultNotPostedFileName = string.Format("ResultNotPostedto_{0}.xml", corporateAccount.Tag); var resultNotPostedToPlanFileName = Path.Combine(_settings.ResultNotPostedToPlanPath, resultNotPostedFileName); var resultNotPosted = _resultPdfNotPostedSerializer.Deserialize(resultNotPostedToPlanFileName); resultNotPosted = resultNotPosted == null || resultNotPosted.EventCustomer.IsNullOrEmpty() ? new ResultPdfNotPosted { EventCustomer = new List <EventCustomerInfo>() } : resultNotPosted; if (resultNotPosted.EventCustomer.Count > 0) { var eventCustomerIds = resultNotPosted.EventCustomer.Select(x => x.EventCustomerId); if (!customerResults.IsNullOrEmpty()) { var freshCustomerEventCustomerIds = customerResults.Select(x => x.Id); eventCustomerIds = (from q in eventCustomerIds where !freshCustomerEventCustomerIds.Contains(q) select q).ToList(); } int totalRecords = eventCustomerIds.Count(); int pageNumber = 0; int pagesize = 100; while (true) { if (totalRecords < 1) { break; } var totalItems = pageNumber * pagesize; var customerIds = eventCustomerIds.Skip(totalItems).Take(pagesize); var resultNotPostedEventCustomerResults = _eventCustomerResultRepository.GetEventCustomerResultsByIdsAndResultState(customerIds, (int)TestResultStateNumber.ResultDelivered, (int)NewTestResultStateNumber.ResultDelivered, false); if (!resultNotPostedEventCustomerResults.IsNullOrEmpty()) { var resultReports = resultNotPostedEventCustomerResults.ToArray(); if (customerResults.IsNullOrEmpty()) { customerResults = resultReports.ToArray(); } else { customerResults = customerResults.Concat(resultReports).ToArray(); } } pageNumber++; if (totalItems >= totalRecords) { break; } } } resultNotPosted.EventCustomer = !resultNotPosted.EventCustomer.IsNullOrEmpty() ? new List <EventCustomerInfo>() : resultNotPosted.EventCustomer; if (eventCustomerResults == null || !customerResults.Any()) { _logger.Info(string.Format("No event customer result list for {0} Result Pdf Download.", corporateAccount.Tag)); continue; } _logger.Info(string.Format("Found {0} customers for {1} Result Pdf Download. ", eventCustomerResults.Count(), corporateAccount.Tag)); var pcpResultReport = _mediaRepository.GetPdfFileNameForPcpResultReport(); var healthPlanResultReport = _mediaRepository.GetPdfFileNameForHealthPlanResultReport(); var resultPostedToPlanFileName = Path.Combine(_resultPostedToPlanPath, string.Format("ResultPostedto_{0}.xml", corporateAccount.Tag)); var resultPosted = _resultPdfPostedSerializer.Deserialize(resultPostedToPlanFileName); resultPosted = resultPosted == null || resultPosted.Customer.IsNullOrEmpty() ? new ResultPdfPostedXml { Customer = new List <CustomerInfo>() } : resultPosted; var resultPostedCustomer = new List <CustomerInfo>(); var healthPlanDownloadPath = Path.Combine(string.Format(_settings.HealthPlanDownloadPath, corporateAccount.FolderName), string.Format("ResultPDFs_{0}", DateTime.Now.ToString("yyyyMMdd"))); foreach (var ecr in customerResults) { var sourceUrl = _mediaRepository.GetPremiumVersionResultPdfLocation(ecr.EventId, ecr.CustomerId).PhysicalPath + healthPlanResultReport; if (!DirectoryOperationsHelper.IsFileExist(sourceUrl)) { sourceUrl = _mediaRepository.GetPremiumVersionResultPdfLocation(ecr.EventId, ecr.CustomerId).PhysicalPath + pcpResultReport; } if (DirectoryOperationsHelper.IsFileExist(sourceUrl)) { try { string fileName = ecr.CustomerId.ToString(); var eventDirectoryPdf = Path.Combine(destinationFolderPdf, ecr.EventId.ToString()); var customer = _customerRepository.GetCustomer(ecr.CustomerId); var theEvent = _eventRepository.GetById(ecr.EventId); if (corporateAccount.Id == _martinsPointExclusiveAccountId) { fileName = "Exclusive_" + customer.InsuranceId; } else if (corporateAccount.Id == _settings.ExcellusAccountId) { fileName = customer.InsuranceId; } else if (corporateAccount.Id == _settings.HealthNowAccountId) { fileName = customer.InsuranceId; eventDirectoryPdf = healthPlanDownloadPath; } else if (corporateAccount.Id == _settings.AppleCareAccountId) { if (!string.IsNullOrEmpty(customer.InsuranceId)) { fileName = string.Format("{0}_{1}", customer.InsuranceId, theEvent.EventDate.ToString("yyyyMMdd")); } else { fileName = string.Format("NoMember_{0}_{1}", customer.CustomerId, theEvent.EventDate.ToString("yyyyMMdd")); } fileName = _resultPdfFileHelper.GetFileName(resultPosted.Customer, ecr, fileName, (long)ResultFormatType.PDF); } else if (corporateAccount.Id == _settings.MedMutualAccountId) { if (!string.IsNullOrEmpty(customer.InsuranceId)) { fileName = string.Format("{0}_{1}", customer.InsuranceId, theEvent.EventDate.ToString("yyyyMMdd")); } else { fileName = string.Format("NoMember_{0}_{1}", customer.CustomerId, theEvent.EventDate.ToString("yyyyMMdd")); } eventDirectoryPdf = healthPlanDownloadPath; fileName = _resultPdfFileHelper.GetFileName(resultPosted.Customer, ecr, fileName, (long)ResultFormatType.PDF); } else if (corporateAccount.Id == _settings.ConnecticareAccountId) { if (!string.IsNullOrEmpty(customer.InsuranceId)) { fileName = customer.InsuranceId + "_" + customer.Name.LastName + "_" + customer.Name.FirstName + " " + customer.Name.MiddleName + theEvent.EventDate.ToString("yyyy-MM-dd") + "_HF_COMM"; } else { fileName = customer.Name.LastName + "_" + customer.Name.FirstName + " " + customer.Name.MiddleName + theEvent.EventDate.ToString("yyyy-MM-dd") + "_HF_COMM"; } eventDirectoryPdf = string.Format(_settings.HealthPlanDownloadPath, corporateAccount.FolderName); } else if (corporateAccount.Id == _settings.ConnecticareMaAccountId) { if (!string.IsNullOrEmpty(customer.InsuranceId)) { fileName = customer.InsuranceId + "_" + customer.Name.LastName + "_" + customer.Name.FirstName + " " + customer.Name.MiddleName + theEvent.EventDate.ToString("yyyy-MM-dd") + "_HF_MCR"; } else { fileName = customer.Name.LastName + "_" + customer.Name.FirstName + " " + customer.Name.MiddleName + theEvent.EventDate.ToString("yyyy-MM-dd") + "_HF_MCR"; } eventDirectoryPdf = string.Format(_settings.HealthPlanDownloadPath, corporateAccount.FolderName); } else if (corporateAccount.Id == _settings.BcbsAlAccountId) { if (!string.IsNullOrEmpty(customer.InsuranceId)) { fileName = customer.CustomerId + "_" + customer.Name.FirstName + " " + customer.Name.LastName + "_" + customer.InsuranceId; } else { fileName = customer.CustomerId + "_" + customer.Name.FirstName + " " + customer.Name.LastName; } eventDirectoryPdf = destinationFolderPdf + "\\" + ecr.EventId + "_" + DateTime.Today.ToString("MM-dd-yyyy"); } else if (corporateAccount.Id == _settings.FloridaBlueFepAccountId) { if (!string.IsNullOrEmpty(customer.InsuranceId)) { fileName = string.Format("GWC_CW_{0}", customer.InsuranceId); } else { fileName = string.Format("GWC_CW_NoMemberId_{0}", customer.CustomerId); } eventDirectoryPdf = Path.Combine(string.Format(_settings.HealthPlanDownloadPath, corporateAccount.FolderName), "PDFs"); } else if (corporateAccount.Id == _settings.PPAccountId) { fileName = theEvent.Id + "_" + customer.CustomerId; eventDirectoryPdf = string.Format(_settings.HealthPlanDownloadPath, corporateAccount.FolderName); } else if (corporateAccount.Id == _settings.NammAccountId) { fileName = theEvent.Id + "_" + customer.CustomerId; eventDirectoryPdf = string.Format(_settings.HealthPlanExportRootPath, corporateAccount.FolderName); } if (corporateAccount.MarkPennedBack && ecr.IsPennedBack) { fileName += "_" + corporateAccount.PennedBackText; } if (corporateAccount.ResultFormatTypeId == (long)ResultFormatType.Both || corporateAccount.ResultFormatTypeId == (long)ResultFormatType.PDF) { var destinationFileName = _resultPdfFileHelper.GetFileName(resultPosted.Customer, ecr, fileName, (long)ResultFormatType.PDF); var pdfFileName = destinationFileName + ".pdf"; var pdfResultFile = Path.Combine(eventDirectoryPdf, pdfFileName); _resultPdfDownloadHelper.ExportResultInPdfFormat(pdfFileName, sourceUrl, eventDirectoryPdf); var isFilePosted = true; if (DirectoryOperationsHelper.IsFileExist(pdfResultFile)) { var pgpFilePath = _pgpFileEncryptionHelper.EncryptFile(corporateAccount, pdfResultFile); if (_settings.SendReportToHcpNv && _settings.HcpNvAccountId == corporateAccount.Id) { isFilePosted = ExportResultOnHcpNvSftp(ecr.CustomerId + ".pdf", sourceUrl, ecr.EventId); } if (_settings.BcbsAlAccountId == corporateAccount.Id) { var sftpSettings = _sftpCridentialManager.Deserialize(_settings.SftpResouceFilePath + corporateAccount.Tag + ".xml"); isFilePosted = ExportFileOnClientSftp(pdfResultFile, _settings.BcbsAlSftpDownloadPath + "Individual Member Results (PDFs)\\" + ecr.EventId + "_" + DateTime.Today.ToString("MM-dd-yyyy"), sftpSettings); } if (corporateAccount.Id == _settings.FloridaBlueFepAccountId) { var destinationSftpPath = _settings.FloridaBlueSftpPath + "\\" + corporateAccount.FolderName + "\\Download\\PDfs"; isFilePosted = UploadSingleFile(pdfResultFile, destinationSftpPath, _settings.FloridaBlueSftpHost, _settings.FloridaBlueSftpUserName, _settings.FloridaBlueSftpPassword); } if (isFilePosted) { resultPostedCustomer.Add(_resultPdfFileHelper.GetCustomerInfo(theEvent, Path.GetFileName(pgpFilePath), (long)ResultFormatType.PDF, customer, ecr.Id)); } else { resultNotPosted.EventCustomer.Add(new EventCustomerInfo { EventCustomerId = ecr.Id, EventId = ecr.EventId, CustomerId = ecr.CustomerId, Error = "File Not posted on Client SFTP." }); } _logger.Info("destination: " + pdfResultFile); _logger.Info("Source: " + sourceUrl); } else { resultNotPosted.EventCustomer.Add(new EventCustomerInfo { EventCustomerId = ecr.Id, EventId = ecr.EventId, CustomerId = ecr.CustomerId, Error = "file not Moved on HIP SFTP." }); } } if (corporateAccount.ResultFormatTypeId == (long)ResultFormatType.Both || corporateAccount.ResultFormatTypeId == (long)ResultFormatType.TIF) { var destinationFileName = _resultPdfFileHelper.GetFileName(resultPosted.Customer, ecr, fileName, (long)ResultFormatType.TIF); var tipResultFile = Path.Combine(eventDirectoryPdf, destinationFileName + ".tif"); _resultPdfDownloadHelper.ExportResultInTiffFormat(destinationFileName + ".tif", sourceUrl, eventDirectoryPdf); var isFilePosted = true; var pgpFilePath = _pgpFileEncryptionHelper.EncryptFile(corporateAccount, tipResultFile); if (DirectoryOperationsHelper.IsFileExist(tipResultFile)) { if (_settings.SendReportToHcpNv && _settings.HcpNvAccountId == corporateAccount.Id) { isFilePosted = ExportResultOnHcpNvSftp(ecr.CustomerId + ".tif", sourceUrl, ecr.EventId, false); } if (_settings.BcbsAlAccountId == corporateAccount.Id) { var sftpSettings = _sftpCridentialManager.Deserialize(_settings.SftpResouceFilePath + corporateAccount.Tag + ".xml"); isFilePosted = ExportFileOnClientSftp(tipResultFile, _settings.BcbsAlSftpDownloadPath + "Individual Member Results (PDFs)\\" + ecr.EventId + "_" + DateTime.Today.ToString("MM-dd-yyyy"), sftpSettings); } if (isFilePosted) { resultPostedCustomer.Add(_resultPdfFileHelper.GetCustomerInfo(theEvent, Path.GetFileName(pgpFilePath), (long)ResultFormatType.TIF, customer, ecr.Id)); } else { resultNotPosted.EventCustomer.Add(new EventCustomerInfo { EventCustomerId = ecr.Id, EventId = ecr.EventId, CustomerId = ecr.CustomerId, Error = "File Not posted on Client SFTP." }); } _logger.Info("destination: " + tipResultFile); _logger.Info("Source: " + sourceUrl); } else { resultNotPosted.EventCustomer.Add(new EventCustomerInfo { EventCustomerId = ecr.Id, EventId = ecr.EventId, CustomerId = ecr.CustomerId, Error = "file not Moved on HIP SFTP." }); } } } catch (Exception exception) { resultNotPosted.EventCustomer.Add(new EventCustomerInfo { EventCustomerId = ecr.Id, EventId = ecr.EventId, CustomerId = ecr.CustomerId, Error = "file not Moved on HIP SFTP." }); _logger.Error(string.Format("some error occurred for the customerId {0}, {1},\n Message {2} \n Stack Trace {3}", ecr.CustomerId, ecr.EventId, exception.Message, exception.StackTrace)); } } else { _logger.Info(string.Format("File not generated or removed for the customerId {0}, {1}", ecr.CustomerId, ecr.EventId)); resultNotPosted.EventCustomer.Add(new EventCustomerInfo { EventCustomerId = ecr.Id, EventId = ecr.EventId, CustomerId = ecr.CustomerId, Error = "File not generated or removed." }); } } if (corporateAccount.Id == _settings.HealthNowAccountId || corporateAccount.Id == _settings.MedMutualAccountId) { if (DirectoryOperationsHelper.IsDirectoryExist(healthPlanDownloadPath) && DirectoryOperationsHelper.GetFiles(healthPlanDownloadPath).Any()) { var isZipFileCreated = false; try { _zipHelper.CreateZipFiles(healthPlanDownloadPath); isZipFileCreated = true; } catch (Exception ex) { _logger.Error(string.Format("some error occurred while creating zip file for AccountId: {0} and account tag: {1} Exception Message: \n{2}, \n stack Trace: \n\t {3} ", corporateAccount.Id, corporateAccount.Tag, ex.Message, ex.StackTrace)); } if (isZipFileCreated) { resultPosted.Customer.AddRange(resultPostedCustomer); } else { resultNotPosted.EventCustomer.AddRange( resultPostedCustomer.Select(x => new EventCustomerInfo { EventCustomerId = x.EventCustomerId, CustomerId = x.CustomerId, EventId = x.EventId, Error = "Error occurred while creating zip file." })); } } DirectoryOperationsHelper.DeleteDirectory(healthPlanDownloadPath, true); } else { resultPosted.Customer.AddRange(resultPostedCustomer); } customSettings.LastTransactionDate = exportToTime; _customSettingManager.SerializeandSave(customSettingFilePath, customSettings); CorrectandSaveResultPosted(resultPosted, corporateAccount); _resultPdfNotPostedSerializer.SerializeandSave(resultNotPostedToPlanFileName, resultNotPosted); if (resultNotPosted.EventCustomer.Count > 0) { _resultPdfEmailNotificationHelper.SendEmailNotificationForFileNotPosted(corporateAccount.Tag, resultNotPosted.EventCustomer.Count, _logger); } } catch (Exception ex) { _logger.Error(string.Format("some error occurred for AccountId: {0} and account tag: {1} Exception Message: \n{2}, \n stack Trace: \n\t {3} ", corporateAccount.Id, corporateAccount.Tag, ex.Message, ex.StackTrace)); } } } catch (Exception exception) { _logger.Error(string.Format("some error occurred Exception Message: \n{0}, \n stack Trace: \n\t {1} ", exception.Message, exception.StackTrace)); } }
private void GenerateCrosswalkInboundReport(CrosswalkInboundFilter filter) { var account = _corporateAccountRepository.GetById(filter.AccountId); filter.Tag = account.Tag; if (account.IsHealthPlan) { filter.StopSendingPdftoHealthPlanDate = _settings.StopSendingPdftoHealthPlanDate; } var model = _crosswalkInboundReportService.GetCrosswalkInboundReportList(filter, _logger); if (model != null) { var folder = string.Format(_settings.FloridaBlueInboundReportPath, account.FolderName, DateTime.Now.ToString("yyyy-MM-dd")); if (!Directory.Exists(folder)) { DirectoryOperationsHelper.CreateDirectory(folder); } var fileName = _pipeDelimitedReportHelper.GetReportName(ReportType.CrosswalkInbound) + ".txt"; var zipFileName = _pipeDelimitedReportHelper.GetReportName(ReportType.CrosswalkZip); if (model.Collection != null && model.Collection.Any()) { _logger.Info("generating File"); var tempMediaLocation = _mediaRepository.GetTempMediaFileLocation().PhysicalPath + zipFileName + "\\"; if (!Directory.Exists(tempMediaLocation)) { DirectoryOperationsHelper.CreateDirectory(tempMediaLocation); } var resultPostedToPlanFileName = Path.Combine(_resultPostedToPlanPath, string.Format("ResultPostedto_{0}.xml", account.Tag)); var resultPosted = _resultPdfPostedSerializer.Deserialize(resultPostedToPlanFileName); resultPosted = resultPosted == null || resultPosted.Customer.IsNullOrEmpty() ? new ResultPdfPostedXml { Customer = new List <CustomerInfo>() } : resultPosted; foreach (var crosswalkViewModel in model.Collection) { var hafResultPdfLocation = _mediaRepository.GetPremiumVersionResultPdfLocation(crosswalkViewModel.EventId, crosswalkViewModel.CustomerId); var hafResultPdfFileName = _mediaRepository.GetPdfFileNameForHealthPlanResultReport(); var pcpResultPdfFileName = _mediaRepository.GetPdfFileNameForPcpResultReport(); _logger.Info(" Event Id: " + crosswalkViewModel.EventId + " Customer Id: " + crosswalkViewModel.CustomerId); if (DirectoryOperationsHelper.IsFileExist(tempMediaLocation + crosswalkViewModel.FileName)) { var fileNameWithoutExtension = Path.GetFileNameWithoutExtension(tempMediaLocation + crosswalkViewModel.FileName); var files = DirectoryOperationsHelper.GetFiles(tempMediaLocation, fileNameWithoutExtension + "*.pdf"); crosswalkViewModel.FileName = fileNameWithoutExtension + "_" + files.Count() + ".pdf"; } if (File.Exists(hafResultPdfLocation.PhysicalPath + hafResultPdfFileName)) { var destinationFileName = GetFileName(resultPosted.Customer, crosswalkViewModel.EventId, crosswalkViewModel.CustomerId, Path.GetFileNameWithoutExtension(crosswalkViewModel.FileName), (long)ResultFormatType.PDF); crosswalkViewModel.FileName = destinationFileName + ".pdf"; _logger.Info("Copying File.. filePath from : " + hafResultPdfLocation.PhysicalPath + hafResultPdfFileName); _logger.Info("Copying File.. filePath To : " + tempMediaLocation + crosswalkViewModel.FileName); DirectoryOperationsHelper.Copy(hafResultPdfLocation.PhysicalPath + hafResultPdfFileName, tempMediaLocation + crosswalkViewModel.FileName); resultPosted.Customer.Add(GetCustomerInfo(crosswalkViewModel)); } else if (File.Exists(hafResultPdfLocation.PhysicalPath + pcpResultPdfFileName)) { var destinationFileName = GetFileName(resultPosted.Customer, crosswalkViewModel.EventId, crosswalkViewModel.CustomerId, Path.GetFileNameWithoutExtension(crosswalkViewModel.FileName), (long)ResultFormatType.PDF); crosswalkViewModel.FileName = destinationFileName + ".pdf"; _logger.Info("Copying File.. filePath from : " + hafResultPdfLocation.PhysicalPath + pcpResultPdfFileName); _logger.Info("Copying File.. filePath To : " + tempMediaLocation + crosswalkViewModel.FileName); DirectoryOperationsHelper.Copy(hafResultPdfLocation.PhysicalPath + pcpResultPdfFileName, tempMediaLocation + crosswalkViewModel.FileName); resultPosted.Customer.Add(GetCustomerInfo(crosswalkViewModel)); } else { _logger.Info("file not found"); } } _resultPdfPostedSerializer.SerializeandSave(resultPostedToPlanFileName, resultPosted); _pipeDelimitedReportHelper.Write(model.Collection, folder, fileName); DirectoryOperationsHelper.Copy(folder + "\\" + fileName, tempMediaLocation + fileName); _logger.Info("generating Zip "); _zipHelper.CreateZipFiles(tempMediaLocation, folder + "\\" + zipFileName + ".zip"); if (_sendReportToSftp) { try { _logger.Info("Sending zip to SFTP."); var destinationPath = _destinationSftpPath + "\\" + account.FolderName + "\\Download\\Reports"; SendFilesToSftp(Path.Combine(folder, zipFileName + ".zip"), destinationPath, zipFileName + ".zip"); _logger.Info("Zip sent to SFTP."); } catch (Exception ex) { _logger.Info("Error sending zip to SFTP."); _logger.Error("Message : " + ex.Message); _logger.Error("Stack Trace : " + ex.StackTrace); } } _logger.Info("Deleting temp folder: " + tempMediaLocation); DirectoryOperationsHelper.DeleteDirectory(tempMediaLocation, true); _logger.Info("Deleting text file: " + folder + "\\" + fileName); DirectoryOperationsHelper.Delete(folder + "\\" + fileName); } else { _logger.Info("No Data found for account Id: " + filter.AccountId); } } else { _logger.Info("No record found for " + account.Tag); } }
private void GenerateCrosswalkLabInboundReport(CrosswalkLabInboundFilter filter) { var account = _corporateAccountRepository.GetById(filter.AccountId); filter.Tag = account.Tag; var model = _crosswalkInboundReportService.GetCrosswalkLabInboundReportList(filter); if (model != null) { var folder = string.Format(_settings.FloridaBlueInboundReportPath, account.FolderName, DateTime.Now.ToString("yyyy-MM-dd")); if (!Directory.Exists(folder)) { DirectoryOperationsHelper.CreateDirectory(folder); } var fileName = _pipeDelimitedReportHelper.GetReportName(ReportType.CrosswalkLabInbound) + ".txt"; var zipFileName = _pipeDelimitedReportHelper.GetReportName(ReportType.CrosswalkLabZip); if (model.Collection != null && model.Collection.Any()) { _logger.Info("generating File"); _pipeDelimitedReportHelper.Write(model.Collection, folder, fileName); var tempMediaLocation = _mediaRepository.GetTempMediaFileLocation().PhysicalPath + zipFileName + "\\"; if (!Directory.Exists(tempMediaLocation)) { DirectoryOperationsHelper.CreateDirectory(tempMediaLocation); } foreach (var crosswalkViewModel in model.Collection) { var resultMediaLocation = _mediaRepository.GetResultMediaFileLocation(crosswalkViewModel.CustomerId, crosswalkViewModel.EventId); _logger.Info(" Event Id: " + crosswalkViewModel.EventId + " Customer Id: " + crosswalkViewModel.CustomerId); _logger.Info("file Path: " + resultMediaLocation.PhysicalPath + crosswalkViewModel.TestPdf); if (!string.IsNullOrEmpty(crosswalkViewModel.TestPdf) && File.Exists(resultMediaLocation.PhysicalPath + crosswalkViewModel.TestPdf)) { _logger.Info("Copying File.. filePath from : " + resultMediaLocation.PhysicalPath + crosswalkViewModel.TestPdf); _logger.Info("Copying File.. filePath To : " + tempMediaLocation + crosswalkViewModel.FileName); File.Copy(resultMediaLocation.PhysicalPath + crosswalkViewModel.TestPdf, tempMediaLocation + crosswalkViewModel.FileName); } else { _logger.Info("file not found"); _logger.Info("filePath : " + resultMediaLocation.PhysicalPath + "\\" + crosswalkViewModel.TestPdf); } } File.Copy(folder + "\\" + fileName, tempMediaLocation + fileName); _logger.Info("generating Zip "); _zipHelper.CreateZipFiles(tempMediaLocation, folder + "\\" + zipFileName + ".zip"); _logger.Info("Deleting text file: " + folder + "\\" + fileName); File.Delete(folder + "\\" + fileName); if (_sendReportToSftp) { try { _logger.Info("Sending zip to SFTP."); var destinationPath = _destinationSftpPath + "\\" + account.FolderName + "\\Download\\Reports"; SendFilesToSftp(Path.Combine(folder, zipFileName + ".zip"), destinationPath, zipFileName + ".zip"); _logger.Info("Zip sent to SFTP."); } catch (Exception ex) { _logger.Info("Error sending zip to SFTP."); _logger.Error("Message : " + ex.Message); _logger.Error("Stack Trace : " + ex.StackTrace); } } } else { _logger.Info("No record found for " + account.Tag); } } else { _logger.Info("No record found for " + account.Tag); } }
public void CreateZipFile() { try { if (_accountIds.IsNullOrEmpty()) { return; } var corporateAccounts = _corporateAccountRepository.GetByIds(_accountIds); foreach (var account in corporateAccounts) { try { _logger.Info(string.Format("Creating zip for accountId {0} and account tag {1}. ", account.Id, account.Tag)); var fileName = account.FolderName.Replace("_", "") + "_DATA_" + DateTime.Today.ToString("MMyydd"); var sourceFile = string.Format(_optumZipFolderDownloadFromPath, account.FolderName); var destinationPath = string.Format(_optumZipFolderPostToPath, account.FolderName); if (_monarchAccountIds.Contains(account.Id)) { destinationPath = string.Format(_monarchZipFolderPath, account.FolderName); fileName = account.FolderName + "_DATA_" + DateTime.Today.ToString("yyyyMMdd"); } _logger.Info("Destination Path:" + destinationPath); if (!DirectoryOperationsHelper.IsDirectoryExist(destinationPath)) { Directory.CreateDirectory(destinationPath); } var destinationfile = destinationPath + "\\" + fileName + ".zip"; if (DirectoryOperationsHelper.IsFileExist(destinationfile)) { DirectoryOperationsHelper.Delete(destinationfile); } var directoryToDeleteFrom = new DirectoryInfo(destinationPath); if (_monarchAccountIds.Contains(account.Id)) { var zipFiles = directoryToDeleteFrom.GetFiles(account.FolderName + "_DATA_*.zip"); foreach (var file in zipFiles) { _logger.Info("Deleting zip file : " + file.Name); file.Delete(); } } else { var fileNotToBeDelete = GetFileNotDeleted(); var zipFiles = directoryToDeleteFrom.GetFiles(account.FolderName.Replace("_", "") + "_DATA_*.zip"); foreach (var file in zipFiles) { if (fileNotToBeDelete.Any(x => file.Name.EndsWith(x))) { continue; } _logger.Info("Deleting zip file : " + file.Name); file.Delete(); } } _zipHelper.CreateZipFiles(sourceFile, destinationfile, true); if (_monarchAccountIds.Contains(account.Id)) { var sftpCridential = _sftpCridentialManager.Deserialize(_sftpResouceFilePath + account.Tag + ".xml"); try { ExportResultInSftp(fileName + ".zip", destinationfile, sftpCridential); } catch (Exception exception) { _logger.Error("message: " + exception.Message); _logger.Error("stack trace: " + exception.StackTrace); } var archiveDestinationPath = string.Format(_monarchResultPdfArchive, account.FolderName); DirectoryOperationsHelper.CreateDirectoryIfNotExist(archiveDestinationPath + "\\pdfs\\"); var sourceDir = new DirectoryInfo(sourceFile + "/pdfs/"); var destinationDir = new DirectoryInfo(archiveDestinationPath + "\\pdfs\\"); DeepCopy(sourceDir, destinationDir); Directory.Delete(sourceFile + "/pdfs/", true); } _logger.Info("Zip File Created"); } catch (Exception ex) { _logger.Error("Some Error occurred for Account Id " + account.Id + " Account Tag " + account.Tag); _logger.Error("Message " + ex.Message); _logger.Error("Stack Trace " + ex.StackTrace); } } } catch (Exception ex) { _logger.Error("Some Error occurred "); _logger.Error("Message " + ex.Message); _logger.Error("Stack Trace " + ex.StackTrace); } }
public void PollForPdfDownload() { try { if (DateTime.Today.DayOfWeek != _dayOfWeek) { _logger.Info(string.Format("Today is {0}. Job is set to run on {1}.", DateTime.Today.DayOfWeek, _dayOfWeek)); return; } var accountIds = new List <long>(); if (string.IsNullOrEmpty(_settings.FloridaBlueAccountId)) { _logger.Info("No account Ids found."); return; } var partnerIdsArray = _settings.FloridaBlueAccountId.Split(',').Where(hospitalIdstr => !string.IsNullOrEmpty(hospitalIdstr)).Select(x => x.Trim()); foreach (var hospitalIdstr in partnerIdsArray) { long pcpAccountId; long.TryParse(hospitalIdstr, out pcpAccountId); if (pcpAccountId > 0) { accountIds.Add(pcpAccountId); } } var corporateAccounts = _corporateAccountRepository.GetByIds(accountIds); foreach (var corporateAccount in corporateAccounts) { try { _logger.Info(string.Format("Generating for accountId {0} and account tag {1}. ", corporateAccount.Id, corporateAccount.Tag)); var destinationFolderPdfPath = string.Format(_destinationFolderPdfPath, corporateAccount.FolderName); var customSettingFilePath = string.Format(_customSettingFile, corporateAccount.Tag); var customSettings = _customSettingManager.Deserialize(customSettingFilePath); var exportToTime = DateTime.Now.AddHours(-1); var exportFromTime = customSettings.LastTransactionDate ?? _cutOfDate; var folderName = string.Format("HLF_GWC_CW_{0}", exportToTime.ToString("yyyyMMddHHmmssfff")); var destinationFolderPdfPathWithCustomFolder = destinationFolderPdfPath + "/" + folderName + "/"; DateTime?stopSendingPdftoHealthPlanDate = null; if (corporateAccount.IsHealthPlan) { stopSendingPdftoHealthPlanDate = _settings.StopSendingPdftoHealthPlanDate; } var eventCustomerResults = _eventCustomerResultRepository.GetEventCustomerResultsToFax( (int)TestResultStateNumber.ResultDelivered, (int)NewTestResultStateNumber.ResultDelivered, false, exportToTime, exportFromTime, corporateAccount.Id, corporateAccount.Tag, true, stopSendingPdftoHealthPlanDate: stopSendingPdftoHealthPlanDate); var customerResults = eventCustomerResults as EventCustomerResult[] ?? eventCustomerResults.ToArray(); if (eventCustomerResults == null || !customerResults.Any()) { _logger.Info(string.Format("No event customer result list for {0} Result Pdf Download.", corporateAccount.Tag)); continue; } DirectoryOperationsHelper.CreateDirectoryIfNotExist(_settings.ResultPostedToPlanPath); var resultPostedToPlanFileName = Path.Combine(_settings.ResultPostedToPlanPath, string.Format("resultPostedto_{0}.xml", corporateAccount.Tag)); var resultPosted = _resultPdfPostedSerializer.Deserialize(resultPostedToPlanFileName); resultPosted = resultPosted ?? new ResultPdfPostedXml { Customer = new List <CustomerInfo>() }; //TODO: Foreach loop for one time use......TO BE REMOVED foreach (var customerInfo in resultPosted.Customer.Where(x => x.FileType == 0)) { customerInfo.FileType = (long)ResultFormatType.PDF; } _logger.Info(string.Format("Found {0} customers for {1} Result Pdf Download. ", eventCustomerResults.Count(), corporateAccount.Tag)); var pcpResultReport = _mediaRepository.GetPdfFileNameForPcpResultReport(); var healthPlanResultReport = _mediaRepository.GetPdfFileNameForHealthPlanResultReport(); foreach (var ecr in customerResults) { var sourcePath = _mediaRepository.GetPremiumVersionResultPdfLocation(ecr.EventId, ecr.CustomerId).PhysicalPath + healthPlanResultReport; if (!File.Exists(sourcePath)) { sourcePath = _mediaRepository.GetPremiumVersionResultPdfLocation(ecr.EventId, ecr.CustomerId).PhysicalPath + pcpResultReport; } if (File.Exists(sourcePath)) { try { var customer = _customerRepository.GetCustomer(ecr.CustomerId); var eventData = _eventRepository.GetById(ecr.EventId); var destinationFileName = string.Empty; if (!string.IsNullOrEmpty(customer.InsuranceId)) { destinationFileName = string.Format("{0}_{1}", FileNamePrefix, customer.InsuranceId); } else { destinationFileName = string.Format("{0}_NoMemberId_{1}", FileNamePrefix, customer.CustomerId); } if (corporateAccount.MarkPennedBack && ecr.IsPennedBack) { destinationFileName += "_" + corporateAccount.PennedBackText; } _logger.Info("Moving pdf file for customer Id: " + customer.CustomerId + " Event Id: " + eventData.Id); if (!string.IsNullOrEmpty(destinationFileName)) { if (corporateAccount.ResultFormatTypeId == (long)ResultFormatType.PDF || corporateAccount.ResultFormatTypeId == (long)ResultFormatType.Both) { var pdfResultFile = destinationFolderPdfPathWithCustomFolder + destinationFileName + ".pdf"; _resultPdfDownloaderHelper.ExportResultInPdfFormat(destinationFileName + ".pdf", sourcePath, destinationFolderPdfPathWithCustomFolder); if (File.Exists(pdfResultFile)) { var pgpFilePath = _pgpFileEncryptionHelper.EncryptFile(corporateAccount, pdfResultFile); resultPosted.Customer.Add(_resultPdfFileHelper.GetCustomerInfo(eventData, Path.GetFileName(pgpFilePath), (long)ResultFormatType.PDF, customer, ecr.Id)); } } if (corporateAccount.ResultFormatTypeId == (long)ResultFormatType.TIF || corporateAccount.ResultFormatTypeId == (long)ResultFormatType.Both) { var tifResultFile = destinationFolderPdfPathWithCustomFolder + destinationFileName + ".tif"; _resultPdfDownloaderHelper.ExportResultInTiffFormat(destinationFileName + ".tif", sourcePath, destinationFolderPdfPathWithCustomFolder); if (File.Exists(tifResultFile)) { var pgpFilePath = _pgpFileEncryptionHelper.EncryptFile(corporateAccount, tifResultFile); resultPosted.Customer.Add(_resultPdfFileHelper.GetCustomerInfo(eventData, Path.GetFileName(pgpFilePath), (long)ResultFormatType.TIF, customer, ecr.Id)); } } } //else //{ // _logger.Info("customer info does not contain member Id for customer Id: " + customer.CustomerId + " Event Id: " + eventData.Id); //} } catch (Exception exception) { _logger.Error(string.Format("some error occured for the customerId {0}, {1},\n Messagen {2} \n Stack Trace {3}", ecr.CustomerId, ecr.EventId, exception.Message, exception.StackTrace)); } } else { _logger.Info(string.Format("File not generated or removed for the customerId {0}, {1}", ecr.CustomerId, ecr.EventId)); } } resultPosted = CorrectMissingRecords(resultPosted); _resultPdfPostedSerializer.SerializeandSave(resultPostedToPlanFileName, resultPosted); //zip folder _logger.Info("Creating Zip file"); var sourceDir = Directory.GetParent(destinationFolderPdfPathWithCustomFolder).FullName; var outputPath = sourceDir + ".zip"; _zipHelper.CreateZipFiles(sourceDir, outputPath, true); string directoryName = Path.GetDirectoryName(outputPath) + "\\" + Path.GetFileNameWithoutExtension(outputPath); _logger.Info("Deleting directory " + directoryName); if (Directory.Exists(directoryName)) { try { foreach (var file in Directory.GetFiles(directoryName)) { File.Delete(file); } Directory.Delete(directoryName, true); } catch (Exception exception) { _logger.Error(string.Format("Error while deleting directory {0}. Exception Message: \n{1}, \n stack Trace: \n\t {2}", directoryName, exception.Message, exception.StackTrace)); } } customSettings.LastTransactionDate = exportToTime; _customSettingManager.SerializeandSave(customSettingFilePath, customSettings); _logger.Info("Completed"); } catch (Exception ex) { _logger.Error(string.Format("some error occured for AccountId: {0} and account tag: {1} Exception Message: \n{2}, \n stack Trace: \n\t {3} ", corporateAccount.Id, corporateAccount.Tag, ex.Message, ex.StackTrace)); } } } catch (Exception exception) { _logger.Error(string.Format("some error occured Exception Message: \n{0}, \n stack Trace: \n\t {1} ", exception.Message, exception.StackTrace)); } }