예제 #1
0
        public static DataTable GetLogEntries(DateTime startDateTime, DateTime endDateTime)
        {
            DataTable fullLogTable = EventLogTableMgr.GetEventLog();
            DataTable filteredlog  = null;

            using (var tempLog = new DataTable())
            {
                tempLog.Columns.Add("EventId", Type.GetType("System.Int32"));
                tempLog.Columns.Add("TimeStamp", Type.GetType("System.String"));
                tempLog.Columns.Add("Category", Type.GetType("System.String"));
                tempLog.Columns.Add("Message", Type.GetType("System.String"));
                int      count = 0;
                DateTime dateTime;
                for (int i = 0; i < fullLogTable.Rows.Count - 1; i++)
                {
                    dateTime = DateTime.Parse(fullLogTable.Rows[i]["TimeStamp"].ToString());
                    if (dateTime >= startDateTime && dateTime <= endDateTime)
                    {
                        tempLog.Rows.Add(new Object[] { count++.ToString(), fullLogTable.Rows[i]["TimeStamp"],
                                                        fullLogTable.Rows[i]["Category"], fullLogTable.Rows[i]["Message"] });
                    }
                }
                filteredlog = tempLog;
            }
            return(filteredlog);
        }
예제 #2
0
        public static void AddLogEntry(LogCategory category, string msg)
        {
            LogEntry logEntry = new LogEntry()
            {
                EventId       = Index++,
                EntryDateTime = DateTime.Now,
                Category      = category,
                Message       = msg
            };

            logViewerCtrl.AddLogEntry(logEntry);
            EventLogTableMgr.SaveLogEntryToDB(logEntry);
        }
예제 #3
0
        private static void CreateDatabaseTables()
        {
            string filename = DBAdmin.CreateDBFile();

            if (EventLogTableMgr.CreateEventLogDBTable())
            {
                Logger.AddLogEntry(LogCategory.INFO, "Created Database file \'" + filename + "\'.");
            }
            SettingsTableMgr.CreateSettingsDBTable();
            AudioClipsTableMgr.CreateAudioClipsDBTable();
            TimeTriggerClipsTableMgr.CreateTimeTriggerClipsDBTable();
            RulesetsTableMgr.CreateRulesetsDBTable();
            RulesTableMgr.CreateRulesetRulesDBTable();
            SessionsTableMgr.CreateSessionsDBTable();
            SessionClipsTableMgr.CreateSessionsDBTable();
            OnlineVoicesTableMgr.CreateOnlineVoicesDBTable();
        }
예제 #4
0
        private static DataTable TrimLogEntries(DataTable dataTable)
        {
            DataTable trimmedLog = null;

            using (var tempLog = new DataTable())
            {
                tempLog.Columns.Add("EventId", Type.GetType("System.Int32"));
                tempLog.Columns.Add("TimeStamp", Type.GetType("System.String"));
                tempLog.Columns.Add("Category", Type.GetType("System.String"));
                tempLog.Columns.Add("Message", Type.GetType("System.String"));
                int trimCount = dataTable.Rows.Count - MaxLogEntries + 100; // remove 100 entries
                int count     = 0;
                for (int i = trimCount; i < dataTable.Rows.Count - 1; i++)
                {
                    tempLog.Rows.Add(new Object[] { count++.ToString(), dataTable.Rows[i]["TimeStamp"],
                                                    dataTable.Rows[i]["Category"], dataTable.Rows[i]["Message"] });
                }
                trimmedLog = tempLog;
            }
            EventLogTableMgr.SaveTrimmedLogToDB(trimmedLog);
            return(trimmedLog);
        }
예제 #5
0
        internal static bool LoadLogEntries()
        {
            DataTable dataTable = EventLogTableMgr.GetEventLog();

            if (dataTable != null)
            {
                if (dataTable.Rows.Count > MaxLogEntries)
                {
                    dataTable = TrimLogEntries(dataTable);
                }
                int eventId = 0;
                foreach (DataRow dr in dataTable.Rows)
                {
                    string eventIdStr = dr["EventId"].ToString();
                    if (Int32.TryParse(eventIdStr, out eventId))
                    {
                        logViewerCtrl.AddLogEntry(new LogEntry()
                        {
                            EventId       = eventId,
                            EntryDateTime = DateTime.Parse(dr["TimeStamp"].ToString()),
                            Category      = GetCategory(dr["Category"].ToString()),
                            Message       = dr["Message"].ToString()
                        });
                    }
                    else
                    {
                        return(false);
                    }
                }
                Index = eventId + 1; // set index to next eventId
            }
            else
            {
                return(false);
            }
            return(true);
        }