コード例 #1
0
 /// <summary>
 /// Get Application component type by Run number & Component id
 /// </summary>
 /// <param name="runNumber">Run Number</param>
 /// <param name="componentId">Component Id</param>
 /// <returns>if true then component is optional, otherwise mandatory</returns>
 public bool GetAppComponentTypeByRunNumberNComponentId(string runNumber, int componentId)
 {
     try
     {
         //gets the ApplicationId By Run Number.
         var appId          = _runNumberRepository.GetApplicationIdByRunNumber(runNumber);
         var isOptionalComp = _runNumberRepository.GetAppComponentTypeByRunCompStatustId(componentId, appId);
         return(isOptionalComp);
     }
     catch (Exception ex)
     {
         throw new Exception(string.Format("Error occur while processing getting application type (e.g. Optional or Mandatory) [Run number] : {0} & Component Id : {1}.", runNumber, componentId), ex);
     }
 }
コード例 #2
0
        public void SendInputFileEmail(int runComponentId, string component, string runNumber, string token, string message = "Success")
        {
            try
            {
                SingletonLogger.Instance.Debug("Fetching email template for TOKEN = " + token);
                Application   appInfo     = _applicationRepository.Find(_runNumberRepository.GetApplicationIdByRunNumber(runNumber));
                int           componentId = _runComponentRepository.Find(runComponentId).ComponentId;
                EmailTemplate template    = _emailTemplateRepository.EmailTemplate(x => x.ClientId == appInfo.ClientId && x.ApplicationId == appInfo.ApplicationId && x.ApplicationComponentId == componentId && x.EmailToken == token);
                if (template != null)
                {
                    EmailTracking tracking = new EmailTracking()
                    {
                        RunNumberId     = _runNumberRepository.GetRunNumberIdByRunNumber(runNumber),
                        FromEmailId     = template.EmailFromSmtpId.ToString(),
                        EmailTemplateId = template.EmailTemplateId,
                        Subjects        = template.Subject,
                        Body            = template.Body,
                        EmailStatus     = (int)EmailStatusType.Ready
                    };

                    if (tracking != null)
                    {
                        tracking.SentDate = DateTime.Now;
                        tracking.Body     = tracking.Body.Replace("{{CLIENT_NAME}}", appInfo.ClientId.ToString());
                        tracking.Body     = tracking.Body.Replace("{{APPLICATION_NAME}}", appInfo.Name).Replace("{{COMPONENT_NAME}}", component);
                        tracking.Body     = tracking.Body.Replace("{{MESSAGE}}", message);
                        tracking.Subjects = tracking.Subjects.Replace("{{COMPONENT_NAME}}", component).Replace("{{APPLICATION_NAME}}", appInfo.Name).Replace("{{CLIENT_NAME}}", appInfo.ClientId.ToString());
                        if (_emailTrackingRepository.Save(tracking) != 0)
                        {
                            SingletonLogger.Instance.Error("Error occured while email saving to email tracking.");
                        }
                    }
                }
                else
                {
                    SingletonLogger.Instance.Debug("Email Template not found in database for TOKEN = " + token);
                }
            }
            catch (Exception ex)
            {
                SingletonLogger.Instance.Error("Error occured while sending email about file download = " + ex.Message);
            }
        }
コード例 #3
0
        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);
            }
        }