コード例 #1
0
        public object GetUserActivity(ActivityDataModel data)
        {
            using (var db = new SqlAuditLogDataContext())
            {
                AuditGraph ret = new AuditGraph();
                Dictionary <string, AuditGraphEntry> entries = new Dictionary <string, AuditGraphEntry>();
                int             max    = 0;
                DateTime        start  = DateTime.Parse(data.Start);
                DateTime        end    = DateTime.Parse(data.End).AddDays(1);
                TimeSpan        range  = end.Subtract(start);
                var             filter = BuildArrayQuery(data.Filters, data.Field, data.Databases);
                List <DateTime> dates  = new List <DateTime>();
                for (int i = 0; i <= range.Days; i++)
                {
                    dates.Add(start.AddDays(i));
                }
                foreach (string eventType in data.EventTypes)
                {
                    AuditGraphEntry gentry = new AuditGraphEntry()
                    {
                        Color = GetEventType(eventType).Color
                    };
                    foreach (var date in dates)
                    {
                        var query = "SELECT count(*) FROM [dbo].[AuditEntry] " +
                                    "WHERE {0} <= [Timestamp] AND [Timestamp] <= {1} AND [EventId] = {2} AND " +
                                    filter;

                        var sqlAuditLogEntries = db.ExecuteQuery <int>(
                            query,
                            date,
                            date.AddDays(1),
                            eventType)
                                                 .ToList();
                        var count = sqlAuditLogEntries.First();
                        if (count > max)
                        {
                            max = count;
                        }
                        gentry.Coordinates.Add(new AuditGraphCoordinates()
                        {
                            X = date.ToString("yyyy-MM-dd"), Y = count.ToString()
                        });
                    }
                    entries[eventType] = gentry;
                }

                ret.YMax         = max.ToString();
                ret.YMin         = "0";
                ret.XMin         = start.ToString("yyyy-MM-dd");
                ret.XMax         = end.ToString("yyyy-MM-dd");
                ret.GraphEntries = entries;
                ret.LogEntries   = null;              // timeSet;
                return(ret);
            }
        }
コード例 #2
0
        private object GetUserActivity(HttpContextBase context)
        {
            AuditGraph    ret    = new AuditGraph();
            var           data   = GetPostData(context);
            int           max    = 0;
            DateTime      start  = DateTime.Parse(data.start);
            DateTime      end    = DateTime.Parse(data.end);
            TimeSpan      range  = end.Subtract(start);
            var           filter = BuildArrayQuery(data.filters, data.field);
            List <string> dates  = new List <string>();

            for (int i = 0; i <= range.Days; i++)
            {
                dates.Add(start.AddDays(i).ToString("yyyyMMdd"));
            }
            var searcher = AuditLogger.Current.GetSearcher();
            Dictionary <string, AuditGraphEntry> entries = new Dictionary <string, AuditGraphEntry>();

            foreach (string eventType in data.eventTypes)
            {
                AuditGraphEntry gentry = new AuditGraphEntry()
                {
                    Color = AuditLogger.Current.GetEventType(eventType).Color
                };
                foreach (string date in dates)
                {
                    var results = AuditLogger.Current.Query($"date:{date} AND event:{eventType} {(filter.Length > 0 ? "AND ": "") + filter}", searcher);
                    if (results.TotalHits > max)
                    {
                        max = results.TotalHits;
                    }
                    gentry.Coordinates.Add(new AuditGraphCoordinates()
                    {
                        X = date.Insert(6, "-").Insert(4, "-"), Y = results.TotalHits.ToString()
                    });
                }
                entries[eventType] = gentry;
            }

            ret.YMax = max.ToString();
            ret.YMin = "0";
            ret.XMin = start.ToString("yyyy-MM-dd");
            ret.XMax = end.ToString("yyyy-MM-dd");
            //ret.GraphEntries = activity.Keys.Select(x => new AuditGraphEntry() {X = x, Y = activity[x].ToString()}).ToList();
            ret.GraphEntries = entries;
            ret.LogEntries   = null;          // timeSet;
            return(ret);
        }
コード例 #3
0
        public object GetUserActivity(ActivityDataModel data)
        {
            AuditGraph    ret    = new AuditGraph();
            int           max    = 0;
            DateTime      start  = DateTime.Parse(data.Start);
            DateTime      end    = DateTime.Parse(data.End);
            TimeSpan      range  = end.Subtract(start);
            var           filter = BuildArrayQuery(data.Filters, data.Field, data.Databases);
            List <string> dates  = new List <string>();

            for (int i = 0; i <= range.Days; i++)
            {
                dates.Add(start.AddDays(i).ToString("yyyyMMdd"));
            }
            var searcher = GetSearcher();
            Dictionary <string, AuditGraphEntry> entries = new Dictionary <string, AuditGraphEntry>();

            foreach (string eventType in data.EventTypes)
            {
                AuditGraphEntry gentry = new AuditGraphEntry()
                {
                    Color = GetEventType(eventType).Color
                };
                foreach (string date in dates)
                {
                    var results = Query($"date:{date} AND event:{eventType} {(filter.Length > 0 ? "AND " : "") + filter}", searcher);
                    if (results.TotalHits > max)
                    {
                        max = results.TotalHits;
                    }
                    gentry.Coordinates.Add(new AuditGraphCoordinates()
                    {
                        X = date.Insert(6, "-").Insert(4, "-"), Y = results.TotalHits.ToString()
                    });
                }
                entries[eventType] = gentry;
            }

            ret.YMax         = max.ToString();
            ret.YMin         = "0";
            ret.XMin         = start.ToString("yyyy-MM-dd");
            ret.XMax         = end.ToString("yyyy-MM-dd");
            ret.GraphEntries = entries;
            ret.LogEntries   = null;          // timeSet;
            return(ret);
        }