public static void LogToDatabase(string logType, string logMessage) { LogMessageRepository rep = new LogMessageRepository(); LogMessage dbLog = new LogMessage(); dbLog.LogType = logType; dbLog.LogContent = logMessage; dbLog.LogDate = DateTime.Now; using (var session = JMMService.SessionFactory.OpenSession()) { rep.Save(session, dbLog); } logger.Info(string.Format("{0} - {1}", logType, logMessage)); }
public List<Contract_LogMessage> GetLogMessages(string logType) { List<Contract_LogMessage> retLogs = new List<Contract_LogMessage>(); try { List<LogMessage> logs = null; LogMessageRepository repIgnore = new LogMessageRepository(); using (var session = JMMService.SessionFactory.OpenSession()) { if (string.IsNullOrEmpty(logType)) logs = repIgnore.GetAll(session); else logs = repIgnore.GetByLogType(session, logType); foreach (LogMessage log in logs) retLogs.Add(log.ToContract()); } } catch (Exception ex) { logger.ErrorException(ex.ToString(), ex); } return retLogs; }
public static void CheckForLogClean() { int freqHours = 24; // check for any updated anime info every 12 hours ScheduledUpdateRepository repSched = new ScheduledUpdateRepository(); AniDB_AnimeRepository repAnime = new AniDB_AnimeRepository(); ScheduledUpdate sched = repSched.GetByUpdateType((int)ScheduledUpdateType.LogClean); if (sched != null) { // if we have run this in the last 24 hours and are not forcing it, then exit TimeSpan tsLastRun = DateTime.Now - sched.LastUpdate; if (tsLastRun.TotalHours < freqHours) return; } // files which have been hashed, but don't have an associated episode LogMessageRepository repVidLocals = new LogMessageRepository(); DateTime logCutoff = DateTime.Now.AddDays(-30); //DateTime logCutoff = DateTime.Now.AddMinutes(-45); using (var session = JMMService.SessionFactory.OpenSession()) { foreach (LogMessage log in repVidLocals.GetAll(session)) { if (log.LogDate < logCutoff) repVidLocals.Delete(session, log.LogMessageID); } } // now check for any files which have been manually linked and are less than 30 days old if (sched == null) { sched = new ScheduledUpdate(); sched.UpdateType = (int)ScheduledUpdateType.LogClean; sched.UpdateDetails = ""; } sched.LastUpdate = DateTime.Now; repSched.Save(sched); }