示例#1
0
        public void ShouldNotOpenDashboardReportIfOptionIsProvided(ReportType?reportType)
        {
            var reporters = new[] { Reporter.Dashboard };
            var options   = new StrykerOptions
            {
                ReportTypeToOpen = reportType,
                DashboardApiKey  = "Access_Token",
                ProjectName      = "github.com/JohnDoe/project",
                ProjectVersion   = "version/human/readable",
                Reporters        = reporters
            };
            var mockProcess         = new Mock <IWebbrowserOpener>();
            var dashboardClientMock = new Mock <IDashboardClient>();

            dashboardClientMock.Setup(x => x.PublishReport(It.IsAny <JsonReport>(), "version/human/readable"))
            .Returns(Task.FromResult("https://dashboard.com"));

            var reporter     = new DashboardReporter(options, dashboardClientMock.Object, processWrapper: mockProcess.Object);
            var mutationTree = JsonReportTestHelper.CreateProjectWith();

            reporter.OnAllMutantsTested(mutationTree);

            // Check if browser open action is invoked
            mockProcess.VerifyNoOtherCalls();
        }
示例#2
0
 /// <summary>
 /// Sets the usage reporter level
 /// </summary>
 /// <param name="maxreportlevel">The maximum level of events to report, or null to set default.</param>
 /// <param name="disable"><c>True</c> to disable usage reporting<c>false</c> otherwise.</param>
 public static void SetReportLevel(ReportType?maxreportlevel, bool disable)
 {
     if (disable)
     {
         Forced_Disabled = true;
         ShutDown();
     }
     else
     {
         Forced_Disabled       = false;
         Cached_MaxReportLevel = maxreportlevel;
         Initialize();
     }
 }
示例#3
0
        }         // constructor

        public void ExecuteReportHandler(DateTime dToday, ReportType?nReportTypeToExecute)
        {
            SortedDictionary <string, Report> reportList = Report.GetScheduledReportsList(DB);

            var  sender = new ReportDispatcher(DB, this);
            int  reportsToHandleParalely = 10;
            bool handle = true;

            try {
                do
                {
                    if (reportList.Count < reportsToHandleParalely)
                    {
                        reportsToHandleParalely = reportList.Count;
                    }

                    if (reportList.Count == 0)
                    {
                        handle = false;
                    }

                    if (reportsToHandleParalely > 0)
                    {
                        HandleReportsBulk(reportList, reportsToHandleParalely, dToday, nReportTypeToExecute, sender);
                    }
                } while (handle);
            } catch (AggregateException ae) {
                ae.Handle(x => {
                    if (x is ArgumentNullException)
                    {
                        Error("Parallel Exception ArgumentNullException {0}", x);
                        // manage the exception.
                        return(true);     // do not stop the program
                    }                     // if

                    if (x is UnauthorizedAccessException)
                    {
                        Error("Parallel Exception UnauthorizedAccessException {0}", x);
                        // manage the access error.
                        return(true);
                    }                     // if

                    Error("Parallel Exception {0}", x);

                    // Any other exception here
                    return(false); // Let anything else stop the application.
                });
            }                      // try
        }                          // ExecuteReportHandler
示例#4
0
        public void ShouldNotOpenHtmlReportIfOptionIsProvided(ReportType?reportType)
        {
            var mockProcess    = new Mock <IWebbrowserOpener>();
            var mockFileSystem = new MockFileSystem();
            var options        = new StrykerOptions
            {
                ReportTypeToOpen = reportType,
                OutputPath       = Directory.GetCurrentDirectory()
            };

            var reporter     = new HtmlReporter(options, mockFileSystem, processWrapper: mockProcess.Object);
            var mutationTree = JsonReportTestHelper.CreateProjectWith();

            reporter.OnAllMutantsTested(mutationTree);

            // Check if browser open action is invoked
            mockProcess.VerifyNoOtherCalls();
        }
