Example #1
0
        public void reportGenerated(ReportCollector sender, object args)
        {
            txtLastSync.Text = DateTime.Now.ToString();

            TreeViewItem topicsNode = null;
            TreeViewItem usersNode = null;
            TreeViewItem eventsNode = null;
            if (args == leftReportTree)
            {
                _reportCollector1 = sender;
                topicsNode = topicSection1;
                usersNode = usersSection1;
                eventsNode = eventSection1;
                reportHeader1.SetParticipants(sender.Participants);
            }
            else if (args == rightReportTree)
            {
                _reportCollector2 = sender;
                topicsNode = topicSection2;
                usersNode = usersSection2;
                eventsNode = eventSection2;
                reportHeader2.SetParticipants(sender.Participants);
            }
            else
                throw new NotSupportedException();

            topicsNode.Items.Clear();
            foreach (var topicReport in sender.TopicReports)
                topicsNode.Items.Add(GetTopicReport(topicReport, sender));

            if (_reportCollector1 != null && _reportCollector2 != null)
            {
                var requiredUsers = StatsUtils.Union(reportHeader1.getReportParams(false).requiredUsers,
                                                     reportHeader2.getReportParams(false).requiredUsers);
                var totals = ReportCollector.GetTotalTopicsReports(_reportCollector1.TopicReports.First(),
                                                                   _reportCollector2.TopicReports.First(),
                                                                   requiredUsers);
                topicsNode.Items.Add(GetTotalTopicSummary(totals));
            }

            topicsNode.Items.Add(GetAttachmentsSummary(sender));

            topicsNode.Items.Add(StatsUtils.GetEventTotals(sender.EventTotals));

            usersNode.Items.Clear();
            foreach (var report in sender.ArgPointReports.Values)
            {
                EventUserReport eventReport = null;
                if (report.Count > 0)
                {
                    eventReport = sender.PerUserEventReportDict.ContainsKey(report.First().user.Id)
                                      ? sender.PerUserEventReportDict[report.First().user.Id]
                                      : null;
                }
                usersNode.Items.Add(GetUserSummary(report, eventReport));
            }

            eventsNode.Items.Clear();
            foreach (var ev in sender.StatsEvents)
                eventsNode.Items.Add(GetEvent(ev, sender.GetCtx()));
            usersNode.Items.Add(GetUserOneTopicSummary(sender.TotalArgPointReport, true));
        }
        public void reportGenerated(ReportCollector sender, object args)
        {
            txtLastSync.Text = DateTime.Now.ToString();

            TreeViewItem topicsNode = null;
            TreeViewItem usersNode  = null;
            TreeViewItem eventsNode = null;

            if (args == leftReportTree)
            {
                _reportCollector1 = sender;
                topicsNode        = topicSection1;
                usersNode         = usersSection1;
                eventsNode        = eventSection1;
                reportHeader1.SetParticipants(sender.Participants);
            }
            else if (args == rightReportTree)
            {
                _reportCollector2 = sender;
                topicsNode        = topicSection2;
                usersNode         = usersSection2;
                eventsNode        = eventSection2;
                reportHeader2.SetParticipants(sender.Participants);
            }
            else
            {
                throw new NotSupportedException();
            }

            topicsNode.Items.Clear();
            foreach (var topicReport in sender.TopicReports)
            {
                topicsNode.Items.Add(GetTopicReport(topicReport, sender));
            }

            if (_reportCollector1 != null && _reportCollector2 != null)
            {
                var requiredUsers = StatsUtils.Union(reportHeader1.getReportParams(false).requiredUsers,
                                                     reportHeader2.getReportParams(false).requiredUsers);
                var totals = ReportCollector.GetTotalTopicsReports(_reportCollector1.TopicReports.First(),
                                                                   _reportCollector2.TopicReports.First(),
                                                                   requiredUsers);
                topicsNode.Items.Add(GetTotalTopicSummary(totals));
            }

            topicsNode.Items.Add(GetAttachmentsSummary(sender));

            topicsNode.Items.Add(StatsUtils.GetEventTotals(sender.EventTotals));

            usersNode.Items.Clear();
            foreach (var report in sender.ArgPointReports.Values)
            {
                EventUserReport eventReport = null;
                if (report.Count > 0)
                {
                    eventReport = sender.PerUserEventReportDict.ContainsKey(report.First().user.Id)
                                      ? sender.PerUserEventReportDict[report.First().user.Id]
                                      : null;
                }
                usersNode.Items.Add(GetUserSummary(report, eventReport));
            }

            eventsNode.Items.Clear();
            foreach (var ev in sender.StatsEvents)
            {
                eventsNode.Items.Add(GetEvent(ev, sender.GetCtx()));
            }
            usersNode.Items.Add(GetUserOneTopicSummary(sender.TotalArgPointReport, true));
        }