コード例 #1
0
        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);
                }
            }
        }