public void Run() { try { #region Trigger file details SingletonLogger.Instance.Debug("Process start reading Trigger XML file from " + TriggerPath); TriggerFileReader objTriggerFileReader = new TriggerFileReader(); objTriggerFileReader.TriggerFileLocaton = TriggerPath; var triggerFileDetail = objTriggerFileReader.GetTriggerFileDetail(); StatusDirectory = triggerFileDetail.ComponentStatusDirectory + "\\status_" + Path.GetFileName(TriggerPath); SingletonLogger.Instance.Debug("Process successfully read trigger XML file."); #endregion #region Mapper Setting mapper = new PatternMatchingMapper(); mapper.SetCurrentDateFormat(); mapper.SetClientAndAppDetails(triggerFileDetail.RunNumber); mapper.SetClientAndAppDetails(triggerFileDetail.ClientName, triggerFileDetail.ApplicationName); #endregion #region Run Process var application = test.Find(1); var runItem = _runComponentStatusRepository.Find(triggerFileDetail.RunComponentStatusId).RunNumberId; var allCompeletedComponents = _runComponentStatusRepository.FindAll().Where(x => x.RunNumberId == runItem && x.ComponentStatusId == (byte)ComponentStatusType.Completed).Select(x => x.ComponentId).ToList(); var applicationId = _runDetailRepository.GetApplicationIdByRunNumber(triggerFileDetail.RunNumber); SingletonLogger.Instance.Debug(allCompeletedComponents.Count() + " component has been completed."); foreach (var item in allCompeletedComponents) { var recordList = _uploadFileRepository.FindAllByAppNComponentId(applicationId, item); foreach (var recordItem in recordList) { List <string> fileList = new List <string>(); var inputPath = mapper.EvaluateString(recordItem.FileInputPath); foreach (var mask in recordItem.InputFileMask.Split('|').ToList()) { Regex reg = new Regex(mask.Trim()); fileList.AddRange(Directory.GetFiles(inputPath).Where(path => reg.IsMatch(path)).ToList()); } if (fileList.Count > 0) { SingletonLogger.Instance.Debug(fileList.Count + " files found for move from " + inputPath); if (recordItem.IsArchiveOutputRequired) { var archiveName = mapper.EvaluateString(recordItem.ArchiveFileExpression); var fileTransferSetting = _fileTransferSettingRepository.Find(recordItem.ArchiveFileTransferSettingId); var outputPath = mapper.EvaluateString(recordItem.ArchiveOutputPath); Manager = new TransferManager(SetAdaptorSetting(fileTransferSetting, outputPath)); Manager.Processing(fileList); SingletonLogger.Instance.Debug(fileList.Count + " files has been archived successfully."); } if (recordItem.IsMoveFileRequired) { var moveName = mapper.EvaluateString(recordItem.MoveFileExpression); var fileTransferSetting = _fileTransferSettingRepository.Find(recordItem.MoveFileTransferSettingId); var outputPath = mapper.EvaluateString(recordItem.MoveFilePath); Manager = new TransferManager(SetAdaptorSetting(fileTransferSetting, outputPath)); Manager.Processing(fileList); SingletonLogger.Instance.Debug(fileList.Count + " files has been moved successfully."); } } } } SingletonLogger.Instance.Debug("Files has been uploaded successfully."); #endregion #region Move trigger file with status objXmlHelper.WriteComponentStatusInTriggerFile(TriggerPath, componentStartDate, DateTime.Now.ToString()); File.Move(TriggerPath, StatusDirectory); #endregion } catch (Exception ex) { TriggerStatus(ex); } }