From e9c63b81e6ca30cf177438e4c0b622fb87a45827 Mon Sep 17 00:00:00 2001 From: "kay.one" Date: Thu, 21 Apr 2011 19:23:31 -0700 Subject: [PATCH] Added asp.net tick timer Added health monitoring Updated database logging --- IISExpress/AppServer/applicationhost.config | 2 +- NzbDrone.Core.Test/IndexerProviderTest.cs | 3 +- NzbDrone.Core.Test/RepoTest.cs | 13 +- NzbDrone.Core/CentralDispatch.cs | 5 + NzbDrone.Core/Instrumentation/Log.cs | 17 +- NzbDrone.Core/Instrumentation/LogLevel.cs | 12 - .../Instrumentation/SubsonicTarget.cs | 45 +- NzbDrone.Core/NzbDrone.Core.csproj | 2 +- NzbDrone.Core/Providers/EpisodeProvider.cs | 24 +- NzbDrone.Core/Providers/HistoryProvider.cs | 15 +- .../Providers/Indexer/IndexerProviderBase.cs | 33 +- .../Providers/Indexer/NewzbinProvider.cs | 3 +- .../Providers/Indexer/NzbMatrixProvider.cs | 3 +- .../Providers/Indexer/NzbsOrgProvider.cs | 3 +- .../Providers/Indexer/NzbsRUsProvider.cs | 3 +- NzbDrone.Core/Repository/History.cs | 4 +- NzbDrone.Core/WebTimer.cs | 33 + NzbDrone.Web/Controllers/SeriesController.cs | 1 - NzbDrone.Web/Global.asax.cs | 8 +- NzbDrone.Web/NzbDrone.Web.Publish.xml | 724 ++++++++++++------ NzbDrone.Web/NzbDrone.Web.csproj | 34 +- NzbDrone.Web/Views/Log/Index.aspx | 7 +- NzbDrone.Web/log.config | 2 +- NzbDrone.sln | 1 + NzbDrone/IISController.cs | 57 +- NzbDrone/Program.cs | 1 + NzbDrone/app.config | 2 +- 27 files changed, 679 insertions(+), 378 deletions(-) delete mode 100644 NzbDrone.Core/Instrumentation/LogLevel.cs create mode 100644 NzbDrone.Core/WebTimer.cs diff --git a/IISExpress/AppServer/applicationhost.config b/IISExpress/AppServer/applicationhost.config index 6c56a7b72..ac36581f6 100644 --- a/IISExpress/AppServer/applicationhost.config +++ b/IISExpress/AppServer/applicationhost.config @@ -148,7 +148,7 @@ - + diff --git a/NzbDrone.Core.Test/IndexerProviderTest.cs b/NzbDrone.Core.Test/IndexerProviderTest.cs index 4f2723944..302fc7d97 100644 --- a/NzbDrone.Core.Test/IndexerProviderTest.cs +++ b/NzbDrone.Core.Test/IndexerProviderTest.cs @@ -57,8 +57,7 @@ namespace NzbDrone.Core.Test public class MockIndexerProvider : IndexerProviderBase { - public MockIndexerProvider(SeriesProvider seriesProvider, SeasonProvider seasonProvider, EpisodeProvider episodeProvider, ConfigProvider configProvider, HttpProvider httpProvider, IRepository repository, IndexerProvider indexerProvider) - : base(seriesProvider, seasonProvider, episodeProvider, configProvider, httpProvider, repository, indexerProvider) + public MockIndexerProvider(SeriesProvider seriesProvider, SeasonProvider seasonProvider, EpisodeProvider episodeProvider, ConfigProvider configProvider, HttpProvider httpProvider, IndexerProvider indexerProvider, HistoryProvider historyProvider) : base(seriesProvider, seasonProvider, episodeProvider, configProvider, httpProvider, indexerProvider, historyProvider) { } diff --git a/NzbDrone.Core.Test/RepoTest.cs b/NzbDrone.Core.Test/RepoTest.cs index e4050614b..b1a071288 100644 --- a/NzbDrone.Core.Test/RepoTest.cs +++ b/NzbDrone.Core.Test/RepoTest.cs @@ -91,7 +91,8 @@ namespace NzbDrone.Core.Test Assert.AreEqual(message, logItem.Message); Assert.AreEqual(Logger.Name, logItem.Logger); Assert.AreEqual(Logger.Name, logItem.Logger); - Assert.AreEqual(Instrumentation.LogLevel.Info, logItem.Level); + Assert.AreEqual(LogLevel.Info.Name, logItem.Level); + Assert.AreEqual("write_log", logItem.Method); } [Test] @@ -122,10 +123,9 @@ namespace NzbDrone.Core.Test Assert.AreNotEqual(new DateTime(), logItem.Time); Assert.AreEqual(message, logItem.Message); Assert.AreEqual(Logger.Name, logItem.Logger); - Assert.AreEqual(Instrumentation.LogLevel.Error, logItem.Level); + Assert.AreEqual(LogLevel.Error.Name, logItem.Level); Assert.AreEqual(ex.GetType().ToString(), logItem.ExceptionType); - Assert.AreEqual(ex.ToString(), logItem.ExceptionString); - Assert.AreEqual(ex.Message, logItem.ExceptionMessage); + Assert.AreEqual(ex.ToString(), logItem.Exception); } [Test] @@ -156,10 +156,9 @@ namespace NzbDrone.Core.Test Assert.AreNotEqual(new DateTime(), logItem.Time); Assert.AreEqual(ex.Message, logItem.Message); Assert.AreEqual(Logger.Name, logItem.Logger); - Assert.AreEqual(Instrumentation.LogLevel.Error, logItem.Level); + Assert.AreEqual(LogLevel.Error.Name, logItem.Level); Assert.AreEqual(ex.GetType().ToString(), logItem.ExceptionType); - Assert.AreEqual(ex.ToString(), logItem.ExceptionString); - Assert.AreEqual(ex.Message, logItem.ExceptionMessage); + Assert.AreEqual(ex.ToString(), logItem.Exception); } } } \ No newline at end of file diff --git a/NzbDrone.Core/CentralDispatch.cs b/NzbDrone.Core/CentralDispatch.cs index cc96b94f5..e227a57b9 100644 --- a/NzbDrone.Core/CentralDispatch.cs +++ b/NzbDrone.Core/CentralDispatch.cs @@ -131,8 +131,11 @@ namespace NzbDrone.Core _kernel.Bind().To().InTransientScope(); _kernel.Bind().To().InTransientScope(); _kernel.Get().Initialize(); + + new WebTimer().StartTimer(1); } + private static void ForceMigration(IRepository repository) { repository.GetPaged(0, 1); @@ -225,5 +228,7 @@ namespace NzbDrone.Core repository.Update(hd); } } + + } } \ No newline at end of file diff --git a/NzbDrone.Core/Instrumentation/Log.cs b/NzbDrone.Core/Instrumentation/Log.cs index 1ee9905d6..70cad22ee 100644 --- a/NzbDrone.Core/Instrumentation/Log.cs +++ b/NzbDrone.Core/Instrumentation/Log.cs @@ -15,27 +15,16 @@ namespace NzbDrone.Core.Instrumentation public string Logger { get; set; } - [SubSonicNullString] - public string Stack { get; set; } - - [SubSonicNullString] - [SubSonicLongString] - public string ExceptionMessage { get; set; } + public string Method { get; set; } [SubSonicNullString] [SubSonicLongString] - public string ExceptionString { get; set; } + public string Exception { get; set; } [SubSonicNullString] public string ExceptionType { get; set; } - public LogLevel Level { get; set; } + public String Level { get; set; } - //This is needed for Telerik grid binding - [SubSonicIgnore] - public string DisplayLevel - { - get { return Level.ToString(); } - } } } \ No newline at end of file diff --git a/NzbDrone.Core/Instrumentation/LogLevel.cs b/NzbDrone.Core/Instrumentation/LogLevel.cs deleted file mode 100644 index 704a1e06a..000000000 --- a/NzbDrone.Core/Instrumentation/LogLevel.cs +++ /dev/null @@ -1,12 +0,0 @@ -namespace NzbDrone.Core.Instrumentation -{ - public enum LogLevel - { - Trace, - Debug, - Info, - Warn, - Error, - Fatal - } -} \ No newline at end of file diff --git a/NzbDrone.Core/Instrumentation/SubsonicTarget.cs b/NzbDrone.Core/Instrumentation/SubsonicTarget.cs index 6e10f0f3a..2e7510afd 100644 --- a/NzbDrone.Core/Instrumentation/SubsonicTarget.cs +++ b/NzbDrone.Core/Instrumentation/SubsonicTarget.cs @@ -20,11 +20,13 @@ namespace NzbDrone.Core.Instrumentation log.Time = logEvent.TimeStamp; log.Message = logEvent.FormattedMessage; - if (log.Stack != null) + if (logEvent.UserStackFrame != null) { - log.Stack = logEvent.StackTrace.ToString(); + log.Method = logEvent.UserStackFrame.GetMethod().Name; } + + log.Logger = logEvent.LoggerName; if (logEvent.Exception != null) @@ -32,44 +34,13 @@ namespace NzbDrone.Core.Instrumentation if (String.IsNullOrWhiteSpace(log.Message)) log.Message = logEvent.Exception.Message; - log.ExceptionMessage = logEvent.Exception.Message; - log.ExceptionString = logEvent.Exception.ToString(); + log.Exception = logEvent.Exception.ToString(); log.ExceptionType = logEvent.Exception.GetType().ToString(); } - switch (logEvent.Level.Name.ToLower()) - { - case "trace": - { - log.Level = LogLevel.Trace; - break; - } - case "debug": - { - log.Level = LogLevel.Debug; - break; - } - case "info": - { - log.Level = LogLevel.Info; - break; - } - case "warn": - { - log.Level = LogLevel.Warn; - break; - } - case "error": - { - log.Level = LogLevel.Error; - break; - } - case "fatal": - { - log.Level = LogLevel.Fatal; - break; - } - } + + log.Level = logEvent.Level.Name; + _repo.Add(log); } diff --git a/NzbDrone.Core/NzbDrone.Core.csproj b/NzbDrone.Core/NzbDrone.Core.csproj index ea1498bf1..ac032a955 100644 --- a/NzbDrone.Core/NzbDrone.Core.csproj +++ b/NzbDrone.Core/NzbDrone.Core.csproj @@ -162,7 +162,6 @@ - @@ -228,6 +227,7 @@ + diff --git a/NzbDrone.Core/Providers/EpisodeProvider.cs b/NzbDrone.Core/Providers/EpisodeProvider.cs index 88c32bb96..5396499b4 100644 --- a/NzbDrone.Core/Providers/EpisodeProvider.cs +++ b/NzbDrone.Core/Providers/EpisodeProvider.cs @@ -11,10 +11,7 @@ namespace NzbDrone.Core.Providers { public class EpisodeProvider { - //TODO: Remove parsing of the series name, it should be done in series provider - private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); - private readonly HistoryProvider _history; private readonly QualityProvider _quality; private readonly SeasonProvider _seasons; private readonly SeriesProvider _series; @@ -23,13 +20,12 @@ namespace NzbDrone.Core.Providers public EpisodeProvider(IRepository sonicRepo, SeriesProvider seriesProvider, SeasonProvider seasonProvider, TvDbProvider tvDbProvider, - HistoryProvider history, QualityProvider quality) + QualityProvider quality) { _sonicRepo = sonicRepo; _series = seriesProvider; _tvDb = tvDbProvider; _seasons = seasonProvider; - _history = history; _quality = quality; } @@ -59,6 +55,15 @@ namespace NzbDrone.Core.Providers return _sonicRepo.Find(e => e.SeasonId == seasonId); } + public virtual IList GetEpisodeByParseResult(EpisodeParseResult parseResult) + { + return _sonicRepo.Find(e => + e.SeriesId == parseResult.SeriesId && + e.SeasonNumber == parseResult.SeasonNumber && + parseResult.Episodes.Contains(e.EpisodeNumber)); + + } + public virtual String GetSabTitle(EpisodeParseResult parseResult) { //Show Name - 1x01-1x02 - Episode Name @@ -101,7 +106,7 @@ namespace NzbDrone.Core.Providers //Todo: How do we want to handle this really? Episode could be released before information is on TheTvDB //(Parks and Rec did this a lot in the first season, from experience) //Keivan: Should automatically add the episode to db with minimal information. then update the description/title when available. - episodeInfo = new Episode() + episodeInfo = new Episode { SeriesId = parsedReport.SeriesId, AirDate = DateTime.Now.Date, @@ -135,13 +140,6 @@ namespace NzbDrone.Core.Providers } } - //IsInHistory? (NZBDrone) - if (_history.Exists(episodeInfo.EpisodeId, parsedReport.Quality, parsedReport.Proper)) - { - Logger.Debug("Episode in history: {0}", episode.ToString()); - continue; - } - return true; //If we get to this point and the file has not yet been rejected then accept it } diff --git a/NzbDrone.Core/Providers/HistoryProvider.cs b/NzbDrone.Core/Providers/HistoryProvider.cs index f3f32771f..8dba22e29 100644 --- a/NzbDrone.Core/Providers/HistoryProvider.cs +++ b/NzbDrone.Core/Providers/HistoryProvider.cs @@ -22,21 +22,20 @@ namespace NzbDrone.Core.Providers { } - public virtual List AllItems() + public virtual IQueryable AllItems() { - return _sonicRepo.All().ToList(); + return _sonicRepo.All(); } public virtual void Purge() { - var all = _sonicRepo.All(); - _sonicRepo.DeleteMany(all); + _sonicRepo.DeleteMany(AllItems()); Logger.Info("History has been Purged"); } public virtual void Trim() { - var old = _sonicRepo.All().Where(h => h.Date < DateTime.Now.AddDays(-30)); + var old = AllItems().Where(h => h.Date < DateTime.Now.AddDays(-30)); _sonicRepo.DeleteMany(old); Logger.Info("History has been trimmed, items older than 30 days have been removed"); } @@ -44,16 +43,16 @@ namespace NzbDrone.Core.Providers public virtual void Insert(History item) { _sonicRepo.Add(item); - //Logger.Info("Item added to history: {0} - {1}x{2:00}", item.Episode.Series.Title, item.Episode.SeasonNumber, item.Episode.EpisodeNumber); + Logger.Debug("Item added to history: {0} - {1}x{2:00}", item.Episode.Series.Title, item.Episode.SeasonNumber, item.Episode.EpisodeNumber); } public virtual bool Exists(int episodeId, QualityTypes quality, bool proper) { - //Looks for the existance of this episode in History + //Looks for the existence of this episode in History if (_sonicRepo.Exists(h => h.EpisodeId == episodeId && h.Quality == quality && h.IsProper == proper)) return true; - Logger.Debug("Episode not in History: {0}", episodeId); + Logger.Debug("Episode not in History. ID:{0} Q:{1} Proper:{2}", episodeId , quality, proper); return false; } } diff --git a/NzbDrone.Core/Providers/Indexer/IndexerProviderBase.cs b/NzbDrone.Core/Providers/Indexer/IndexerProviderBase.cs index 327965e69..886cff85d 100644 --- a/NzbDrone.Core/Providers/Indexer/IndexerProviderBase.cs +++ b/NzbDrone.Core/Providers/Indexer/IndexerProviderBase.cs @@ -1,9 +1,9 @@ +using System; using System.ServiceModel.Syndication; using NLog; using NzbDrone.Core.Model; using NzbDrone.Core.Providers.Core; using NzbDrone.Core.Repository; -using SubSonic.Repository; namespace NzbDrone.Core.Providers.Indexer { @@ -13,23 +13,23 @@ namespace NzbDrone.Core.Providers.Indexer protected readonly ConfigProvider _configProvider; protected readonly EpisodeProvider _episodeProvider; private readonly HttpProvider _httpProvider; - protected readonly IRepository _repository; private readonly IndexerProvider _indexerProvider; + private readonly HistoryProvider _historyProvider; protected readonly SeasonProvider _seasonProvider; protected readonly SeriesProvider _seriesProvider; - public IndexerProviderBase(SeriesProvider seriesProvider, SeasonProvider seasonProvider, + protected IndexerProviderBase(SeriesProvider seriesProvider, SeasonProvider seasonProvider, EpisodeProvider episodeProvider, ConfigProvider configProvider, - HttpProvider httpProvider, IRepository repository, IndexerProvider indexerProvider) + HttpProvider httpProvider, IndexerProvider indexerProvider, HistoryProvider historyProvider) { _seriesProvider = seriesProvider; _seasonProvider = seasonProvider; _episodeProvider = episodeProvider; _configProvider = configProvider; _httpProvider = httpProvider; - _repository = repository; _indexerProvider = indexerProvider; + _historyProvider = historyProvider; } /// @@ -104,7 +104,28 @@ namespace NzbDrone.Core.Providers.Indexer return; } - //Should probably queue item to download + var episodes = _episodeProvider.GetEpisodeByParseResult(parseResult); + + foreach (var episode in episodes) + { + if (_historyProvider.Exists(episode.EpisodeId, parseResult.Quality, parseResult.Proper)) + { + Logger.Debug("Episode in history: {0}", episode.ToString()); + continue; + } + + //TODO: Add episode to sab + + _historyProvider.Insert(new History + { + Date = DateTime.Now, + EpisodeId = episode.EpisodeId, + IsProper = parseResult.Proper, + NzbTitle = feedItem.Title.Text, + Quality = parseResult.Quality + }); + } + } } diff --git a/NzbDrone.Core/Providers/Indexer/NewzbinProvider.cs b/NzbDrone.Core/Providers/Indexer/NewzbinProvider.cs index 1f5ab7807..70f5bf5dd 100644 --- a/NzbDrone.Core/Providers/Indexer/NewzbinProvider.cs +++ b/NzbDrone.Core/Providers/Indexer/NewzbinProvider.cs @@ -7,8 +7,7 @@ namespace NzbDrone.Core.Providers.Indexer { public class NewzbinProvider : IndexerProviderBase { - public NewzbinProvider(SeriesProvider seriesProvider, SeasonProvider seasonProvider, EpisodeProvider episodeProvider, ConfigProvider configProvider, HttpProvider httpProvider, IRepository repository, IndexerProvider indexerProvider) - : base(seriesProvider, seasonProvider, episodeProvider, configProvider, httpProvider, repository, indexerProvider) + public NewzbinProvider(SeriesProvider seriesProvider, SeasonProvider seasonProvider, EpisodeProvider episodeProvider, ConfigProvider configProvider, HttpProvider httpProvider, IndexerProvider indexerProvider, HistoryProvider historyProvider) : base(seriesProvider, seasonProvider, episodeProvider, configProvider, httpProvider, indexerProvider, historyProvider) { } diff --git a/NzbDrone.Core/Providers/Indexer/NzbMatrixProvider.cs b/NzbDrone.Core/Providers/Indexer/NzbMatrixProvider.cs index c158a982d..d6c5f9300 100644 --- a/NzbDrone.Core/Providers/Indexer/NzbMatrixProvider.cs +++ b/NzbDrone.Core/Providers/Indexer/NzbMatrixProvider.cs @@ -6,8 +6,7 @@ namespace NzbDrone.Core.Providers.Indexer { public class NzbMatrixProvider : IndexerProviderBase { - public NzbMatrixProvider(SeriesProvider seriesProvider, SeasonProvider seasonProvider, EpisodeProvider episodeProvider, ConfigProvider configProvider, HttpProvider httpProvider, IRepository repository, IndexerProvider indexerProvider) - : base(seriesProvider, seasonProvider, episodeProvider, configProvider, httpProvider, repository, indexerProvider) + public NzbMatrixProvider(SeriesProvider seriesProvider, SeasonProvider seasonProvider, EpisodeProvider episodeProvider, ConfigProvider configProvider, HttpProvider httpProvider, IndexerProvider indexerProvider, HistoryProvider historyProvider) : base(seriesProvider, seasonProvider, episodeProvider, configProvider, httpProvider, indexerProvider, historyProvider) { } diff --git a/NzbDrone.Core/Providers/Indexer/NzbsOrgProvider.cs b/NzbDrone.Core/Providers/Indexer/NzbsOrgProvider.cs index e8aa37bc8..dd847cf47 100644 --- a/NzbDrone.Core/Providers/Indexer/NzbsOrgProvider.cs +++ b/NzbDrone.Core/Providers/Indexer/NzbsOrgProvider.cs @@ -6,8 +6,7 @@ namespace NzbDrone.Core.Providers.Indexer { public class NzbsOrgProvider : IndexerProviderBase { - public NzbsOrgProvider(SeriesProvider seriesProvider, SeasonProvider seasonProvider, EpisodeProvider episodeProvider, ConfigProvider configProvider, HttpProvider httpProvider, IRepository repository, IndexerProvider indexerProvider) - : base(seriesProvider, seasonProvider, episodeProvider, configProvider, httpProvider, repository, indexerProvider) + public NzbsOrgProvider(SeriesProvider seriesProvider, SeasonProvider seasonProvider, EpisodeProvider episodeProvider, ConfigProvider configProvider, HttpProvider httpProvider, IndexerProvider indexerProvider, HistoryProvider historyProvider) : base(seriesProvider, seasonProvider, episodeProvider, configProvider, httpProvider, indexerProvider, historyProvider) { } diff --git a/NzbDrone.Core/Providers/Indexer/NzbsRUsProvider.cs b/NzbDrone.Core/Providers/Indexer/NzbsRUsProvider.cs index 29eef883e..f02875361 100644 --- a/NzbDrone.Core/Providers/Indexer/NzbsRUsProvider.cs +++ b/NzbDrone.Core/Providers/Indexer/NzbsRUsProvider.cs @@ -6,8 +6,7 @@ namespace NzbDrone.Core.Providers.Indexer { public class NzbsRUsProvider : IndexerProviderBase { - public NzbsRUsProvider(SeriesProvider seriesProvider, SeasonProvider seasonProvider, EpisodeProvider episodeProvider, ConfigProvider configProvider, HttpProvider httpProvider, IRepository repository, IndexerProvider indexerProvider) - : base(seriesProvider, seasonProvider, episodeProvider, configProvider, httpProvider, repository, indexerProvider) + public NzbsRUsProvider(SeriesProvider seriesProvider, SeasonProvider seasonProvider, EpisodeProvider episodeProvider, ConfigProvider configProvider, HttpProvider httpProvider, IndexerProvider indexerProvider, HistoryProvider historyProvider) : base(seriesProvider, seasonProvider, episodeProvider, configProvider, httpProvider, indexerProvider, historyProvider) { } diff --git a/NzbDrone.Core/Repository/History.cs b/NzbDrone.Core/Repository/History.cs index a9b94e882..d4346c3a7 100644 --- a/NzbDrone.Core/Repository/History.cs +++ b/NzbDrone.Core/Repository/History.cs @@ -14,9 +14,9 @@ namespace NzbDrone.Core.Repository public QualityTypes Quality { get; set; } public DateTime Date { get; set; } public bool IsProper { get; set; } - + [SubSonicToOneRelation(ThisClassContainsJoinKey = true)] - public virtual Episode Episode { get; private set; } + public virtual Episode Episode { get; protected set; } } } \ No newline at end of file diff --git a/NzbDrone.Core/WebTimer.cs b/NzbDrone.Core/WebTimer.cs new file mode 100644 index 000000000..1c9ab69d4 --- /dev/null +++ b/NzbDrone.Core/WebTimer.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Web; +using System.Web.Caching; +using NLog; + +namespace NzbDrone.Core +{ + class WebTimer + { + + private static CacheItemRemovedCallback _onCacheRemove; + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + + public void StartTimer(int secondInterval) + { + _onCacheRemove = new CacheItemRemovedCallback(DoWork); + + HttpRuntime.Cache.Insert(GetType().ToString(), secondInterval, null, + DateTime.Now.AddSeconds(secondInterval), Cache.NoSlidingExpiration, + CacheItemPriority.NotRemovable, _onCacheRemove); + } + + + public void DoWork(string k, object v, CacheItemRemovedReason r) + { + Logger.Info("Tick!"); + StartTimer(Convert.ToInt32(v)); + } + } +} diff --git a/NzbDrone.Web/Controllers/SeriesController.cs b/NzbDrone.Web/Controllers/SeriesController.cs index 100320133..017f7db44 100644 --- a/NzbDrone.Web/Controllers/SeriesController.cs +++ b/NzbDrone.Web/Controllers/SeriesController.cs @@ -8,7 +8,6 @@ using NzbDrone.Core.Providers.Jobs; using NzbDrone.Core.Repository; using NzbDrone.Web.Models; using Telerik.Web.Mvc; -using TvdbLib.Data; namespace NzbDrone.Web.Controllers { diff --git a/NzbDrone.Web/Global.asax.cs b/NzbDrone.Web/Global.asax.cs index 6de858dce..57401501b 100644 --- a/NzbDrone.Web/Global.asax.cs +++ b/NzbDrone.Web/Global.asax.cs @@ -3,6 +3,7 @@ using System.Data.SQLite; using System.Reflection; using System.Threading; using System.Web; +using System.Web.Caching; using System.Web.Mvc; using System.Web.Routing; using Ninject; @@ -65,13 +66,10 @@ namespace NzbDrone.Web protected void Application_Error(object sender, EventArgs e) { var lastError = Server.GetLastError(); - if (lastError is HttpException) + + if (lastError is HttpException && lastError.InnerException == null) { Logger.WarnException(String.Format("{0}. URL[{1}]", lastError.Message, Request.Path), lastError); - if (Request.Path.EndsWith(".aspx", StringComparison.InvariantCultureIgnoreCase)) - { - Response.Redirect(Request.ApplicationPath); - } return; } diff --git a/NzbDrone.Web/NzbDrone.Web.Publish.xml b/NzbDrone.Web/NzbDrone.Web.Publish.xml index 58860a7c2..d7db229df 100644 --- a/NzbDrone.Web/NzbDrone.Web.Publish.xml +++ b/NzbDrone.Web/NzbDrone.Web.Publish.xml @@ -64,7 +64,7 @@ - + @@ -85,7 +85,7 @@ - + @@ -107,9 +107,11 @@ + + @@ -120,10 +122,8 @@ - - @@ -136,7 +136,7 @@ - + @@ -162,240 +162,486 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/NzbDrone.Web/NzbDrone.Web.csproj b/NzbDrone.Web/NzbDrone.Web.csproj index af29bd968..ed8d6dda5 100644 --- a/NzbDrone.Web/NzbDrone.Web.csproj +++ b/NzbDrone.Web/NzbDrone.Web.csproj @@ -30,6 +30,7 @@ false true false + true pdbonly @@ -45,6 +46,9 @@ ..\NzbDrone.Core\Libraries\Castle.Core.dll + + True + False ..\packages\Ninject.2.2.1.0\lib\.NetFramework 4.0\Ninject.dll @@ -70,14 +74,24 @@ - + + True + + True + + + True - - False + True + + + True + + + True - @@ -86,12 +100,15 @@ ..\packages\TelerikMvcExtensions.2011.1.315\lib\net40\Telerik.Web.Mvc.dll - - False + + True + + + True + + ..\NzbDrone.Core\Libraries\TvdbLib.dll - - @@ -624,7 +641,6 @@ - Designer diff --git a/NzbDrone.Web/Views/Log/Index.aspx b/NzbDrone.Web/Views/Log/Index.aspx index a52be74a6..f68469054 100644 --- a/NzbDrone.Web/Views/Log/Index.aspx +++ b/NzbDrone.Web/Views/Log/Index.aspx @@ -1,4 +1,5 @@ <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage>" %> +