public static DEditorStatsResponse Read(Dictionary<byte, object> par)
        {
            var res = new DEditorStatsResponse();
            res.TopicId = (int) par[(byte) DiscussionParamKey.ChangedTopicId];
            res.NumClusters = (int) par[(byte) DiscussionParamKey.NumClusters];
            res.NumClusteredBadges = (int) par[(byte) DiscussionParamKey.NumClusteredBadges];
            res.NumLinks = (int) par[(byte) DiscussionParamKey.NumLinks];
            res.ListOfClusterIds = (int[]) par[(byte) DiscussionParamKey.ArrayOfInts];
            res.ListOfLinkIds = (int[]) par[(byte) DiscussionParamKey.ArrayOfInts2];

            return res;
        }
Exemple #2
0
        public static DEditorStatsResponse Read(Dictionary <byte, object> par)
        {
            var res = new DEditorStatsResponse();

            res.TopicId            = (int)par[(byte)DiscussionParamKey.ChangedTopicId];
            res.NumClusters        = (int)par[(byte)DiscussionParamKey.NumClusters];
            res.NumClusteredBadges = (int)par[(byte)DiscussionParamKey.NumClusteredBadges];
            res.NumLinks           = (int)par[(byte)DiscussionParamKey.NumLinks];
            res.ListOfClusterIds   = (int[])par[(byte)DiscussionParamKey.ArrayOfInts];
            res.ListOfLinkIds      = (int[])par[(byte)DiscussionParamKey.ArrayOfInts2];

            return(res);
        }
Exemple #3
0
        private void dEditorReportResponse(DEditorStatsResponse stats)
        {
            //process
            var topic = _ctx.Topic.FirstOrDefault(t0 => t0.Id == stats.TopicId);

            int numSrc;
            int numComments;
            int numImages;
            int numScreenshots;
            int numPdfs;
            int numYoutubes;
            ArgPointTotalsOverTopic(_reportParams, topic, out numSrc, out numComments,
                                    out numImages, out numPdfs, out numScreenshots, out numYoutubes);

            _allTopicsReport.numClusters += stats.NumClusters;
            _allTopicsReport.numClusteredBadges += stats.NumClusteredBadges;
            _allTopicsReport.numLinks += stats.NumLinks;
            _allTopicsReport.numSources += numSrc;
            _allTopicsReport.numComments += numComments;
            _allTopicsReport.numImages += numImages;
            _allTopicsReport.numPDFs += numPdfs;
            _allTopicsReport.numYoutubes += numYoutubes;
            _allTopicsReport.numScreenshots += numScreenshots;
            _allTopicsReport.cumulativeDuration += topic.CumulativeDuration;
            var numArgPoints = topic.ArgPoint.Count();
            _allTopicsReport.numPoints += numArgPoints;
            var numPointsWithDescription = topic.ArgPoint.Where(ap0 => ap0.Description != null && ap0.Description.Text != "Description").Count();
            _allTopicsReport.numPointsWithDescription += numPointsWithDescription;
            //num media
            var nMedia = 0;
            foreach (var ap in topic.ArgPoint)
                nMedia += ap.Attachment.Count();
            _allTopicsReport.numMediaAttachments += nMedia;

            var report = new TopicReport(topic, stats.NumClusters, stats.NumClusteredBadges,
                                         stats.NumLinks, numSrc, numComments,
                                         topic.CumulativeDuration, stats.ListOfClusterIds,
                                         stats.ListOfLinkIds, numArgPoints,
                                         numPointsWithDescription, nMedia,
                                         numImages, numPdfs, numScreenshots, numYoutubes);

            _topicReports.Add(report);
            if (_topicReportReady != null)
                _topicReportReady(report);

            if (++_nProcessedTopics >= topics.Count())
            {
                _clientRT.dEditorReportResponse -= dEditorReportResponse;

                //all topics processed, request clusters 
                bool hasClusters = false;
                bool hasLinks = false;
                foreach (var topicReport in _topicReports)
                {
                    foreach (var clustId in topicReport.clusterIds)
                    {
                        _clientRT.SendClusterStatsRequest(clustId, topicReport.topic.Id);
                        hasClusters = true;
                    }
                    foreach (var linkId in topicReport.linkIds)
                    {
                        _clientRT.SendLinkStatsRequest(linkId, topicReport.topic.Id);
                        hasLinks = true;
                    }
                }
                if (!hasClusters && !hasLinks)
                    finalizeReport();
            }
            //else
            //{
            //    UISharedRTClient.Instance.clienRt.SendDEditorRequest(topics[nextTopicIdx++].Id);  
            //}
        }