示例#5
0
        private void ReportButton_OnChecked(object sender, RoutedEventArgs e)
        {
            if (RadioButtonActiveReports.IsChecked == true)
            {
                SelectedReportType = ReportType.ActiveReports14;
                return;
            }

            if (RadioButtonStimulsoft.IsChecked == true)
            {
                SelectedReportType = ReportType.Stimulsoft;
                return;
            }

            if (RadioButtonFastReport.IsChecked == true)
            {
                SelectedReportType = ReportType.FastReport;
            }
        }
示例#6
0
        }                          // ExecuteReportHandler

        private void HandleReportsBulk(
            SortedDictionary <string, Report> reportList,
            int reportsToHandleParalely,
            DateTime dToday,
            ReportType?nReportTypeToExecute,
            ReportDispatcher sender
            )
        {
            var reportsToHandle = reportList.Take(reportsToHandleParalely).ToList();

            foreach (var rep in reportsToHandle)
            {
                reportList.Remove(rep.Key);
            }

            Parallel.ForEach(reportsToHandle, report => {
                HandleOneReport(dToday, nReportTypeToExecute, report.Value, sender);
            });   // foreach
        }         // HandleReportsBulk
示例#7
0
        private void rb_CheckedChanged(object sender, EventArgs e)
        {
            button1.Enabled = true;
            if (rbActiveReport.Checked)
            {
                SelectedReportType = ReportType.ActiveReports14;
                return;
            }

            if (rbStimulsoft.Checked)
            {
                SelectedReportType = ReportType.Stimulsoft;
                return;
            }

            if (rbFastReport.Checked)
            {
                SelectedReportType = ReportType.FastReport;
            }
        }
示例#8
0
        public static void Main(string[] args)
        {
            var log = new LegacyLog();
            var env = new Ezbob.Context.Environment(log);

            DateTime dNow = DateTime.Today;

            var oArgs = new Queue <string>(args);

            ReportType?nReportToExecute = null;

            bool bStdSet  = false;
            bool bDateSet = false;

            while (oArgs.Count > 0)
            {
                string sArg = oArgs.Dequeue();

                switch (sArg)
                {
                case "--std":
                    bStdSet = true;
                    dNow    = dNow.AddDays(-1);
                    break;

                case "--date":
                    bDateSet = true;
                    string sDate = (oArgs.Count > 0) ? oArgs.Dequeue() : string.Empty;
                    DateTime.TryParseExact(sDate, "yyyy-MM-dd", new CultureInfo("en-GB"), DateTimeStyles.None, out dNow);
                    break;

                case "--report":
                    if (oArgs.Count > 0)
                    {
                        ReportType nRptType;
                        if (Enum.TryParse(oArgs.Dequeue(), true, out nRptType))
                        {
                            nReportToExecute = nRptType;
                        }
                    }     // if
                    break;
                }         // switch
            }             // while

            if (bDateSet && bStdSet)
            {
                log.Fatal("Both --std and --date set. There can be  only one!");
                throw new Exception("Both --std and --date set. There can be  only one!");
            }             // if

            log.Info("Report delivery daemon started...");

            log.Info("Current environment is {0}", env.Context);
            log.Info("Running with current date {0}", dNow.ToString("MMMM d yyyy H:mm:ss"));

            var reportsHandler = new EmailReportHandler(new SqlConnection(log), log);

            reportsHandler.ExecuteReportHandler(dNow, nReportToExecute);

            log.Info("Report delivery daemon completed all the tasks.");
        } // Main
示例#9
0
 /// <summary>
 /// Sets the usage reporter level
 /// </summary>
 /// <param name="maxreportlevel">The maximum level of events to report, or null to set default.</param>
 /// <param name="disable"><c>True</c> to disable usage reporting<c>false</c> otherwise.</param>
 public static void SetReportLevel(ReportType? maxreportlevel, bool disable)
 {
     if (disable)
     {
         Forced_Disabled = true;
         ShutDown();
     }
     else
     {
         Forced_Disabled = false;
         Cached_MaxReportLevel = maxreportlevel;
         Initialize();
     }
 }
