public void Run(psPortfoliosCategoryConditionMetEventInfo eventObj) { if (eventObj == null) { NLogger.Error("EventObj is null this is not valid for a CategoryConditionMet web service alert"); return; } try { NLogger.Trace("Starting CategoryConditionMet"); // get a scheduler if (GlobalVariables.Scheduler == null) { NLogger.Error("The Scheduler application variable is null"); return; } var job = HelperFunctions.GetAlertsSchedule(eventObj.AlertName, GlobalVariables.JobSchedules); if (job.Name.IsNullOrEmpty()) { NLogger.Warn("Unable to find a job in quartz_jobs.xml for alert {0}", eventObj.AlertName); return; } var jobDataMap = HelperFunctions.GetJobDataMap(job); jobDataMap.Put(EventObj, eventObj.ToXml()); var jobType = Type.GetType(HelperFunctions.GetAlertJobType(eventObj.AlertName, job)); if (jobType == null) { NLogger.Warn("Unable to find a job of type {0}", HelperFunctions.GetAlertJobType(eventObj.AlertName, job)); return; } var newGuid = Guid.NewGuid().ToString(); var jobDetail = JobBuilder.Create(jobType).WithIdentity($"{job.Name} {newGuid}", GroupName).SetJobData(jobDataMap).Build(); var trigger = TriggerBuilder.Create().WithIdentity($"Trigger {newGuid}", GroupName).StartNow().Build(); GlobalVariables.Scheduler.ScheduleJob(jobDetail, trigger); NLogger.Trace("Finished CategoryConditionMet"); } catch (Exception ex) { NLogger.Error(ex.Message); } }
public ComplianceStatusData GetDataElements(psPortfoliosCategoryConditionMetEventInfo eventInfo, JobDataMap jobDataMap) { try { var connectionString = jobDataMap.GetString("ConnectionString"); var categoryValues = jobDataMap.GetString("CategoryValues"); var groupMembers = jobDataMap.GetString("GroupMembers"); var proSightDal = new ProSightDal(connectionString); var complianceStatusData = new ComplianceStatusData { CategoryName = eventInfo.CategoryName, ProSightId = eventInfo.ScopeInfo.ProSightID, ItemName = eventInfo.ScopeInfo.Name }; var parameterList = new List <OracleParameter> { new OracleParameter { ParameterName = "portfolioId", Value = complianceStatusData.ProSightId } }; var dataTable = proSightDal.GetDataTable(categoryValues, parameterList); foreach (DataRow dataTableRow in dataTable.Rows) { if (dataTableRow.Field <String>("Name").Equals(complianceStatusData.CategoryName)) { complianceStatusData.CategoryValue = dataTableRow.Field <String>("Value"); continue; } if (dataTableRow.Field <String>("Name").Equals("ITIPS ID")) { complianceStatusData.ItipsId = dataTableRow.Field <String>("Value"); } if (dataTableRow.Field <String>("Name").Equals("P_7 PM Email")) { complianceStatusData.PmEmail = dataTableRow.Field <String>("Value"); } if (dataTableRow.Field <String>("Name").Equals("G51 DITPR Number")) { complianceStatusData.DitprId = dataTableRow.Field <String>("Value"); } if (dataTableRow.Field <String>("Name").StartsWith(complianceStatusData.CategoryName)) { complianceStatusData.CategoryComment = dataTableRow.Field <String>("Value"); } } // // no pm email so log it and bail // if (complianceStatusData.PmEmail.IsNullOrEmpty()) { NLogger.Error("Missing a PM Email address"); NLogger.Trace(complianceStatusData.ToXml()); return(complianceStatusData); } parameterList = new List <OracleParameter> { new OracleParameter { ParameterName = "groupName", Value = $"%{complianceStatusData.ItipsId}%(Edit-Read)" } }; dataTable = proSightDal.GetDataTable(groupMembers, parameterList); foreach (DataRow dataTableRow in dataTable.Rows) { if (dataTableRow.Field <Int64>("is_enabled") != 1) { continue; } var email = dataTableRow.Field <String>("Email"); if (email.IsEqualTo(complianceStatusData.PmEmail, true)) { continue; } complianceStatusData.GroupEmails.Add(email); } return(complianceStatusData); } catch (Exception ex) { NLogger.Error(ex.Message); } return(new ComplianceStatusData()); }
public void categoryConditionMet(psPortfoliosCategoryConditionMetEventInfo eventObj) { var categoryConditionMet = new CategoryConditionMet(); categoryConditionMet.Run(eventObj); }