public virtual IEnumerable counters() { ActivityStatistics.Source[] sources = new[] { new ActivityStatistics.Source("EP404000", null, Sprite.Main.Task), new ActivityStatistics.Source("EP404100", "Events", Sprite.Main.Event), new ActivityStatistics.Source("CO409000", null, Sprite.Main.MailReceive), new ActivityStatistics.Source("EP503010", null, Sprite.Main.Roles, new[] { typeof(EPApproval), typeof(UserPreferences) }), }; var result = new List <PX.Data.EP.ActivityService.Total>(); foreach (var source in sources) { ActivityStatistics statistics = ActivityStatistics.GetFromSlot(source); if (statistics != null && statistics.Count > 0) { var node = PXSiteMap.Provider.FindSiteMapNodeByScreenID(source.SrceenID); if (node == null || PXAccess.VerifyRights(node.ScreenID) != true) { continue; } var rec = new PX.Data.EP.ActivityService.Total(); rec.ScreenID = source.SrceenID; rec.ImageKey = source.ImageKey; rec.ImageSet = source.ImageSet; rec.Url = node.Url; rec.Title = node.Title; rec.Count = statistics.Count; rec.NewCount = statistics.UnreadCount; yield return(rec); } } }