示例#10
0
        }         // HandleReportsBulk

        private void HandleOneReport(
            DateTime dToday,
            ReportType?nReportTypeToExecute,
            Report report,
            ReportDispatcher sender
            )
        {
            try {
                bool bExecute = (nReportTypeToExecute == null) || (report.Type == nReportTypeToExecute.Value);

                if (!bExecute)
                {
                    Debug(
                        "Skipping {0} report: only {1} requested.",
                        report.Title,
                        nReportTypeToExecute.Value.ToString()
                        );
                    return;
                }                 // if

                Debug("Generating {0} report...", report.Title);

                switch (report.Type)
                {
                case ReportType.RPT_LOAN_STATS:
                    sender.Dispatch(
                        "loan_stats",
                        dToday,
                        null,
                        new LoanStats(DB, this).Xls(),
                        ReportDispatcher.ToDropbox
                        );
                    break;

                case ReportType.RPT_TRAFFIC_REPORT:
                    DateTime dYesterday = dToday.AddDays(-1);
                    HandleGenericReport(report, dYesterday, sender, BuildTrafficReport, BuildTrafficReportXls, dToday);
                    break;

                case ReportType.RPT_NOT_AUTO_APPROVED:
                    HandleGenericReport(report, dToday, sender, BuildNotAutoApprovedReport, BuildNotAutoApprovedXls);
                    break;

                case ReportType.RPT_EARNED_INTEREST:
                    HandleGenericReport(report, dToday, sender, BuildEarnedInterestReport, BuildEarnedInterestXls);
                    break;

                case ReportType.RPT_EARNED_INTEREST_ALL_CUSTOMERS:
                    HandleGenericReport(report, dToday, sender, BuildEarnedInterestAllCustomersReport, BuildEarnedInterestAllCustomersXls);
                    break;

                case ReportType.RPT_FINANCIAL_STATS:
                    HandleGenericReport(report, dToday, sender, BuildFinancialStatsReport, BuildFinancialStatsXls);
                    break;

                case ReportType.RPT_LOANS_GIVEN:
                    HandleGenericReport(report, dToday, sender, BuildLoansIssuedReport, BuildLoansIssuedXls);
                    break;

                case ReportType.RPT_CCI:
                    HandleGenericReport(report, dToday, sender, BuildCciReport, BuildCciXls);
                    break;

                case ReportType.RPT_UI_REPORT:
                    HandleGenericReport(report, dToday, sender, BuildUiReport, BuildUiXls);
                    break;

                case ReportType.RPT_UI_EXT_REPORT:
                    HandleGenericReport(report, dToday, sender, BuildUiExtReport, BuildUiExtXls);
                    break;

                case ReportType.RPT_ACCOUNTING_LOAN_BALANCE:
                    HandleGenericReport(report, dToday, sender, BuildAccountingLoanBalanceReport, BuildAccountingLoanBalanceXls);
                    break;

                case ReportType.RPT_MARKETING_CHANNELS_SUMMARY:
                    HandleGenericReport(report, dToday, sender, BuildMarketingChannelsSummaryReport, BuildMarketingChannelsSummaryXls);
                    break;

                case ReportType.RPT_STRATEGY_RUNNING_TIME:
                    HandleGenericReport(report, dToday, sender, BuildStrategyRunningTimeReport, BuildStrategyRunningTimeXls);
                    break;

                case ReportType.RPT_NEW_UNMATCHED_PAYMENTS:
                    HandleGenericReport(report, dToday, sender, BuildNewUnmatchedPaymentsReport, BuildNewUnmatchedPaymentsXls);
                    break;

                default:
                    HandleGenericReport(report, dToday, sender, null, null);
                    break;
                }                 // switch

                Debug("Generating {0} report complete.", report.Title);
            } catch (Exception ex) {
                Error("Generating {0} report failed \n {1}.", report.Title, ex);

                sender.Dispatch("Report to mail tool: error generating report",
                                DateTime.UtcNow,
                                new Body()
                                .Add <Class>("Body")
                                .Append(new H1()
                                        .Append(new Text(string.Format("Error Generating/Sending report {0}", report.Title)))),
                                null,
                                "*****@*****.**"
                                );
            }     // try
        }         // HandleOneReport
示例#11
0
 public GetReportMetadataRequest(ReportType reportType)
     : this()
 {
     this.ReportType = reportType;
 }