private void SetTimeDeltaType(TimeDeltaType type) { if (!ParentWorkflow.InternalParameters.ContainsKey("TimeDeltaType")) { ParentWorkflow.InternalParameters.Add("TimeDeltaType", type); } }
private string GetReportTypeString(TimeDeltaType type) { string ret = String.Empty; switch (type) { case TimeDeltaType.Daily: { ret = "Last_Day"; break; } case TimeDeltaType.General: { ret = "General"; break; } case TimeDeltaType.Weekly: { ret = "7_Days_Ago"; break; } case TimeDeltaType.Monthly: { ret = "30_Days_Ago"; break; } } return(ret); }
/// <summary> /// Do we use Time.deltaTime OR Time.unscaledTimeDelta /// unscaled means not affected by Time scale, by default all timers ARE affected by timescale /// </summary> /// <param name="scaled"></param> /// <returns></returns> public Timer SetIgnoreTimeScale(bool ignoreTimeScale) { type = ignoreTimeScale ? TimeDeltaType.TimeScaleIndependent : TimeDeltaType.TimeScaleDependent; return(this); }
protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext) { try { HasReport = false; bool critical = false; if (ParentWorkflow.InternalParameters.ContainsKey("Reports")) { //Get the reports and generate the file. string accountName = "Unknown"; if (ParentWorkflow.InternalParameters.ContainsKey("AccountName")) { accountName = ParentWorkflow.InternalParameters["AccountName"].ToString(); } string outputDir = String.Empty; if (!ParentWorkflow.Parameters.ContainsKey("DefaultReportDirectory")) { outputDir = @"c:\temp"; } else { outputDir = ParentWorkflow.Parameters["DefaultReportDirectory"].ToString(); } TimeDeltaType type = TimeDeltaType.General; if (ParentWorkflow.InternalParameters.ContainsKey("TimeDeltaType")) { type = (TimeDeltaType)ParentWorkflow.InternalParameters["TimeDeltaType"]; } string repType = GetReportTypeString(type); string alertType = GetAlertTypeString(); string mainMeasure = String.Empty; if (ParentWorkflow.Parameters.Contains("MainMeasure")) { mainMeasure = ParentWorkflow.Parameters["MainMeasure"].ToString(); } string fileName = alertType + "_" + repType + "_" + accountName + "_" + DateTime.Now.ToString("yyyyMMdd") + ".xlsx"; string dir = String.Empty; if (mainMeasure != String.Empty) { fileName = mainMeasure + "_" + fileName; } if (!outputDir.EndsWith(@"\")) { outputDir += @"\"; } dir = outputDir; outputDir += fileName; string additionalMeasures = String.Empty; if (ParentWorkflow.Parameters.ContainsKey("AdditionalMeasures")) { additionalMeasures = ParentWorkflow.Parameters["AdditionalMeasures"].ToString(); } //First create the excel workbook string wbFileName = @"c:\temp\ReportTemplate.xlsx"; wbFileName = AppSettings.GetAbsolute("Easynet.Edge.Alerts.TemplateFileName"); if (ParentWorkflow.Parameters.ContainsKey("TemplateFileName")) { wbFileName = dir + ParentWorkflow.Parameters["TemplateFileName"].ToString(); } FileInfo newFile = new FileInfo(outputDir); FileInfo template = new FileInfo(wbFileName); using (ExcelPackage ep = new ExcelPackage(newFile, template)) { ExcelWorkbook ew = ep.Workbook; Hashtable reps = (Hashtable)ParentWorkflow.InternalParameters["Reports"]; IDictionaryEnumerator ereps = reps.GetEnumerator(); AlertMeasure main = GetMainMeasure(); StringBuilder sb = new StringBuilder(); while (ereps.MoveNext()) { HasReport = true; Reports reports = (Reports)ereps.Value; reports.AccountName = accountName; reports.Generate(ref ew, (EntityTypes)ereps.Key, main, additionalMeasures); } //Do another loop - to update one cell in each tab. ereps.Reset(); while (ereps.MoveNext()) { Reports reports = (Reports)ereps.Value; reports.Finalize(ref ew); if (reports.CriticalThreshold) { critical = reports.CriticalThreshold; } } ep.Save(); ParentWorkflow.InternalParameters.Add("MessageFileName", outputDir); } } PrepareMessage(critical); if (!HasReport) { Console.WriteLine("AlertEngine Says: Nothing to report."); } } catch (Exception ex) { Console.WriteLine("Exception at Master Report: " + ex.ToString()); } return(ActivityExecutionStatus.Closed); }