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; }
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); }
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); //} }