Attach to debugger is a lot more reliable.

Added system/config ui
rss job only runs enabled jobs
fixed wrong mappings for indexers in settingscontroller
This commit is contained in:
kay.one 2011-04-22 10:09:06 -07:00
parent 8ec72ed432
commit fd32a04d45
9 changed files with 89 additions and 41 deletions

View File

@ -1,4 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using NLog;
using NzbDrone.Core.Repository;
using SubSonic.Repository;
@ -15,6 +17,11 @@ namespace NzbDrone.Core.Providers.Core
_sonicRepo = dataRepository;
}
public IList<Config> All()
{
return _sonicRepo.All<Config>().ToList();
}
public ConfigProvider()
{
}

View File

@ -44,7 +44,7 @@ namespace NzbDrone.Core.Providers.Indexer
protected abstract string[] Urls { get; }
protected IndexerSetting Settings
public IndexerSetting Settings
{
get
{

View File

@ -30,7 +30,7 @@ namespace NzbDrone.Core.Providers.Jobs
public void Start(ProgressNotification notification, int targetId)
{
foreach (var indexer in _indexers)
foreach (var indexer in _indexers.Where(i => i.Settings.Enable))
{
indexer.Fetch();
}

View File

@ -66,11 +66,11 @@ namespace NzbDrone.Web.Controllers
NzbMatrixApiKey =
_configProvider.GetValue("NzbMatrixApiKey", String.Empty, true),
NzbsrusUId = _configProvider.GetValue("NzbsrusUId", String.Empty, true),
NzbsrusHash = _configProvider.GetValue("NzbsrusHash", String.Empty, true),
NzbsrusUId = _configProvider.NzbsrusUId,
NzbsrusHash = _configProvider.NzbsrusHash,
NzbsOrgHash = _configProvider.NzbsrusHash,
NzbsOrgUId = _configProvider.NzbsrusUId,
NzbsOrgHash = _configProvider.NzbsOrgHash,
NzbsOrgUId = _configProvider.NzbsOrgUId,
NewzbinUsername = _configProvider.NewzbinUsername,
NewzbinPassword = _configProvider.NewzbinPassword,
@ -333,14 +333,14 @@ namespace NzbDrone.Web.Controllers
newzbinSettings.Enable = data.NewzbinEnabled;
_indexerProvider.SaveSettings(newzbinSettings);
_configProvider.NzbsrusHash = data.NzbsOrgHash;
_configProvider.NzbsOrgUId = data.NzbsOrgUId;
_configProvider.NzbsOrgHash = data.NzbsOrgHash;
_configProvider.NzbMatrixUsername = data.NzbMatrixUsername;
_configProvider.NzbMatrixApiKey = data.NzbMatrixApiKey;
_configProvider.NzbsrusUId = data.NzbsrusUId;
_configProvider.NzbsOrgUId = data.NzbsrusHash;
_configProvider.NzbsrusHash = data.NzbsrusHash;
_configProvider.NewzbinUsername = data.NewzbinUsername;
_configProvider.NewzbinPassword = data.NewzbinPassword;

View File

@ -4,6 +4,7 @@ using System.Linq;
using System.Web;
using System.Web.Mvc;
using NzbDrone.Core.Providers;
using NzbDrone.Core.Providers.Core;
using NzbDrone.Core.Providers.Jobs;
namespace NzbDrone.Web.Controllers
@ -12,11 +13,13 @@ namespace NzbDrone.Web.Controllers
{
private readonly JobProvider _jobProvider;
private readonly IndexerProvider _indexerProvider;
private readonly ConfigProvider _configProvider;
public SystemController(JobProvider jobProvider, IndexerProvider indexerProvider)
public SystemController(JobProvider jobProvider, IndexerProvider indexerProvider, ConfigProvider configProvider)
{
_jobProvider = jobProvider;
_indexerProvider = indexerProvider;
_configProvider = configProvider;
}
public ActionResult Jobs()
@ -30,5 +33,11 @@ namespace NzbDrone.Web.Controllers
}
public ActionResult Config()
{
return View(_configProvider.All());
}
}
}

View File

@ -683,6 +683,7 @@
<Content Include="Views\Shared\Error.cshtml" />
<Content Include="Views\Settings\UserProfileSection.cshtml" />
<Content Include="Views\System\Indexers.cshtml" />
<Content Include="Views\System\Config.cshtml" />
</ItemGroup>
<ItemGroup>
<Folder Include="App_Data\" />

View File

@ -0,0 +1,9 @@
@model IEnumerable<NzbDrone.Core.Repository.Config>
@section TitleContent{
Config
}
@section MainContent{
@{Html.Telerik().Grid(Model).Name("Grid")
.TableHtmlAttributes(new { @class = "Grid" })
.Render();}
}

View File

@ -10,17 +10,18 @@ using System.Collections.Generic;
using System.Runtime.InteropServices;
using EnvDTE;
using EnvDTE80;
using NLog;
using Thread = System.Threading.Thread;
namespace NzbDrone
{
public class ProcessAttacher
{
private static readonly Logger Logger = LogManager.GetLogger("Application");
public static void Attach()
{
for (int i = 0; i < 10; i++)
{
try
{
DTE2 dte2;
dte2 = (DTE2)Marshal.
@ -29,12 +30,7 @@ namespace NzbDrone
var pa = new ProcessAttacher(dte2, "iisexpress", 10);
pa.PessimisticAttachManaged();
return;
}
catch
{
Thread.Sleep(500);
}
}
// Get an instance of the currently running Visual Studio IDE.
}

View File

@ -30,22 +30,16 @@ namespace NzbDrone
IISController.StopServer();
IISController.StartServer();
Process.Start(IISController.AppUrl);
#if DEBUG
//Manually Attach debugger to IISExpress
if (Debugger.IsAttached)
{
try
{
ProcessAttacher.Attach();
}
catch (Exception e)
{
Logger.Warn("Unable to attach to debugger", e);
}
}
Attach();
#endif
Process.Start(IISController.AppUrl);
IISController.IISProcess.WaitForExit();
}
catch (Exception e)
{
@ -54,6 +48,38 @@ namespace NzbDrone
}
private static void Attach()
{
if (Debugger.IsAttached)
{
Logger.Info("Trying to attach to debugger");
var count = 0;
while (true)
{
try
{
ProcessAttacher.Attach();
Logger.Info("Debugger Attached");
return;
}
catch (Exception e)
{
count++;
if (count > 20)
{
Logger.WarnException("Unable to attach to debugger", e);
return;
}
Thread.Sleep(100);
}
}
}
}
private static void AppDomainException(object excepion)
{