private void SetTimeDeltaType(TimeDeltaType type)
 {
     if (!ParentWorkflow.InternalParameters.ContainsKey("TimeDeltaType"))
     {
         ParentWorkflow.InternalParameters.Add("TimeDeltaType", type);
     }
 }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
 /// <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);
 }
Exemplo n.º 4
0
        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);
        }