From 5bf0e197ec6fc9fe844cacba0f6c67010187a2c0 Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Wed, 2 Oct 2013 18:01:32 -0700 Subject: [PATCH] Moved source code under src folder - massive change --- Gruntfile.js | 132 +++---- NzbDrone.Api/NzbDrone.Api.ncrunchproject | 22 -- .../NzbDrone.Common.Test.ncrunchproject | 60 ---- .../NzbDrone.Common.ncrunchproject | 22 -- NzbDrone.Core.Test/App_Data/Config.xml | 5 - NzbDrone.Core/NzbDrone.Core.ncrunchproject | 23 -- .../NzbDrone.Test.Common.ncrunchproject | 22 -- .../NzbDrone.Test.Dummy.ncrunchproject | 22 -- .../NzbDrone.Update.Test.ncrunchproject | 22 -- .../NzbDrone.Update.ncrunchproject | 22 -- NzbDrone.Wix/configuration.xml | 22 -- NzbDrone.Wix/dotNetInstaller.exe | Bin 1134592 -> 0 bytes NzbDrone.Wix/nzbdrone.wix.build.bat | 8 - NzbDrone.Wix/nzbdrone.wix.build.debug.bat | 10 - NzbDrone.Wix/nzbdrone.wix.build.wxs | 84 ----- NzbDrone.ncrunchsolution | 13 - .../ServiceInstall.ncrunchproject | 23 -- .../ServiceUninstall.ncrunchproject | 23 -- build.ps1 | 17 +- {.nuget => src/.nuget}/NuGet.Config | 0 {.nuget => src/.nuget}/NuGet.exe | Bin {.nuget => src/.nuget}/NuGet.targets | 0 .../Configuration/ExceptronConfiguration.cs | 0 .../Exceptron.Client}/ExceptionData.cs | 0 .../Exceptron.Client}/ExceptionSeverity.cs | 0 .../Exceptron.Client}/Exceptron.Client.csproj | 4 +- .../Exceptron.Client}/Exceptron.Client.nuspec | 0 .../ExceptronApiException.cs | 0 .../Exceptron.Client}/ExceptronClient.cs | 0 .../Exceptron.Client}/IExceptronClient.cs | 0 .../Exceptron.Client}/IRestClient.cs | 0 .../Message/ExceptionReport.cs | 0 .../Message/ExceptionResponse.cs | 0 .../Exceptron.Client}/Message/Frame.cs | 0 .../NuGet/web.config.transform | 0 .../Properties/AssemblyInfo.cs | 0 .../Exceptron.Client}/RestClient.cs | 0 .../Exceptron.Client}/fastJSON/Getters.cs | 0 .../Exceptron.Client}/fastJSON/JSON.cs | 0 .../Exceptron.Client}/fastJSON/JsonParser.cs | 0 .../fastJSON/JsonSerializer.cs | 0 .../fastJSON/SafeDictionary.cs | 0 .../Exceptron.Client}/fastJSON/license.txt | 0 .../Libraries}/Interop.NetFwTypeLib.dll | Bin .../Libraries}/Manifest Tool/mt.exe | Bin .../Libraries}/Manifest Tool/mt.exe.config | 0 .../Libraries}/Sqlite/System.Data.SQLite.dll | Bin .../Libraries}/Sqlite/System.Data.SQLite.xml | 0 .../Libraries}/Sqlite/sqlite3.dll | Bin .../Converters/BooleanIntConverter.cs | 0 .../Converters/BooleanYNConverter.cs | 0 .../Marr.Data}/Converters/CastConverter.cs | 0 .../Converters/ConversionException.cs | 0 .../Marr.Data}/Converters/ConverterContext.cs | 0 .../Marr.Data}/Converters/EnumIntConverter.cs | 0 .../Converters/EnumStringConverter.cs | 0 .../Marr.Data}/Converters/IConverter.cs | 0 {Marr.Data => src/Marr.Data}/DataHelper.cs | 0 {Marr.Data => src/Marr.Data}/DataMapper.cs | 0 .../Marr.Data}/DataMappingException.cs | 0 {Marr.Data => src/Marr.Data}/EntityGraph.cs | 0 {Marr.Data => src/Marr.Data}/EntityMerger.cs | 0 .../Marr.Data}/EntityReference.cs | 0 .../Marr.Data}/ExtensionMethods.cs | 0 .../Marr.Data}/GroupingKeyCollection.cs | 0 {Marr.Data => src/Marr.Data}/IDataMapper.cs | 0 {Marr.Data => src/Marr.Data}/LazyLoaded.cs | 0 {Marr.Data => src/Marr.Data}/MapRepository.cs | 0 .../Marr.Data}/Mapping/ColumnAttribute.cs | 0 .../Marr.Data}/Mapping/ColumnInfo.cs | 0 .../Marr.Data}/Mapping/ColumnMap.cs | 0 .../Marr.Data}/Mapping/ColumnMapBuilder.cs | 0 .../Marr.Data}/Mapping/ColumnMapCollection.cs | 0 .../Marr.Data}/Mapping/EnumConversionType.cs | 0 .../Marr.Data}/Mapping/FluentMappings.cs | 0 .../Marr.Data}/Mapping/IColumnInfo.cs | 0 .../Marr.Data}/Mapping/IRelationshipInfo.cs | 0 .../Marr.Data}/Mapping/MapBuilder.cs | 0 .../Marr.Data}/Mapping/MappingHelper.cs | 0 .../Marr.Data}/Mapping/Relationship.cs | 0 .../Mapping/RelationshipAttribute.cs | 0 .../Marr.Data}/Mapping/RelationshipBuilder.cs | 0 .../Mapping/RelationshipCollection.cs | 0 .../Marr.Data}/Mapping/RelationshipInfo.cs | 0 .../Strategies/AttributeMapStrategy.cs | 0 .../Strategies/ConventionMapStrategy.cs | 0 .../Mapping/Strategies/IMapStrategy.cs | 0 .../Mapping/Strategies/PropertyMapStrategy.cs | 0 .../Strategies/ReflectionMapStrategyBase.cs | 0 .../Marr.Data}/Mapping/TableAttribute.cs | 0 .../Marr.Data}/Mapping/TableBuilder.cs | 0 {Marr.Data => src/Marr.Data}/Marr.Data.csproj | 4 +- .../Marr.Data}/Parameters/DbTypeBuilder.cs | 0 .../Marr.Data}/Parameters/IDbTypeBuilder.cs | 0 .../Marr.Data}/Parameters/OleDbTypeBuilder.cs | 0 .../Parameters/ParameterChainMethods.cs | 0 .../Marr.Data}/Parameters/SqlDbTypeBuilder.cs | 0 .../Marr.Data}/Properties/AssemblyInfo.cs | 0 .../Marr.Data}/QGen/DeleteQuery.cs | 0 .../Marr.Data}/QGen/Dialects/Dialect.cs | 0 .../QGen/Dialects/FirebirdDialect.cs | 0 .../Marr.Data}/QGen/Dialects/OracleDialect.cs | 0 .../QGen/Dialects/SqlServerCeDialect.cs | 0 .../QGen/Dialects/SqlServerDialect.cs | 0 .../Marr.Data}/QGen/Dialects/SqliteDialect.cs | 0 .../Marr.Data}/QGen/ExpressionVisitor.cs | 0 {Marr.Data => src/Marr.Data}/QGen/IQuery.cs | 0 .../Marr.Data}/QGen/IQueryBuilder.cs | 0 .../Marr.Data}/QGen/InsertQuery.cs | 0 .../Marr.Data}/QGen/InsertQueryBuilder.cs | 0 .../Marr.Data}/QGen/JoinBuilder.cs | 0 .../Marr.Data}/QGen/PagingQueryDecorator.cs | 0 .../Marr.Data}/QGen/QueryBuilder.cs | 0 .../Marr.Data}/QGen/QueryFactory.cs | 0 .../Marr.Data}/QGen/QueryQueueItem.cs | 0 .../Marr.Data}/QGen/RowCountQueryDecorator.cs | 0 .../Marr.Data}/QGen/SelectQuery.cs | 0 .../Marr.Data}/QGen/SortBuilder.cs | 0 .../Marr.Data}/QGen/SortColumn.cs | 0 .../QGen/SqlitePagingQueryDecorator.cs | 0 .../QGen/SqliteRowCountQueryDecorator.cs | 0 {Marr.Data => src/Marr.Data}/QGen/Table.cs | 0 .../Marr.Data}/QGen/TableCollection.cs | 0 .../Marr.Data}/QGen/UpdateQuery.cs | 0 .../Marr.Data}/QGen/UpdateQueryBuilder.cs | 0 {Marr.Data => src/Marr.Data}/QGen/View.cs | 0 .../Marr.Data}/QGen/WhereBuilder.cs | 0 .../Reflection/IReflectionStrategy.cs | 0 .../Marr.Data}/Reflection/ReflectionHelper.cs | 0 .../Reflection/SimpleReflectionStrategy.cs | 0 {Marr.Data => src/Marr.Data}/SqlModesEnum.cs | 0 {Marr.Data => src/Marr.Data}/UnitOfWork.cs | 0 .../Marr.Data}/UnitOfWorkSharedContext.cs | 0 .../ClientSchemaTests/SchemaBuilderFixture.cs | 0 .../DirectoryLookupServiceFixture.cs | 0 .../MappingTests/ResourceMappingFixture.cs | 0 .../NzbDrone.Api.Test.csproj | 0 .../Properties/AssemblyInfo.cs | 0 .../NzbDrone.Api.Test}/packages.config | 0 .../Authentication/AuthenticationService.cs | 0 .../Authentication/EnableBasicAuthInNancy.cs | 0 .../EnableStatelessAuthInNancy.cs | 0 .../Authentication/NzbDroneUser.cs | 0 .../NzbDrone.Api}/Calendar/CalendarModule.cs | 0 .../NzbDrone.Api}/ClientSchema/Field.cs | 0 .../ClientSchema/FieldDefinitionAttribute.cs | 0 .../ClientSchema/SchemaBuilder.cs | 0 .../ClientSchema/SchemaDeserializer.cs | 0 .../ClientSchema/SelectOption.cs | 0 .../NzbDrone.Api}/Commands/CommandModule.cs | 0 .../NzbDrone.Api}/Commands/CommandResource.cs | 0 .../Config/NamingConfigResource.cs | 0 .../NzbDrone.Api}/Config/NamingModule.cs | 0 .../Config/NamingSampleResource.cs | 0 .../NzbDrone.Api}/Config/SettingsModule.cs | 0 .../Directories/DirectoryLookupService.cs | 0 .../Directories/DirectoryModule.cs | 0 .../EpisodeFiles/EpisodeFileModule.cs | 0 .../EpisodeFiles/EpisodeFileResource.cs | 0 .../NzbDrone.Api}/Episodes/EpisodeModule.cs | 0 .../NzbDrone.Api}/Episodes/EpisodeResource.cs | 0 .../ErrorManagement/ApiException.cs | 0 .../ErrorManagement/ErrorHandler.cs | 0 .../ErrorManagement/ErrorModel.cs | 0 .../ErrorManagement/NzbDroneErrorPipeline.cs | 0 .../Exceptions/InvalidApiKeyException.cs | 0 .../Extensions/LazyExtensions.cs | 0 .../Extensions/NancyJsonSerializer.cs | 0 .../Pipelines/CacheHeaderPipeline.cs | 0 .../Extensions/Pipelines/GZipPipeline.cs | 0 .../Pipelines/IRegisterNancyPipeline.cs | 0 .../Pipelines/IfModifiedPipeline.cs | 0 .../Extensions/ReqResExtensions.cs | 0 .../Extensions/RequestExtensions.cs | 0 .../Frontend/IsCacheableSpecification.cs | 0 .../Mappers/IMapHttpRequestsToDisk.cs | 0 .../Frontend/Mappers/IndexHtmlMapper.cs | 0 .../Frontend/Mappers/LogFileMapper.cs | 0 .../Frontend/Mappers/MediaCoverMapper.cs | 0 .../Frontend/Mappers/StaticResourceMapper.cs | 0 .../Mappers/StaticResourceMapperBase.cs | 0 .../Frontend/StaticResourceModule.cs | 0 .../NzbDrone.Api}/History/HistoryModule.cs | 0 .../NzbDrone.Api}/History/HistoryResource.cs | 0 .../NzbDrone.Api}/IndexerResource.cs | 0 .../NzbDrone.Api}/Indexers/IndexerModule.cs | 0 .../NzbDrone.Api}/Indexers/IndexerResource.cs | 0 .../Indexers/IndexerSchemaModule.cs | 0 .../NzbDrone.Api}/Indexers/ReleaseModule.cs | 0 .../NzbDrone.Api}/Indexers/ReleaseResource.cs | 0 .../NzbDrone.Api}/Logs/LogFileModule.cs | 0 .../NzbDrone.Api}/Logs/LogFileResource.cs | 0 .../NzbDrone.Api}/Logs/LogModule.cs | 0 .../NzbDrone.Api}/Logs/LogResource.cs | 0 .../NzbDrone.Api}/Mapping/CloneInjection.cs | 0 .../Mapping/MappingValidation.cs | 0 .../Mapping/ResourceMappingException.cs | 0 .../Mapping/ValueInjectorExtensions.cs | 80 ++--- .../NzbDrone.Api}/Missing/MissingModule.cs | 0 .../NzbDrone.Api}/NancyBootstrapper.cs | 0 .../Notifications/NotificationModule.cs | 0 .../Notifications/NotificationResource.cs | 0 .../Notifications/NotificationSchemaModule.cs | 0 .../NzbDrone.Api}/NzbDrone.Api.csproj | 4 +- .../NzbDrone.Api}/NzbDroneApiModule.cs | 0 .../NzbDrone.Api}/NzbDroneRestModule.cs | 0 .../NzbDroneRestModuleWithSignalR.cs | 0 .../NzbDrone.Api}/PagingResource.cs | 0 .../NzbDrone.Api}/Properties/AssemblyInfo.cs | 0 .../NzbDrone.Api}/ProviderModuleBase.cs | 0 .../Qualities/QualityProfileModule.cs | 0 .../Qualities/QualityProfileResource.cs | 0 .../Qualities/QualityProfileSchemaModule.cs | 0 .../Qualities/QualitySizeModule.cs | 0 .../Qualities/QualitySizeResource.cs | 0 .../NzbDrone.Api}/Queue/QueueModule.cs | 0 .../NzbDrone.Api}/Queue/QueueResource.cs | 0 .../NzbDrone.Api}/REST/BadRequestException.cs | 0 .../NzbDrone.Api}/REST/ResourceValidator.cs | 0 .../NzbDrone.Api}/REST/RestModule.cs | 0 .../NzbDrone.Api}/REST/RestResource.cs | 0 .../NzbDrone.Api}/ResourceChangeMessage.cs | 0 .../RootFolders/RootFolderModule.cs | 0 .../RootFolders/RootFolderResource.cs | 0 .../Series/SeriesLookupModule.cs | 0 .../NzbDrone.Api}/Series/SeriesModule.cs | 0 .../NzbDrone.Api}/Series/SeriesResource.cs | 0 .../NzbDrone.Api}/System/SystemModule.cs | 0 .../NzbDrone.Api}/TinyIoCNancyBootstrapper.cs | 0 .../NzbDrone.Api}/Update/UpdateModule.cs | 0 .../NzbDrone.Api}/Validation/PathValidator.cs | 0 .../Validation/RuleBuilderExtensions.cs | 0 .../NzbDrone.Api}/packages.config | 0 .../NzbDrone.App.Test}/ContainerFixture.cs | 0 .../NzbDrone.App.Test}/License.txt | 0 .../MonitoringProviderTest.cs | 0 .../NzbDrone.Host.Test.csproj | 0 .../Properties/AssemblyInfo.cs | 0 .../NzbDrone.App.Test}/RouterTest.cs | 0 .../NzbDrone.App.Test}/packages.config | 0 .../CacheTests/CachedFixture.cs | 0 .../CacheTests/CachedManagerFixture.cs | 0 .../ConfigFileProviderTest.cs | 0 .../DiskProviderTests/DiskProviderFixture.cs | 0 .../DiskProviderTests/FreeSpaceFixture.cs | 0 .../DiskProviderTests/IsParentFixture.cs | 0 .../EnsureTest/PathExtensionFixture.cs | 0 .../EnvironmentProviderTest.cs | 0 .../EnvironmentProviderTest.cs | 0 .../StartupArgumentsFixture.cs | 0 .../NzbDrone.Common.Test}/License.txt | 0 .../NzbDrone.Common.Test.csproj | 0 .../PathExtensionFixture.cs | 0 .../ProcessProviderTests.cs | 0 .../ReflectionExtensions.cs | 0 .../ReflectionExtensionFixture.cs | 60 ++-- .../ServiceFactoryFixture.cs | 0 .../ServiceProviderTests.cs | 0 .../NzbDrone.Common.Test}/WebClientTests.cs | 0 .../NzbDrone.Common.Test}/packages.config | 0 .../NzbDrone.Common}/ArchiveProvider.cs | 0 .../NzbDrone.Common}/Cache/CacheManger.cs | 0 .../NzbDrone.Common}/Cache/Cached.cs | 0 .../NzbDrone.Common}/Cache/ICached.cs | 0 .../NzbDrone.Common}/Composition/Container.cs | 0 .../Composition/ContainerBuilderBase.cs | 0 .../Composition/IContainer.cs | 0 .../NzbDrone.Common}/ConsoleService.cs | 0 .../NzbDrone.Common}/DateTimeExtensions.cs | 0 .../NzbDrone.Common}/DiskProvider.cs | 0 .../NzbDrone.Common}/EnsureThat/Ensure.cs | 0 .../EnsureThat/EnsureBoolExtensions.cs | 0 .../EnsureThat/EnsureCollectionExtensions.cs | 0 .../EnsureThat/EnsureDateTimeExtensions.cs | 0 .../EnsureThat/EnsureDecimalExtensions.cs | 0 .../EnsureThat/EnsureDoubleExtensions.cs | 0 .../EnsureThat/EnsureGuidExtensions.cs | 0 .../EnsureThat/EnsureIntExtensions.cs | 0 .../EnsureThat/EnsureLongExtensions.cs | 0 .../EnsureNullableValueTypeExtensions.cs | 0 .../EnsureThat/EnsureObjectExtensions.cs | 0 .../EnsureThat/EnsureShortExtensions.cs | 0 .../EnsureThat/EnsureStringExtensions.cs | 0 .../EnsureThat/EnsureTypeExtensions.cs | 0 .../EnsureThat/ExceptionFactory.cs | 0 .../EnsureThat/ExpressionExtensions.cs | 0 .../NzbDrone.Common}/EnsureThat/Param.cs | 0 .../Resources/ExceptionMessages.Designer.cs | 0 .../Resources/ExceptionMessages.resx | 0 .../NzbDrone.Common}/EnsureThat/TypeParam.cs | 0 .../EnvironmentInfo/AppFolderInfo.cs | 0 .../EnvironmentInfo/BuildInfo.cs | 0 .../EnvironmentInfo/OsInfo.cs | 0 .../EnvironmentInfo/RuntimeInfo.cs | 0 .../EnvironmentInfo/StartupArguments.cs | 0 .../Exceptions/NzbDroneException.cs | 0 .../Expansive/CircularReferenceException.cs | 0 .../NzbDrone.Common}/Expansive/Expansive.cs | 0 .../Expansive/PatternStyle.cs | 0 .../NzbDrone.Common}/Expansive/Tree.cs | 0 .../NzbDrone.Common}/Expansive/TreeNode.cs | 0 .../Expansive/TreeNodeList.cs | 0 .../NzbDrone.Common}/Expansive/license.txt | 0 .../NzbDrone.Common}/HashUtil.cs | 0 .../NzbDrone.Common}/HttpProvider.cs | 0 .../NzbDrone.Common}/IEnumerableExtensions.cs | 0 .../Instrumentation/ExceptronTarget.cs | 0 .../GlobalExceptionHandlers.cs | 0 .../Instrumentation/LogEventExtensions.cs | 76 ++--- .../Instrumentation/LogTargets.cs | 0 .../Instrumentation/LogglyTarget.cs | 124 +++---- .../Instrumentation/NzbDroneLogger.cs | 0 .../Instrumentation/VersionLayoutRenderer.cs | 0 .../NzbDrone.Common}/Messaging/IEvent.cs | 0 .../NzbDrone.Common}/Messaging/IMessage.cs | 0 .../NzbDrone.Common}/Model/ProcessInfo.cs | 0 .../NzbDrone.Common}/NzbDrone.Common.csproj | 4 +- .../NzbDrone.Common}/PathEqualityComparer.cs | 0 .../NzbDrone.Common}/PathExtensions.cs | 0 .../Processes/ProcessOutput.cs | 0 .../Processes/ProcessProvider.cs | 0 .../Properties/AssemblyInfo.cs | 0 .../Properties/SharedAssemblyInfo.cs | 0 .../Reflection/ReflectionExtensions.cs | 0 .../Security/IgnoreCertErrorPolicy.cs | 0 .../Serializer/IntConverter.cs | 0 .../NzbDrone.Common}/Serializer/Json.cs | 0 .../NzbDrone.Common}/ServiceFactory.cs | 0 .../NzbDrone.Common}/ServiceProvider.cs | 0 .../NzbDrone.Common}/Services.cs | 0 .../NzbDrone.Common}/StringExtensions.cs | 0 .../LimitedConcurrencyLevelTaskScheduler.cs | 0 .../NzbDrone.Common}/TPL/TaskExtensions.cs | 0 .../NzbDrone.Common}/TinyIoC.cs | 0 .../NzbDrone.Common}/TryParseExtension.cs | 0 .../NzbDrone.Common}/packages.config | 0 .../NzbDrone.Console}/ConsoleAlerts.cs | 0 .../NzbDrone.Console}/ConsoleApp.cs | 0 .../NzbDrone.Console}/NzbDrone.Console.csproj | 4 +- .../Properties/AssemblyInfo.cs | 0 .../NzbDrone.Console}/packages.config | 0 .../Configuration/ConfigCachingFixture.cs | 0 .../Configuration/ConfigServiceFixture.cs | 0 .../Scene/SceneMappingProxyFixture.cs | 0 .../Scene/SceneMappingServiceFixture.cs | 0 .../Datastore/BasicRepositoryFixture.cs | 0 .../ProviderSettingConverterFixture.cs | 0 .../Datastore/DatabaseRelationshipFixture.cs | 0 .../Datastore/MappingExtentionFixture.cs | 0 .../Datastore/ObjectDatabaseFixture.cs | 0 .../PagingOffsetFixture.cs | 0 .../ToSortDirectionFixture.cs | 0 .../ReflectionStrategyFixture/Benchmarks.cs | 0 .../AlterFixture.cs | 0 .../DuplicateFixture.cs | 0 .../AcceptableSizeSpecificationFixture.cs | 0 .../CutoffSpecificationFixture.cs | 0 .../DownloadDecisionMakerFixture.cs | 0 .../LanguageSpecificationFixture.cs | 0 .../MonitoredEpisodeSpecificationFixture.cs | 0 ...otRestrictedReleaseSpecificationFixture.cs | 0 ...ityAllowedByProfileSpecificationFixture.cs | 0 .../QualityUpgradeSpecificationFixture.cs | 0 .../RetentionSpecificationFixture.cs | 0 .../RssSync/ProperSpecificationFixture.cs | 0 .../UpgradeDiskSpecificationFixture.cs | 0 .../UpgradeHistorySpecificationFixture.cs | 0 .../DownloadApprovedFixture.cs | 0 .../GetQualifiedReportsFixture.cs | 0 .../BlackholeProviderFixture.cs | 0 .../NzbgetProviderTests/DownloadNzbFixture.cs | 0 .../NzbgetProviderTests/QueueFixture.cs | 0 .../PneumaticProviderFixture.cs | 0 .../SabProviderTests/QueueFixture.cs | 0 .../SabProviderTests/SabProviderFixture.cs | 0 .../Download/DownloadServiceFixture.cs | 0 .../EpisodeParseResultTest.cs | 0 .../Files/Categories_json.txt | 0 .../NzbDrone.Core.Test}/Files/History.txt | 0 .../Files/HistoryEmpty.txt | 0 .../Files/Indexers/Newznab/unauthorized.xml | 0 .../NzbDrone.Core.Test}/Files/JsonError.txt | 0 .../Files/LongOverview.txt | 0 .../Files/Media/H264_sample.mp4 | Bin .../Files/Nzbget/JsonError.txt | 0 .../Files/Nzbget/Queue.txt | 0 .../Files/Nzbget/Queue_empty.txt | 0 .../NzbDrone.Core.Test}/Files/Queue.txt | 0 .../NzbDrone.Core.Test}/Files/QueueEmpty.txt | 0 .../Files/QueueUnknownPriority.txt | 0 .../Files/RSS/SizeParsing/newznab.xml | 0 .../Files/RSS/SizeParsing/nzbclub.xml | 0 .../Files/RSS/SizeParsing/nzbindex.xml | 0 .../Files/RSS/SizeParsing/nzbsrus.xml | 0 .../Files/RSS/SizeParsing/omgwtfnzbs.xml | 0 .../Files/RSS/filesharingtalk.xml | 0 .../NzbDrone.Core.Test}/Files/RSS/newznab.xml | 0 .../NzbDrone.Core.Test}/Files/RSS/nzbclub.xml | 0 .../Files/RSS/nzbindex.xml | 0 .../NzbDrone.Core.Test}/Files/RSS/nzbsrus.xml | 0 .../Files/RSS/omgwtfnzbs.xml | 0 .../NzbDrone.Core.Test}/Files/RSS/wombles.xml | 0 .../Files/SceneMappings.json | 0 .../NzbDrone.Core.Test}/Files/TestArchive.zip | Bin .../NzbDrone.Core.Test}/Files/Xem/Failure.txt | 0 .../NzbDrone.Core.Test}/Files/Xem/Ids.txt | 0 .../Files/Xem/Mappings.txt | 0 .../NzbDrone.Core.Test}/Files/Xem/Names.txt | 0 .../NzbDrone.Core.Test}/FluentTest.cs | 0 .../NzbDrone.Core.Test}/Framework/CoreTest.cs | 0 .../NzbDrone.Core.Test}/Framework/DbTest.cs | 0 .../Framework/NBuilderExtensions.cs | 0 .../Framework/TestBaseTests.cs | 0 .../Framework/TestDbHelper.cs | 0 .../HistoryTests/HistoryRepositoryFixture.cs | 0 .../CleanupOrphanedEpisodesFixture.cs | 0 .../CleanupOrphanedHistoryItemsFixture.cs | 0 .../FetchAndParseRssServiceFixture.cs | 0 .../SearchDefinitionFixture.cs | 0 .../IndexerTests/BasicRssParserFixture.cs | 0 .../FetchAndParseRssServiceFixture.cs | 0 .../IndexerTests/IndexerServiceFixture.cs | 0 .../IndexerIntegrationTests.cs | 0 .../IndexerTests/XElementExtensionsFixture.cs | 0 .../DatabaseTargetFixture.cs | 0 .../JobTests/JobRepositoryFixture.cs | 0 .../NzbDrone.Core.Test}/JobTests/TestJobs.cs | 0 .../CoverExistsSpecificationFixture.cs | 148 ++++---- .../MediaCoverServiceFixture.cs | 0 .../DownloadedEpisodesImportServiceFixture.cs | 0 .../ImportDecisionMakerFixture.cs | 0 .../FreeSpaceSpecificationFixture.cs | 0 .../NotInUseSpecificationFixture.cs | 0 .../NotSampleSpecificationFixture.cs | 0 .../NotUnpackingSpecificationFixture.cs | 0 .../UpgradeSpecificationFixture.cs | 0 .../ImportApprovedEpisodesFixture.cs | 0 .../MediaFiles/MediaFileRepositoryFixture.cs | 0 .../MediaFiles/MediaFileServiceTest.cs | 0 .../MediaFileTableCleanupServiceFixture.cs | 0 .../MediaInfo/VideoFileInfoReaderFixture.cs | 0 .../RenameEpisodeFileServiceFixture.cs | 0 .../UpgradeMediaFileServiceFixture.cs | 0 .../CommandEqualityComparerFixture.cs | 0 .../Commands/CommandExecutorFixture.cs | 0 .../Messaging/Commands/CommandFixture.cs | 0 .../Events/EventAggregatorFixture.cs | 0 .../MetadataSourceTests/TraktProxyFixture.cs | 0 .../NotificationTests/GrowlProviderTest.cs | 0 .../NotificationServiceFixture.cs | 0 .../NotificationTests/PlexProviderTest.cs | 0 .../NotificationTests/ProwlProviderTest.cs | 0 .../Xbmc/GetJsonVersionFixture.cs | 0 .../Xbmc/Http/ActivePlayersFixture.cs | 0 .../Xbmc/Http/CheckForErrorFixture.cs | 0 .../Xbmc/Http/GetSeriesPathFixture.cs | 0 .../Xbmc/Http/UpdateFixture.cs | 0 .../Xbmc/Json/ActivePlayersFixture.cs | 0 .../Xbmc/Json/CheckForErrorFixture.cs | 0 .../Xbmc/Json/GetSeriesPathFixture.cs | 0 .../Xbmc/Json/UpdateFixture.cs | 0 .../NzbDrone.Core.Test.csproj | 0 .../OrganizerTests/BuildFilePathFixture.cs | 0 .../OrganizerTests/GetNewFilenameFixture.cs | 0 .../ParserTests/ParserFixture.cs | 0 .../ParsingServiceTests/GetEpisodesFixture.cs | 0 .../ParsingServiceTests/MapFixture.cs | 0 .../ParserTests/QualityParserFixture.cs | 0 .../Properties/AssemblyInfo.cs | 0 .../ArchiveProviderFixture.cs | 0 .../DiskProviderTests/FreeDiskSpaceFixture.cs | 0 .../GetVideoFilesFixture.cs | 0 .../RecycleBinProviderTests/CleanupFixture.cs | 0 .../DeleteDirectoryFixture.cs | 0 .../DeleteFileFixture.cs | 0 .../RecycleBinProviderTests/EmptyFixture.cs | 0 .../Providers/XemProxyFixture.cs | 0 .../Qualities/QualityFixture.cs | 0 .../QualityProfileRepositoryFixture.cs | 0 .../Qualities/QualityProfileServiceFixture.cs | 0 .../Qualities/QualitySizeRepositoryFixture.cs | 0 .../Qualities/QualitySizeServiceFixture.cs | 0 .../FreeSpaceOnDrivesFixture.cs | 0 .../RootFolderServiceFixture.cs | 0 .../SeriesStatisticsFixture.cs | 0 .../ThingiProvider/ProviderBaseFixture.cs | 0 .../ThingiProviderTests/NullConfigFixture.cs | 0 .../EpisodeProviderTest.cs | 0 ...deProviderTest_GetEpisodesByParseResult.cs | 0 .../HandleEpisodeFileDeletedFixture.cs | 0 .../EpisodesBetweenDatesFixture.cs | 0 .../EpisodesRepositoryReadFixture.cs | 0 .../EpisodesWithoutFilesFixture.cs | 0 .../FindEpisodeFixture.cs | 0 .../TvTests/QualityModelFixture.cs | 0 .../TvTests/RefreshEpisodeServiceFixture.cs | Bin .../QualityProfileRepositoryFixture.cs | 0 .../SeriesServiceTests/AddSeriesFixture.cs | Bin .../SeriesServiceTests/UpdateSeriesFixture.cs | Bin .../UpdatePackageProviderFixture.cs | 0 .../UpdateTests/UpdateServiceFixture.cs | 0 .../NzbDrone.Core.Test}/XbmcVersionTests.cs | 0 .../NzbDrone.Core.Test}/packages.config | 0 .../Annotations/FieldDefinitionAttribute.cs | 0 .../NzbDrone.Core}/App.config | 0 .../NzbDrone.Core}/Configuration/Config.cs | 0 .../Configuration/ConfigFileProvider.cs | 0 .../Configuration/ConfigRepository.cs | 0 .../Configuration/ConfigService.cs | 0 .../Events/ConfigFileSavedEvent.cs | 0 .../Configuration/Events/ConfigSavedEvent.cs | 0 .../Configuration/IConfigService.cs | 0 .../InvalidConfigFileException.cs | 0 .../DailySeries/DailySeriesDataProxy.cs | 0 .../DailySeries/DailySeriesService.cs | 0 .../DataAugmentation/Scene/SceneMapping.cs | 0 .../Scene/SceneMappingProxy.cs | 0 .../Scene/SceneMappingRepository.cs | 0 .../Scene/SceneMappingService.cs | 0 .../Scene/UpdateSceneMappingCommand.cs | 0 .../DataAugmentation/Xem/Model/XemResult.cs | 0 .../Xem/Model/XemSceneTvdbMapping.cs | 0 .../DataAugmentation/Xem/Model/XemValues.cs | 0 .../Xem/UpdateXemMappingsCommand.cs | 0 .../DataAugmentation/Xem/XemProxy.cs | 0 .../DataAugmentation/Xem/XemService.cs | 0 .../Datastore/BasicRepository.cs | 0 .../Datastore/ConnectionStringFactory.cs | 0 .../Converters/BooleanIntConverter.cs | 0 .../Converters/EmbeddedDocumentConverter.cs | 0 .../Datastore/Converters/EnumIntConverter.cs | 0 .../Datastore/Converters/Int32Converter.cs | 0 .../Converters/ProviderSettingConverter.cs | 0 .../Converters/QualityIntConverter.cs | 0 .../Datastore/Converters/UtcConverter.cs | 0 .../NzbDrone.Core}/Datastore/Database.cs | 0 .../NzbDrone.Core}/Datastore/DbFactory.cs | 0 .../Datastore/Events/ModelEvent.cs | 0 .../Datastore/IEmbeddedDocument.cs | 0 .../NzbDrone.Core}/Datastore/LazyList.cs | 0 .../Datastore/MappingExtensions.cs | 120 +++---- .../Datastore/Migration/001_InitialSetup.cs | 0 ...02_Remove_tvrage_imdb_unique_constraint.cs | 0 ...3_remove_clean_title_from_scene_mapping.cs | 0 .../Migration/004_updated_history.cs | 0 .../005_added_eventtype_to_history.cs | 0 .../Migration/006_add_index_to_log_time.cs | 0 .../007_add_renameEpisodes_to_naming.cs | 0 .../Datastore/Migration/008_remove_backlog.cs | 0 .../Migration/009_fix_renameEpisodes.cs | 0 .../Datastore/Migration/010_add_monitored.cs | 0 .../Datastore/Migration/011_remove_ignored.cs | 0 .../Migration/012_remove_custom_start_date.cs | 0 .../Migration/013_add_air_date_utc.cs | 0 .../Datastore/Migration/014_drop_air_date.cs | 0 .../Migration/015_add_air_date_as_string.cs | 0 .../016_updated_imported_history_item.cs | 0 .../Migration/017_reset_scene_names.cs | 0 .../Migration/018_remove_duplicates.cs | 0 .../019_restore_unique_constraints.cs | 0 .../020_add_year_and_seasons_to_series.cs | 0 .../Migration/021_drop_seasons_table.cs | 0 ...2_move_notification_to_generic_provider.cs | 0 .../023_add_config_contract_to_indexers.cs | 0 .../Migration/Framework/MigrationContext.cs | 0 .../Framework/MigrationController.cs | 0 .../Migration/Framework/MigrationExtension.cs | 0 .../Migration/Framework/MigrationLogger.cs | 0 .../Migration/Framework/MigrationOptions.cs | 0 .../Framework/NzbDroneMigrationBase.cs | 0 .../Migration/Framework/SQLiteColumn.cs | 0 .../Migration/Framework/SQLiteIndex.cs | 0 ...per (vaio's conflicted copy 2013-09-04).cs | 0 .../Framework/SQLiteMigrationHelper.cs | 0 .../Migration/Framework/SqliteAlter.cs | 0 .../NzbDrone.Core}/Datastore/MigrationType.cs | 0 .../NzbDrone.Core}/Datastore/ModelBase.cs | 0 .../Datastore/ModelNotFoundException.cs | 0 .../NzbDrone.Core}/Datastore/PagingSpec.cs | 0 .../Datastore/PagingSpecExtensions.cs | 0 .../Datastore/RelationshipExtensions.cs | 0 .../NzbDrone.Core}/Datastore/ResultSet.cs | 0 .../NzbDrone.Core}/Datastore/TableMapping.cs | 0 .../DecisionEngine/DownloadDecisionMaker.cs | 0 .../IDecisionEngineSpecification.cs | 0 .../DecisionEngine/IRejectWithReason.cs | 0 .../QualityUpgradableSpecification.cs | 0 .../AcceptableSizeSpecification.cs | 0 .../Specifications/CutoffSpecification.cs | 0 .../Specifications/DownloadDecision.cs | 0 .../Specifications/LanguageSpecification.cs | 0 .../Specifications/NotInQueueSpecification.cs | 0 .../NotRestrictedReleaseSpecification.cs | 0 .../Specifications/NotSampleSpecification.cs | 0 .../QualityAllowedByProfileSpecification.cs | 0 .../Specifications/RetentionSpecification.cs | 0 .../RssSync/MonitoredEpisodeSpecification.cs | 0 .../RssSync/ProperSpecification.cs | 0 .../RssSync/UpgradeHistorySpecification.cs | 0 .../Search/DailyEpisodeMatchSpecification.cs | 0 .../Search/SeasonMatchSpecification.cs | 0 .../Search/SingleEpisodeMatchSpecification.cs | 0 .../SingleEpisodeSearchMatchSpecification.cs | 0 .../UpgradeDiskSpecification.cs | 0 .../Download/Clients/BlackholeProvider.cs | 0 .../Clients/Nzbget/EnqueueResponse.cs | 0 .../Download/Clients/Nzbget/ErrorModel.cs | 0 .../Download/Clients/Nzbget/JsonError.cs | 0 .../Download/Clients/Nzbget/JsonRequest.cs | 0 .../Download/Clients/Nzbget/NzbGetQueue.cs | 0 .../Clients/Nzbget/NzbGetQueueItem.cs | 0 .../Download/Clients/Nzbget/NzbgetClient.cs | 0 .../Download/Clients/Nzbget/PriorityType.cs | 0 .../Download/Clients/Nzbget/VersionModel.cs | 0 .../Download/Clients/PneumaticClient.cs | 0 .../Clients/Sabnzbd/ConnectionInfoModel.cs | 0 .../SabnzbdPriorityTypeConverter.cs | 0 .../SabnzbdQueueTimeConverter.cs | 0 .../Clients/Sabnzbd/SabAddResponse.cs | 0 .../Sabnzbd/SabAutoConfigureService.cs | 0 .../Clients/Sabnzbd/SabCategoryModel.cs | 0 .../Download/Clients/Sabnzbd/SabHistory.cs | 0 .../Clients/Sabnzbd/SabHistoryItem.cs | 0 .../Download/Clients/Sabnzbd/SabJsonError.cs | 0 .../Download/Clients/Sabnzbd/SabModel.cs | 0 .../Clients/Sabnzbd/SabPriorityType.cs | 0 .../Download/Clients/Sabnzbd/SabQueue.cs | 0 .../Download/Clients/Sabnzbd/SabQueueItem.cs | 0 .../Clients/Sabnzbd/SabVersionModel.cs | 0 .../Download/Clients/Sabnzbd/SabnzbdClient.cs | 0 .../Download/DownloadApprovedReports.cs | 0 .../Download/DownloadClientProvider.cs | 0 .../Download/DownloadClientType.cs | 0 .../Download/DownloadService.cs | 0 .../Download/EpisodeGrabbedEvent.cs | 0 .../Download/IDownloadClient.cs | 0 .../NzbDrone.Core}/Download/QueueItem.cs | 0 .../Exceptions/BadRequestException.cs | 0 .../Exceptions/DownstreamException.cs | 0 .../Exceptions/NzbDroneClientException.cs | 0 .../Exceptions/StatusCodeToExceptions.cs | 0 .../NzbDrone.Core}/Fluent.cs | 0 .../NzbDrone.Core}/History/History.cs | 0 .../History/HistoryRepository.cs | 0 .../NzbDrone.Core}/History/HistoryService.cs | 0 .../Housekeepers/CleanupOrphanedEpisodes.cs | 0 .../CleanupOrphanedHistoryItems.cs | 0 .../Housekeeping/HousekeepingCommand.cs | 0 .../Housekeeping/HousekeepingService.cs | 0 .../Housekeeping/IHousekeepingTask.cs | 0 .../Definitions/DailyEpisodeSearchCriteria.cs | 0 .../Definitions/SearchCriteriaBase.cs | 0 .../Definitions/SeasonSearchCriteria.cs | 0 .../SingleEpisodeSearchCriteria.cs | 0 .../IndexerSearch/EpisodeSearchCommand.cs | 0 .../IndexerSearch/EpisodeSearchService.cs | 0 .../IndexerSearch/NzbSearchService.cs | 0 .../IndexerSearch/SearchAndDownloadService.cs | 0 .../IndexerSearch/SeasonSearchCommand.cs | 0 .../IndexerSearch/SeasonSearchService.cs | 0 .../IndexerSearch/SeriesSearchCommand.cs | 0 .../IndexerSearch/SeriesSearchService.cs | 0 .../Indexers/BasicTorrentRssParser.cs | 0 .../Indexers/DownloadProtocols.cs | 0 .../Indexers/Exceptions/ApiKeyException.cs | 0 .../NzbDrone.Core}/Indexers/Eztv/Eztv.cs | 0 .../Indexers/FetchAndParseRssService.cs | 0 .../NzbDrone.Core}/Indexers/IIndexer.cs | 0 .../NzbDrone.Core}/Indexers/IParseFeed.cs | 0 .../NzbDrone.Core}/Indexers/IndexerBase.cs | 0 .../Indexers/IndexerDefinition.cs | 0 .../NzbDrone.Core}/Indexers/IndexerFactory.cs | 0 .../Indexers/IndexerFetchService.cs | 0 .../Indexers/IndexerRepository.cs | 0 .../Indexers/IndexerSettingUpdatedEvent.cs | 0 .../Indexers/Newznab/Newznab.cs | 0 .../Indexers/Newznab/NewznabException.cs | 0 .../Indexers/Newznab/NewznabParser.cs | 0 .../Indexers/Newznab/NewznabPreProcessor.cs | 0 .../Indexers/Newznab/NewznabSettings.cs | 0 .../Indexers/Newznab/SizeParsingException.cs | 0 .../Indexers/NewznabTestService.cs | 0 .../Indexers/Omgwtfnzbs/Omgwtfnzbs.cs | 0 .../Indexers/Omgwtfnzbs/OmgwtfnzbsParser.cs | 0 .../Indexers/Omgwtfnzbs/OmgwtfnzbsSettings.cs | 0 .../NzbDrone.Core}/Indexers/RssParserBase.cs | 0 .../NzbDrone.Core}/Indexers/RssSyncCommand.cs | 0 .../NzbDrone.Core}/Indexers/RssSyncService.cs | 0 .../Indexers/Wombles/Wombles.cs | 0 .../Indexers/Wombles/WomblesParser.cs | 0 .../Indexers/XElementExtensions.cs | 0 .../Commands/ClearLogCommand.cs | 0 .../Commands/DeleteLogFilesCommand.cs | 0 .../Commands/TrimLogCommand.cs | 0 .../Instrumentation/DatabaseTarget.cs | 0 .../Instrumentation/DeleteLogFilesService.cs | 0 .../NzbDrone.Core}/Instrumentation/Log.cs | 0 .../Instrumentation/LogRepository.cs | 0 .../Instrumentation/LogService.cs | 0 .../Instrumentation/LoggerExtensions.cs | 0 .../Instrumentation/SetLoggingLevel.cs | 0 .../NzbDrone.Core}/Jobs/JobRepository.cs | 0 .../NzbDrone.Core}/Jobs/ScheduledTask.cs | 0 .../NzbDrone.Core}/Jobs/Scheduler.cs | 0 .../NzbDrone.Core}/Jobs/TaskManager.cs | 0 .../Lifecycle/ApplicationShutdownRequested.cs | 0 .../Lifecycle/ApplicationStartedEvent.cs | 0 .../CoverAlreadyExistsSpecification.cs | 98 +++--- .../NzbDrone.Core}/MediaCover/MediaCover.cs | 0 .../MediaCover/MediaCoverService.cs | 0 .../Commands/BackendCommandAttribute.cs | 0 .../MediaFiles/Commands/CleanMediaFileDb.cs | 0 .../Commands/CleanUpRecycleBinCommand.cs | 0 .../Commands/DownloadedEpisodesScanCommand.cs | 0 .../Commands/RenameSeasonCommand.cs | 0 .../Commands/RenameSeriesCommand.cs | 0 .../MediaFiles/DiskScanService.cs | 0 .../DownloadedEpisodesImportService.cs | 0 .../NzbDrone.Core}/MediaFiles/EpisodeFile.cs | 0 .../MediaFiles/EpisodeFileMovingService.cs | 0 .../IImportDecisionEngineSpecification.cs | 0 .../EpisodeImport/ImportApprovedEpisodes.cs | 0 .../EpisodeImport/ImportDecision.cs | 0 .../EpisodeImport/ImportDecisionMaker.cs | 0 .../Specifications/FreeSpaceSpecification.cs | 0 .../Specifications/NotInUseSpecification.cs | 0 .../Specifications/NotSampleSpecification.cs | 0 .../NotUnpackingSpecification.cs | 0 .../Specifications/UpgradeSpecification.cs | 0 .../Events/EpisodeDownloadedEvent.cs | 0 .../Events/EpisodeFileAddedEvent.cs | 0 .../Events/EpisodeFileDeletedEvent.cs | 0 .../MediaFiles/Events/EpisodeImportedEvent.cs | 0 .../MediaFiles/Events/SeriesRenamedEvent.cs | 0 .../MediaFiles/MediaFileExtensions.cs | 0 .../MediaFiles/MediaFileRepository.cs | 0 .../MediaFiles/MediaFileService.cs | 0 .../MediaFileTableCleanupService.cs | 0 .../MediaFiles/MediaInfo/MediaInfoModel.cs | 0 .../MediaInfo/VideoFileInfoReader.cs | 0 .../MediaFiles/RecycleBinProvider.cs | 0 .../MediaFiles/RenameEpisodeFileService.cs | 0 .../MediaFiles/SameFilenameException.cs | 0 .../MediaFiles/UpgradeMediaFileService.cs | 0 .../NzbDrone.Core}/MediaInfo.dll | Bin .../Commands/BackendCommandAttribute.cs | 0 .../Messaging/Commands/Command.cs | 0 .../Commands/CommandEqualityComparer.cs | 0 .../Messaging/Commands/CommandExecutor.cs | 0 .../Messaging/Commands/ICommandExecutor.cs | 0 .../Messaging/Commands/IExecute.cs | 0 .../Messaging/Commands/TestCommand.cs | 0 .../Messaging/Commands/TestCommandExecutor.cs | 0 .../Commands/Tracking/CommandStatus.cs | 0 .../Tracking/CommandTrackingService.cs | 0 .../Commands/Tracking/ExistingCommand.cs | 0 .../Tracking/TrackedCommandCleanupCommand.cs | 0 .../Messaging/Events/CommandCreatedEvent.cs | 0 .../Messaging/Events/CommandExecutedEvent.cs | 0 .../Messaging/Events/EventAggregator.cs | 0 .../Messaging/Events/IEventAggregator.cs | 0 .../Messaging/Events/IHandle.cs | 0 .../Messaging/IProcessMessage.cs | 0 .../MetadataSource/IProvideSeriesInfo.cs | 0 .../MetadataSource/ISearchForNewSeries.cs | 0 .../MetadataSource/Trakt/Episode.cs | 0 .../MetadataSource/Trakt/FullShow.cs | 0 .../MetadataSource/Trakt/Images.cs | 0 .../MetadataSource/Trakt/Season.cs | 0 .../MetadataSource/Trakt/TraktException.cs | 0 .../MetadataSource/TraktProxy.cs | 0 .../Notifications/Email/Email.cs | 0 .../Notifications/Email/EmailService.cs | 0 .../Notifications/Email/EmailSettings.cs | 0 .../Notifications/Email/TestEmailCommand.cs | 0 .../Notifications/Growl/Growl.cs | 0 .../Notifications/Growl/GrowlService.cs | 0 .../Notifications/Growl/GrowlSettings.cs | 0 .../Notifications/Growl/TestGrowlCommand.cs | 0 .../Notifications/INotification.cs | 0 .../Notifications/Notification.cs | 0 .../Notifications/NotificationBase.cs | 0 .../Notifications/NotificationDefinition.cs | 0 .../Notifications/NotificationRepository.cs | 0 .../Notifications/NotificationService.cs | 0 .../NotificationSettingsProvider.cs | 0 .../NotifyMyAndroid/NotifyMyAndroid.cs | 0 .../NotifyMyAndroidPriority.cs | 0 .../NotifyMyAndroid/NotifyMyAndroidProxy.cs | 0 .../NotifyMyAndroidSettings.cs | 0 .../TestNotifyMyAndroidCommand.cs | 0 .../Notifications/Plex/PlexClient.cs | 0 .../Notifications/Plex/PlexClientSettings.cs | 0 .../Notifications/Plex/PlexServer.cs | 0 .../Notifications/Plex/PlexServerSettings.cs | 0 .../Notifications/Plex/PlexService.cs | 0 .../Plex/TestPlexClientCommand.cs | 0 .../Plex/TestPlexServerCommand.cs | 0 .../Prowl/InvalidApiKeyException.cs | 0 .../Notifications/Prowl/Prowl.cs | 0 .../Notifications/Prowl/ProwlPriority.cs | 0 .../Notifications/Prowl/ProwlService.cs | 0 .../Notifications/Prowl/ProwlSettings.cs | 0 .../Notifications/Prowl/TestProwlCommand.cs | 0 .../Notifications/PushBullet/PushBullet.cs | 0 .../PushBullet/PushBulletProxy.cs | 0 .../PushBullet/PushBulletSettings.cs | 0 .../PushBullet/TestPushBulletCommand.cs | 0 .../Pushover/InvalidResponseException.cs | 0 .../Notifications/Pushover/Pushover.cs | 0 .../Pushover/PushoverPriority.cs | 0 .../Notifications/Pushover/PushoverService.cs | 0 .../Pushover/PushoverSettings.cs | 0 .../Pushover/TestPushoverCommand.cs | 0 .../Notifications/Xbmc/HttpApiProvider.cs | 0 .../Notifications/Xbmc/IApiProvider.cs | 0 .../Xbmc/InvalidXbmcVersionException.cs | 0 .../Notifications/Xbmc/JsonApiProvider.cs | 0 .../Notifications/Xbmc/Model/ActivePlayer.cs | 0 .../Xbmc/Model/ActivePlayersDharmaResult.cs | 0 .../Xbmc/Model/ActivePlayersEdenResult.cs | 0 .../Notifications/Xbmc/Model/ErrorResult.cs | 0 .../Notifications/Xbmc/Model/TvShow.cs | 0 .../Xbmc/Model/TvShowResponse.cs | 0 .../Notifications/Xbmc/Model/TvShowResult.cs | 0 .../Notifications/Xbmc/Model/VersionResult.cs | 0 .../Xbmc/Model/XbmcJsonResult.cs | 0 .../Notifications/Xbmc/Model/XbmcVersion.cs | 0 .../Notifications/Xbmc/TestXbmcCommand.cs | 0 .../NzbDrone.Core}/Notifications/Xbmc/Xbmc.cs | 0 .../Notifications/Xbmc/XbmcService.cs | 0 .../Notifications/Xbmc/XbmcSettings.cs | 0 .../NzbDrone.Core}/NzbDrone.Core.csproj | 4 +- .../Organizer/EpisodeSortingType.cs | 0 .../Organizer/FileNameBuilder.cs | 0 .../NzbDrone.Core}/Organizer/NamingConfig.cs | 0 .../NzbDrone.Core}/Parser/Language.cs | 0 .../Parser/Model/LocalEpisode.cs | 0 .../Parser/Model/ParsedEpisodeInfo.cs | 0 .../Parser/Model/ReleaseInfo.cs | 0 .../Parser/Model/RemoteEpisode.cs | 0 .../Parser/Model/TorrentInfo.cs | 0 .../NzbDrone.Core}/Parser/Parser.cs | 0 .../NzbDrone.Core}/Parser/ParsingService.cs | 0 .../NzbDrone.Core}/Parser/QualityParser.cs | 0 .../ProgressMessaging}/CommandUpdatedEvent.cs | 0 .../ProgressMessageTarget.cs | 0 .../Properties/AnalysisRules.ruleset | 0 .../NzbDrone.Core}/Properties/AssemblyInfo.cs | 0 .../NzbDrone.Core}/Qualities/Quality.cs | 0 .../Qualities/QualityProfile.cs | 0 .../Qualities/QualityProfileInUseException.cs | 0 .../Qualities/QualityProfileRepository.cs | 0 .../Qualities/QualityProfileService.cs | 0 .../NzbDrone.Core}/Qualities/QualitySize.cs | 0 .../Qualities/QualitySizeRepository.cs | 0 .../Qualities/QualitySizeService.cs | 0 .../NzbDrone.Core}/Queue/Queue.cs | 0 .../NzbDrone.Core}/Queue/QueueScheduler.cs | 0 .../NzbDrone.Core}/Queue/QueueService.cs | 0 .../NzbDrone.Core}/Queue/UpdateQueueEvent.cs | 0 .../NzbDrone.Core}/Rest/RestException.cs | 0 .../Rest/RestSharpExtensions.cs | 0 .../NzbDrone.Core}/RootFolders/RootFolder.cs | 0 .../RootFolders/RootFolderService.cs | 0 .../RootFolders/UnmappedFolder.cs | 0 .../SeriesStats/SeriesStatistics.cs | 0 .../SeriesStats/SeriesStatisticsRepository.cs | 0 .../SeriesStats/SeriesStatisticsService.cs | 0 .../ConfigContractNotFoundException.cs | 0 .../ThingiProvider/IProvider.cs | 0 .../ThingiProvider/IProviderConfig.cs | 0 .../ThingiProvider/IProviderFactory.cs | 0 .../ThingiProvider/IProviderRepository.cs | 0 .../ThingiProvider/NullConfig.cs | 0 .../ThingiProvider/ProviderDefinition.cs | 0 .../ThingiProvider/ProviderFactory.cs | 0 .../ThingiProvider/ProviderRepository.cs | 0 .../Tv/Commands/RefreshSeriesCommand.cs | 0 .../NzbDrone.Core}/Tv/Episode.cs | 0 .../NzbDrone.Core}/Tv/EpisodeRepository.cs | 278 +++++++-------- .../NzbDrone.Core}/Tv/EpisodeService.cs | 0 .../Tv/Events/EpisodeInfoAddedEvent.cs | 0 .../Tv/Events/EpisodeInfoDeletedEvent.cs | 0 .../Tv/Events/EpisodeInfoUpdatedEvent.cs | 0 .../Tv/Events/SeriesAddedEvent.cs | 0 .../Tv/Events/SeriesDeletedEvent.cs | 0 .../Tv/Events/SeriesUpdatedEvent.cs | 0 .../NzbDrone.Core}/Tv/QualityModel.cs | 0 .../Tv/RefreshEpisodeService.cs | 286 ++++++++-------- .../NzbDrone.Core}/Tv/RefreshSeriesService.cs | 0 .../NzbDrone.Core}/Tv/Season.cs | 0 .../NzbDrone.Core}/Tv/Series.cs | 0 .../NzbDrone.Core}/Tv/SeriesRepository.cs | 0 .../NzbDrone.Core}/Tv/SeriesService.cs | 0 .../NzbDrone.Core}/Tv/SeriesStatusType.cs | 0 .../NzbDrone.Core}/Tv/SeriesTypes.cs | 0 .../Commands/ApplicationUpdateCommand.cs | 0 .../Update/InstallUpdateService.cs | 0 .../Update/RecentUpdateProvider.cs | 0 .../NzbDrone.Core}/Update/UpdateChanges.cs | 0 .../Update/UpdateCheckService.cs | 0 .../NzbDrone.Core}/Update/UpdatePackage.cs | 0 .../Update/UpdatePackageAvailable.cs | 0 .../Update/UpdatePackageProvider.cs | 0 .../Validation/RuleBuilderExtensions.cs | 0 .../NzbDrone.Core}/packages.config | 0 .../AccessControl/FirewallAdapter.cs | 0 .../AccessControl/NetshProvider.cs | 0 .../AccessControl/SslAdapter.cs | 0 .../AccessControl/UrlAclAdapter.cs | 0 .../NzbDrone.Host}/ApplicationModes.cs | 0 .../NzbDrone.Host}/ApplicationServer.cs | 0 .../NzbDrone.Host}/Bootstrap.cs | 0 .../NzbDrone.Host}/IUserAlert.cs | 0 .../NzbDrone.Host}/MainAppContainerBuilder.cs | 0 {NzbDrone.Host => src/NzbDrone.Host}/NLog.xsd | 0 .../NzbDrone.Host}/NzbDrone.Host.csproj | 4 +- .../NzbDrone.Host}/NzbDrone.ico | Bin .../NzbDrone.Host}/Owin/IHostController.cs | 0 .../Owin/MiddleWare/IOwinMiddleWare.cs | 0 .../Owin/MiddleWare/NancyMiddleWare.cs | 0 .../Owin/MiddleWare/SignalRMiddleWare.cs | 0 .../NzbDrone.Host}/Owin/NlogTextWriter.cs | 0 .../NzbDrone.Host}/Owin/OwinHostController.cs | 0 .../Owin/OwinServiceProvider.cs | 0 .../Owin/OwinTraceOutputFactory.cs | 0 .../NzbDrone.Host}/Owin/PortInUseException.cs | 0 .../NzbDrone.Host}/PlatformValidation.cs | 0 .../NzbDrone.Host}/PriorityMonitor.cs | 0 .../NzbDrone.Host}/Properties/AssemblyInfo.cs | 0 .../NzbDrone.Host}/Router.cs | 0 .../TerminateApplicationException.cs | 0 .../NzbDrone.Host}/app.config | 0 .../NzbDrone.Host}/packages.config | 0 .../Client/ClientBase.cs | 306 ++++++++--------- .../Client/EpisodeClient.cs | 0 .../Client/IndexerClient.cs | 0 .../Client/ReleaseClient.cs | 0 .../Client/SeriesClient.cs | 0 .../CommandIntegerationTests.cs | 0 .../EpisodeIntegrationTests.cs | 0 .../HistoryIntegrationTest.cs | 0 .../IndexerIntegrationFixture.cs | 0 .../IntegrationTest.cs | 0 .../IntegrationTestDirectoryInfo.cs | 0 .../NamingConfigTests.cs | 0 .../NzbDrone.Integration.Test.csproj | 0 .../NzbDroneRunner.cs | 0 .../Properties/AssemblyInfo.cs | 0 .../QualityProfileIntegrationTest.cs | 0 .../ReleaseIntegrationTest.cs | 0 .../RootFolderIntegrationTest.cs | 0 .../SeriesIntegrationTest.cs | 0 .../packages.config | 0 .../JsonTests/JsonFixture.cs | 0 .../NzbDrone.Libraries.Test.csproj | 0 .../Properties/AssemblyInfo.cs | 0 .../NzbDrone.Libraries.Test}/packages.config | 0 .../BroadcastSignalRMessage.cs | 0 .../NoOpPerformanceCounterManager.cs | 0 .../NzbDrone.SignalR}/NzbDrone.SignalR.csproj | 4 +- .../NzbDronePersistentConnection.cs | 0 .../Properties/AssemblyInfo.cs | 0 .../NzbDrone.SignalR}/Serializer.cs | 0 .../NzbDrone.SignalR}/SignalRMessage.cs | 0 .../SignalrDependencyResolver.cs | 0 .../NzbDrone.SignalR}/packages.config | 0 .../NzbDrone.Test.Common}/App.config | 0 .../AutoMoq/AutoMoqer.cs | 0 .../NzbDrone.Test.Common}/AutoMoq/License.txt | 0 .../Unity/AutoMockingBuilderStrategy.cs | 0 .../Unity/AutoMockingContainerExtension.cs | 0 .../Categories/DiskAccessTestAttribute.cs | 0 .../Categories/IntegrationTestAttribute.cs | 0 .../ConcurrencyCounter.cs | 0 .../ExceptionVerification.cs | 0 .../NzbDrone.Test.Common}/License.txt | 0 .../NzbDrone.Test.Common}/LoggingTest.cs | 0 .../NzbDrone.Test.Common}/MockerExtensions.cs | 0 .../NzbDrone.Test.Common.csproj | 0 .../NzbDrone.Test.Common}/ObjectExtentions.cs | 0 .../Properties/AssemblyInfo.cs | 0 .../ReflectionExtensions.cs | 0 .../NzbDrone.Test.Common}/StringExtensions.cs | 0 .../NzbDrone.Test.Common}/TestBase.cs | 0 .../NzbDrone.Test.Common}/TestException.cs | 0 .../NzbDrone.Test.Common}/packages.config | 0 .../NzbDrone.Test.Dummy}/DummyApp.cs | 0 .../NzbDrone.Test.Dummy.csproj | 0 .../Properties/AssemblyInfo.cs | 0 .../NzbDrone.Test.Dummy}/app.config | 0 .../InstallUpdateServiceFixture.cs | 0 .../NzbDrone.Update.Test}/License.txt | 0 .../NzbDrone.Update.Test.csproj | 0 .../NzbDrone.Update.Test}/ProgramFixture.cs | 0 .../Properties/AssemblyInfo.cs | 0 .../StartNzbDroneService.cs | 0 .../UpdateProviderStartFixture.cs | 0 .../NzbDrone.Update.Test}/packages.config | 0 .../NzbDrone.Update}/AppType.cs | 0 .../NzbDrone.Update}/NLog.xsd | 0 .../NzbDrone.Update}/NzbDrone.Update.csproj | 4 +- .../Properties/AssemblyInfo.cs | 0 .../NzbDrone.Update}/UpdateApp.cs | 0 .../UpdateContainerBuilder.cs | 0 .../UpdateEngine/BackupAndRestore.cs | 0 .../UpdateEngine/DetectApplicationType.cs | 0 .../UpdateEngine/InstallUpdateService.cs | 0 .../UpdateEngine/StartNzbDrone.cs | 0 .../UpdateEngine/TerminateNzbDrone.cs | 0 .../NzbDrone.Update}/app.config | 0 .../NzbDrone.Update}/packages.config | 0 NzbDrone.sln => src/NzbDrone.sln | 0 .../NzbDrone.sln.DotSettings | 0 .../NzbDrone}/MessageBoxUserAlert.cs | 0 {NzbDrone => src/NzbDrone}/NzbDrone.csproj | 4 +- .../NzbDrone}/Properties/AssemblyInfo.cs | 0 .../Properties/Resources.Designer.cs | 0 .../NzbDrone}/Properties/Resources.resx | 0 .../NzbDrone}/SysTray/SysTrayApp.cs | 0 {NzbDrone => src/NzbDrone}/WindowsApp.cs | 0 {NzbDrone => src/NzbDrone}/packages.config | 0 .../ServiceHelpers}/ServiceInstall/Program.cs | 0 .../ServiceInstall/Properties/AssemblyInfo.cs | 0 .../ServiceInstall/ServiceHelper.cs | 0 .../ServiceInstall/ServiceInstall.csproj | 4 +- .../ServiceHelpers}/ServiceInstall/app.config | 0 .../ServiceInstall/app.manifest | 0 .../ServiceInstall/green_puzzle.ico | Bin .../ServiceUninstall/Program.cs | 0 .../Properties/AssemblyInfo.cs | 0 .../ServiceUninstall/ServiceHelper.cs | 0 .../ServiceUninstall/ServiceUninstall.csproj | 4 +- .../ServiceUninstall/app.config | 0 .../ServiceUninstall/app.manifest | 0 .../ServiceUninstall/red_puzzle.ico | Bin .../SharedLiveTemplates.xml | 0 {UI => src/UI}/.idea/.name | 0 {UI => src/UI}/.idea/NzbDrone.UI.iml | 0 {UI => src/UI}/.idea/codeStyleSettings.xml | 0 {UI => src/UI}/.idea/dictionaries/Keivan.xml | 0 .../UI}/.idea/dictionaries/Keivan_Beigi.xml | 0 {UI => src/UI}/.idea/dictionaries/Mark.xml | 0 {UI => src/UI}/.idea/encodings.xml | 0 .../inspectionProfiles/Project_Default.xml | 0 .../inspectionProfiles/profiles_settings.xml | 0 {UI => src/UI}/.idea/jsLibraryMappings.xml | 0 {UI => src/UI}/.idea/jsLinters/jshint.xml | 0 {UI => src/UI}/.idea/jsLinters/jslint.xml | 0 {UI => src/UI}/.idea/misc.xml | 0 {UI => src/UI}/.idea/modules.xml | 0 .../runConfigurations/Debug___Chrome.xml | 0 .../runConfigurations/Debug___Firefox.xml | 0 {UI => src/UI}/.idea/scopes/NzbDrone.xml | 0 .../UI}/.idea/scopes/scope_settings.xml | 0 {UI => src/UI}/.idea/vcs.xml | 0 .../UI}/AddSeries/AddSeriesCollection.js | 0 {UI => src/UI}/AddSeries/AddSeriesLayout.js | 0 .../AddSeries/AddSeriesLayoutTemplate.html | 0 {UI => src/UI}/AddSeries/AddSeriesView.js | 0 .../UI}/AddSeries/AddSeriesViewTemplate.html | 0 .../AddExistingSeriesCollectionView.js | 0 .../Existing/UnmappedFolderCollection.js | 0 .../AddSeries/Existing/UnmappedFolderModel.js | 0 .../UI}/AddSeries/NotFoundTemplate.html | 0 {UI => src/UI}/AddSeries/NotFoundView.js | 0 .../UI}/AddSeries/RootFolders/Collection.js | 0 .../AddSeries/RootFolders/CollectionView.js | 0 .../UI}/AddSeries/RootFolders/ItemView.js | 0 .../RootFolders/ItemViewTemplate.html | 0 .../UI}/AddSeries/RootFolders/Layout.js | 0 .../AddSeries/RootFolders/LayoutTemplate.html | 0 {UI => src/UI}/AddSeries/RootFolders/Model.js | 0 .../RootFolderSelectionPartial.html | 0 .../StartingSeasonSelectionPartial.html | 0 .../AddSeries/SearchResultCollectionView.js | 0 {UI => src/UI}/AddSeries/SearchResultView.js | 322 +++++++++--------- .../AddSeries/SearchResultViewTemplate.html | 0 {UI => src/UI}/AddSeries/addSeries.less | 0 {UI => src/UI}/Calendar/CalendarLayout.js | 0 .../UI}/Calendar/CalendarLayoutTemplate.html | 0 {UI => src/UI}/Calendar/CalendarView.js | 0 {UI => src/UI}/Calendar/Collection.js | 0 {UI => src/UI}/Calendar/UpcomingCollection.js | 0 .../UI}/Calendar/UpcomingCollectionView.js | 0 {UI => src/UI}/Calendar/UpcomingItemView.js | 0 .../Calendar/UpcomingItemViewTemplate.html | 0 {UI => src/UI}/Calendar/calendar.less | 0 {UI => src/UI}/Cells/ApprovalStatusCell.js | 0 .../UI}/Cells/ApprovalStatusCellTemplate.html | 0 .../UI}/Cells/Edit/QualityCellEditor.js | 0 .../Cells/Edit/QualityCellEditorTemplate.html | 0 {UI => src/UI}/Cells/EpisodeActionsCell.js | 0 .../UI}/Cells/EpisodeActionsCellTemplate.html | 0 {UI => src/UI}/Cells/EpisodeNumberCell.js | 0 {UI => src/UI}/Cells/EpisodeProgressCell.js | 0 .../Cells/EpisodeProgressCellTemplate.html | 0 {UI => src/UI}/Cells/EpisodeStatusCell.js | 0 {UI => src/UI}/Cells/EpisodeTitleCell.js | 0 {UI => src/UI}/Cells/FileSizeCell.js | 0 .../UI}/Cells/Header/QualityHeaderCell.js | 0 {UI => src/UI}/Cells/IndexerCell.js | 0 {UI => src/UI}/Cells/NzbDroneCell.js | 0 {UI => src/UI}/Cells/QualityCell.js | 0 {UI => src/UI}/Cells/QualityCellTemplate.html | 0 {UI => src/UI}/Cells/QualityProfileCell.js | 0 {UI => src/UI}/Cells/RelativeDateCell.js | 0 {UI => src/UI}/Cells/SeriesActionsCell.js | 0 {UI => src/UI}/Cells/SeriesStatusCell.js | 0 {UI => src/UI}/Cells/SeriesTitleCell.js | 0 {UI => src/UI}/Cells/SeriesTitleTemplate.html | 0 {UI => src/UI}/Cells/TemplatedCell.js | 0 {UI => src/UI}/Cells/ToggleCell.js | 0 {UI => src/UI}/Cells/cells.less | 0 {UI => src/UI}/Commands/CommandCollection.js | 0 {UI => src/UI}/Commands/CommandController.js | 0 .../CommandMessengerCollectionView.js | 0 .../UI}/Commands/CommandMessengerItemView.js | 0 {UI => src/UI}/Commands/CommandModel.js | 0 {UI => src/UI}/Config.js | 0 {UI => src/UI}/Content/Backgrid/backgrid.less | 0 {UI => src/UI}/Content/Backgrid/filter.less | 0 .../UI}/Content/Backgrid/paginator.less | 0 .../UI}/Content/Bootstrap/accordion.less | 0 {UI => src/UI}/Content/Bootstrap/alerts.less | 0 .../UI}/Content/Bootstrap/bootstrap.less | 0 .../UI}/Content/Bootstrap/breadcrumbs.less | 0 .../UI}/Content/Bootstrap/button-groups.less | 0 {UI => src/UI}/Content/Bootstrap/buttons.less | 0 .../UI}/Content/Bootstrap/carousel.less | 0 {UI => src/UI}/Content/Bootstrap/close.less | 0 {UI => src/UI}/Content/Bootstrap/code.less | 0 .../Bootstrap/component-animations.less | 0 .../UI}/Content/Bootstrap/dropdowns.less | 0 {UI => src/UI}/Content/Bootstrap/forms.less | 0 {UI => src/UI}/Content/Bootstrap/grid.less | 0 .../UI}/Content/Bootstrap/hero-unit.less | 0 .../UI}/Content/Bootstrap/labels-badges.less | 0 {UI => src/UI}/Content/Bootstrap/layouts.less | 0 {UI => src/UI}/Content/Bootstrap/media.less | 0 {UI => src/UI}/Content/Bootstrap/mixins.less | 0 {UI => src/UI}/Content/Bootstrap/modals.less | 0 {UI => src/UI}/Content/Bootstrap/navbar.less | 0 {UI => src/UI}/Content/Bootstrap/navs.less | 0 {UI => src/UI}/Content/Bootstrap/pager.less | 0 .../UI}/Content/Bootstrap/pagination.less | 0 .../UI}/Content/Bootstrap/popovers.less | 0 .../UI}/Content/Bootstrap/progress-bars.less | 0 {UI => src/UI}/Content/Bootstrap/reset.less | 0 .../UI}/Content/Bootstrap/scaffolding.less | 0 {UI => src/UI}/Content/Bootstrap/sprites.less | 0 {UI => src/UI}/Content/Bootstrap/tables.less | 0 .../UI}/Content/Bootstrap/thumbnails.less | 0 {UI => src/UI}/Content/Bootstrap/tooltip.less | 0 {UI => src/UI}/Content/Bootstrap/type.less | 0 .../UI}/Content/Bootstrap/utilities.less | 0 .../UI}/Content/Bootstrap/variables.less | 0 {UI => src/UI}/Content/Bootstrap/wells.less | 0 .../UI/Content/FontAwesome/FontAwesome.otf | Bin .../UI}/Content/FontAwesome/bootstrap.less | 0 {UI => src/UI}/Content/FontAwesome/core.less | 0 .../UI}/Content/FontAwesome/extras.less | 0 .../Content/FontAwesome/font-awesome-ie7.less | 0 .../UI}/Content/FontAwesome/font-awesome.less | 0 .../FontAwesome/fontawesome-webfont.eot | Bin .../FontAwesome/fontawesome-webfont.svg | 0 .../FontAwesome/fontawesome-webfont.ttf | Bin .../FontAwesome/fontawesome-webfont.woff | Bin {UI => src/UI}/Content/FontAwesome/icons.less | 0 .../UI}/Content/FontAwesome/mixins.less | 0 {UI => src/UI}/Content/FontAwesome/path.less | 0 .../UI}/Content/FontAwesome/variables.less | 0 {UI => src/UI}/Content/Images/404.png | Bin .../UI}/Content/Images/black_linen_v2.png | Bin {UI => src/UI}/Content/Images/logo.png | Bin {UI => src/UI}/Content/Images/pattern.png | Bin {UI => src/UI}/Content/Images/poster-dark.jpg | Bin {UI => src/UI}/Content/Images/touch/114.png | Bin {UI => src/UI}/Content/Images/touch/144.png | Bin {UI => src/UI}/Content/Images/touch/57.png | Bin {UI => src/UI}/Content/Images/touch/72.png | Bin .../UI}/Content/Messenger/messenger.css | 0 .../Content/Messenger/messenger.future.css | 0 .../UI}/Content/Overrides/bootstrap.less | 0 .../Overrides/bootstrap.toggle-switch.less | 0 {UI => src/UI}/Content/Overrides/browser.less | 0 .../UI}/Content/bootstrap.toggle-switch.css | 0 {UI => src/UI}/Content/font.less | 0 .../UI/Content/fonts/opensans-italic.eot | Bin .../UI/Content/fonts/opensans-italic.ttf | Bin .../UI/Content/fonts/opensans-italic.woff | Bin .../UI/Content/fonts/opensans-light.eot | Bin .../UI/Content/fonts/opensans-light.ttf | Bin .../UI/Content/fonts/opensans-light.woff | Bin .../UI/Content/fonts/opensans-lightitalic.eot | Bin .../UI/Content/fonts/opensans-lightitalic.ttf | Bin .../Content/fonts/opensans-lightitalic.woff | Bin .../UI/Content/fonts/opensans-regular.eot | Bin .../UI/Content/fonts/opensans-regular.ttf | Bin .../UI/Content/fonts/opensans-regular.woff | Bin .../UI/Content/fonts/opensans-semibold.eot | Bin .../UI/Content/fonts/opensans-semibold.ttf | Bin .../UI/Content/fonts/opensans-semibold.woff | Bin .../Content/fonts/opensans-semibolditalic.eot | Bin .../Content/fonts/opensans-semibolditalic.ttf | Bin .../fonts/opensans-semibolditalic.woff | Bin {UI => src/UI}/Content/form.less | 0 {UI => src/UI}/Content/fullcalendar.css | 0 {UI => src/UI}/Content/icons.less | 0 {UI => src/UI}/Content/legend.less | 0 {UI => src/UI}/Content/menu.less | 0 {UI => src/UI}/Content/overrides.less | 0 {UI => src/UI}/Content/prefixer.less | 0 {UI => src/UI}/Content/spinner.less | 0 {UI => src/UI}/Content/theme.less | 0 {UI => src/UI}/Content/variables.less | 0 {UI => src/UI}/Controller.js | 0 .../UI}/Episode/EpisodeDetailsLayout.js | 0 .../Episode/EpisodeDetailsLayoutTemplate.html | 0 {UI => src/UI}/Episode/Search/ButtonsView.js | 0 .../Episode/Search/ButtonsViewTemplate.html | 0 .../UI}/Episode/Search/EpisodeSearchLayout.js | 0 .../Search/EpisodeSearchLayoutTemplate.html | 0 {UI => src/UI}/Episode/Search/ManualLayout.js | 0 .../Episode/Search/ManualLayoutTemplate.html | 0 .../Episode/Summary/EpisodeSummaryLayout.js | 0 .../Summary/EpisodeSummaryLayoutTemplate.html | 0 {UI => src/UI}/Episode/Summary/NoFileView.js | 0 .../Episode/Summary/NoFileViewTemplate.html | 0 {UI => src/UI}/Form/CheckboxTemplate.html | 0 {UI => src/UI}/Form/FormBuilder.js | 0 {UI => src/UI}/Form/FormHelpPartial.html | 0 {UI => src/UI}/Form/PasswordTemplate.html | 0 {UI => src/UI}/Form/SelectTemplate.html | 0 {UI => src/UI}/Form/TextboxTemplate.html | 0 {UI => src/UI}/Handlebars/Handlebars.Debug.js | 0 {UI => src/UI}/Handlebars/Helpers/DateTime.js | 0 {UI => src/UI}/Handlebars/Helpers/Episode.js | 0 {UI => src/UI}/Handlebars/Helpers/Html.js | 0 {UI => src/UI}/Handlebars/Helpers/Numbers.js | 0 {UI => src/UI}/Handlebars/Helpers/Quality.js | 0 {UI => src/UI}/Handlebars/Helpers/Series.js | 0 {UI => src/UI}/Handlebars/Helpers/Version.js | 0 .../backbone.marionette.templates.js | 0 .../UI}/History/Details/HistoryDetailsView.js | 0 .../Details/HistoryDetailsViewTemplate.html | 0 {UI => src/UI}/History/HistoryCollection.js | 0 {UI => src/UI}/History/HistoryLayout.js | 0 .../UI}/History/HistoryLayoutTemplate.html | 0 {UI => src/UI}/History/HistoryModel.js | 0 .../UI}/History/Queue/QueueCollection.js | 0 {UI => src/UI}/History/Queue/QueueLayout.js | 0 .../History/Queue/QueueLayoutTemplate.html | 0 {UI => src/UI}/History/Queue/QueueModel.js | 0 {UI => src/UI}/History/Queue/TimeleftCell.js | 0 .../History/Table/ControlsColumnTemplate.html | 0 {UI => src/UI}/History/Table/EventTypeCell.js | 0 .../UI}/History/Table/HistoryDetailsCell.js | 0 .../UI}/History/Table/HistoryTableLayout.js | 0 .../Table/HistoryTableLayoutTemplate.html | 0 .../UI}/Instrumentation/ErrorHandler.js | 0 .../UI}/Instrumentation/StringFormat.js | 0 .../JsLibraries/backbone.backgrid.filter.js | 0 .../UI}/JsLibraries/backbone.backgrid.js | 0 .../backbone.backgrid.paginator.js | 0 .../UI}/JsLibraries/backbone.deep.model.js | 0 {UI => src/UI}/JsLibraries/backbone.js | 0 .../UI}/JsLibraries/backbone.marionette.js | 0 .../UI}/JsLibraries/backbone.modelbinder.js | 0 .../UI}/JsLibraries/backbone.pageable.js | 0 .../UI}/JsLibraries/backbone.shortcuts.js | 0 .../UI}/JsLibraries/backbone.validation.js | 0 {UI => src/UI}/JsLibraries/bootstrap.js | 0 {UI => src/UI}/JsLibraries/filesize.js | 0 {UI => src/UI}/JsLibraries/fullcalendar.js | 0 .../UI}/JsLibraries/handlebars.helpers.js | 0 .../UI}/JsLibraries/handlebars.runtime.js | 0 .../UI}/JsLibraries/jquery.backstretch.js | 0 .../UI}/JsLibraries/jquery.dotdotdot.js | 0 {UI => src/UI}/JsLibraries/jquery.js | 0 {UI => src/UI}/JsLibraries/jquery.knob.js | 0 {UI => src/UI}/JsLibraries/jquery.signalR.js | 0 .../UI}/JsLibraries/lodash.underscore.js | 0 {UI => src/UI}/JsLibraries/messenger.js | 0 {UI => src/UI}/JsLibraries/moment.js | 0 {UI => src/UI}/JsLibraries/require.js | 0 {UI => src/UI}/Missing/Collection.js | 0 .../UI}/Missing/ControlsColumnTemplate.html | 0 {UI => src/UI}/Missing/MissingLayout.js | 0 .../UI}/Missing/MissingLayoutTemplate.html | 0 .../UI}/Mixins/AsChangeTrackingModel.js | 0 {UI => src/UI}/Mixins/AsModelBoundView.js | 0 {UI => src/UI}/Mixins/AsNamedView.js | 0 {UI => src/UI}/Mixins/AsValidatedView.js | 0 {UI => src/UI}/Mixins/AutoComplete.js | 0 .../backbone.marionette.region.mixin.js | 0 .../UI}/Mixins/backbone.signalr.mixin.js | 0 {UI => src/UI}/Mixins/jquery.ajax.js | 0 .../UI}/Mixins/underscore.mixin.deepExtend.js | 0 {UI => src/UI}/Navbar/NavbarTemplate.html | 0 {UI => src/UI}/Navbar/NavbarView.js | 0 {UI => src/UI}/Navbar/Search.js | 0 .../ProgressMessageCollection.js | 0 .../UI}/Quality/QualityProfileCollection.js | 0 {UI => src/UI}/Quality/QualityProfileModel.js | 0 .../QualityProfileSelectionPartial.html | 0 .../UI}/Quality/QualitySizeCollection.js | 0 {UI => src/UI}/Quality/QualitySizeModel.js | 0 {UI => src/UI}/Release/Collection.js | 0 {UI => src/UI}/Release/DownloadReportCell.js | 0 {UI => src/UI}/Release/Layout.js | 0 {UI => src/UI}/Release/LayoutTemplate.html | 0 {UI => src/UI}/Release/Model.js | 0 {UI => src/UI}/Router.js | 0 {UI => src/UI}/SeasonPass/SeasonPassLayout.js | 0 .../SeasonPass/SeasonPassLayoutTemplate.html | 0 .../UI}/SeasonPass/SeriesCollectionView.js | 0 {UI => src/UI}/SeasonPass/SeriesLayout.js | 0 .../UI}/SeasonPass/SeriesLayoutTemplate.html | 0 .../Series/Delete/DeleteSeriesTemplate.html | 0 .../UI}/Series/Delete/DeleteSeriesView.js | 0 {UI => src/UI}/Series/Details/InfoView.js | 0 .../UI}/Series/Details/InfoViewTemplate.html | 0 .../Series/Details/SeasonCollectionView.js | 0 {UI => src/UI}/Series/Details/SeasonLayout.js | 0 .../Series/Details/SeasonLayoutTemplate.html | 0 .../UI}/Series/Details/SeriesDetailsLayout.js | 0 .../Series/Details/SeriesDetailsTemplate.html | 0 .../UI}/Series/Edit/EditSeriesTemplate.html | 0 {UI => src/UI}/Series/Edit/EditSeriesView.js | 0 {UI => src/UI}/Series/EpisodeCollection.js | 0 .../UI}/Series/EpisodeFileCollection.js | 0 {UI => src/UI}/Series/EpisodeFileModel.js | 0 {UI => src/UI}/Series/EpisodeModel.js | 0 .../UI}/Series/Index/EmptySeriesIndexView.js | 0 .../UI}/Series/Index/EmptyTemplate.html | 0 {UI => src/UI}/Series/Index/EmptyView.js | 0 .../Series/Index/EpisodeProgressPartial.html | 0 {UI => src/UI}/Series/Index/FooterModel.js | 0 {UI => src/UI}/Series/Index/FooterView.js | 0 .../UI}/Series/Index/FooterViewTemplate.html | 0 .../Series/Index/List/CollectionTemplate.html | 0 .../UI}/Series/Index/List/CollectionView.js | 0 .../UI}/Series/Index/List/ItemTemplate.html | 0 {UI => src/UI}/Series/Index/List/ItemView.js | 0 .../Index/Posters/CollectionTemplate.html | 0 .../Series/Index/Posters/CollectionView.js | 0 .../Series/Index/Posters/ItemTemplate.html | 0 .../UI}/Series/Index/Posters/ItemView.js | 0 .../UI}/Series/Index/SeriesIndexLayout.js | 0 .../Index/SeriesIndexLayoutTemplate.html | 0 {UI => src/UI}/Series/SeasonCollection.js | 0 {UI => src/UI}/Series/SeasonModel.js | 0 {UI => src/UI}/Series/SeriesCollection.js | 0 {UI => src/UI}/Series/SeriesModel.js | 0 {UI => src/UI}/Series/series.less | 0 {UI => src/UI}/ServerStatus.js | 0 .../Settings/DownloadClient/BlackholeView.js | 0 .../DownloadClient/BlackholeViewTemplate.html | 0 .../UI}/Settings/DownloadClient/Layout.js | 0 .../DownloadClient/LayoutTemplate.html | 0 .../UI}/Settings/DownloadClient/NzbgetView.js | 0 .../DownloadClient/NzbgetViewTemplate.html | 0 .../Settings/DownloadClient/PneumaticView.js | 0 .../DownloadClient/PneumaticViewTemplate.html | 0 .../UI}/Settings/DownloadClient/SabView.js | 0 .../DownloadClient/SabViewTemplate.html | 0 .../Settings/General/GeneralSettingsModel.js | 0 .../UI}/Settings/General/GeneralTemplate.html | 0 .../UI}/Settings/General/GeneralView.js | 0 .../UI}/Settings/Indexers/Collection.js | 0 .../Settings/Indexers/CollectionTemplate.html | 0 .../UI}/Settings/Indexers/CollectionView.js | 0 .../UI}/Settings/Indexers/DeleteTemplate.html | 0 .../UI}/Settings/Indexers/DeleteView.js | 0 .../UI}/Settings/Indexers/EditTemplate.html | 0 {UI => src/UI}/Settings/Indexers/EditView.js | 0 .../UI}/Settings/Indexers/IndexerLayout.js | 0 .../Indexers/IndexerLayoutTemplate.html | 0 .../UI}/Settings/Indexers/ItemTemplate.html | 0 {UI => src/UI}/Settings/Indexers/ItemView.js | 0 {UI => src/UI}/Settings/Indexers/Model.js | 0 .../Indexers/Options/IndexerOptionsView.js | 0 .../Options/IndexerOptionsViewTemplate.html | 0 .../UI}/Settings/Indexers/indexers.less | 0 .../FileManagement/FileManagementView.js | 0 .../FileManagementViewTemplate.html | 0 .../MediaManagement/MediaManagementLayout.js | 0 .../MediaManagementLayoutTemplate.html | 0 .../Settings/MediaManagement/Naming/Model.js | 0 .../Settings/MediaManagement/Naming/View.js | 0 .../MediaManagement/Naming/ViewTemplate.html | 0 .../Settings/MediaManagement/Sorting/View.js | 0 .../MediaManagement/Sorting/ViewTemplate.html | 0 .../Notifications/AddItemTemplate.html | 0 .../UI}/Settings/Notifications/AddItemView.js | 0 .../Settings/Notifications/AddTemplate.html | 0 .../UI}/Settings/Notifications/AddView.js | 0 .../UI}/Settings/Notifications/Collection.js | 0 .../Notifications/CollectionTemplate.html | 0 .../Settings/Notifications/CollectionView.js | 0 .../Notifications/DeleteTemplate.html | 0 .../UI}/Settings/Notifications/DeleteView.js | 0 .../Settings/Notifications/EditTemplate.html | 0 .../UI}/Settings/Notifications/EditView.js | 0 .../Settings/Notifications/ItemTemplate.html | 0 .../UI}/Settings/Notifications/ItemView.js | 0 .../UI}/Settings/Notifications/Model.js | 0 .../UI}/Settings/Notifications/SchemaModal.js | 0 .../Settings/Notifications/notifications.less | 0 .../Quality/Profile/AllowedLabeler.js | 0 .../Quality/Profile/DeleteTemplate.html | 0 .../Settings/Quality/Profile/DeleteView.js | 0 .../Profile/EditQualityProfileTemplate.html | 0 .../Quality/Profile/EditQualityProfileView.js | 0 .../QualityProfileCollectionTemplate.html | 0 .../Profile/QualityProfileCollectionView.js | 0 .../Profile/QualityProfileSchemaCollection.js | 0 .../Profile/QualityProfileTemplate.html | 0 .../Quality/Profile/QualityProfileView.js | 0 .../UI}/Settings/Quality/QualityLayout.js | 0 .../Quality/QualityLayoutTemplate.html | 0 .../Size/QualitySizeCollectionTemplate.html | 0 .../Quality/Size/QualitySizeCollectionView.js | 0 .../Quality/Size/QualitySizeTemplate.html | 0 .../Settings/Quality/Size/QualitySizeView.js | 0 {UI => src/UI}/Settings/Quality/quality.less | 0 {UI => src/UI}/Settings/SettingsLayout.js | 0 .../UI}/Settings/SettingsLayoutTemplate.html | 0 {UI => src/UI}/Settings/SettingsModel.js | 0 {UI => src/UI}/Settings/SettingsModelBase.js | 0 {UI => src/UI}/Settings/settings.less | 0 {UI => src/UI}/Shared/Footer/Template.html | 0 {UI => src/UI}/Shared/Footer/View.js | 0 {UI => src/UI}/Shared/FormatHelpers.js | 0 {UI => src/UI}/Shared/Grid/DateHeaderCell.js | 0 {UI => src/UI}/Shared/Grid/HeaderCell.js | 0 {UI => src/UI}/Shared/Grid/Pager.js | 0 {UI => src/UI}/Shared/Grid/PagerTemplate.html | 0 {UI => src/UI}/Shared/LoadingTemplate.html | 0 {UI => src/UI}/Shared/LoadingView.js | 0 {UI => src/UI}/Shared/Messenger.js | 0 {UI => src/UI}/Shared/Modal/Controller.js | 0 {UI => src/UI}/Shared/Modal/Region.js | 0 {UI => src/UI}/Shared/NotFoundTemplate.html | 0 {UI => src/UI}/Shared/NotFoundView.js | 0 {UI => src/UI}/Shared/SignalRBroadcaster.js | 0 {UI => src/UI}/Shared/Styles/card.less | 0 {UI => src/UI}/Shared/Styles/clickable.less | 0 .../Toolbar/Button/ButtonCollectionView.js | 0 .../UI}/Shared/Toolbar/Button/ButtonView.js | 0 .../UI}/Shared/Toolbar/ButtonCollection.js | 0 {UI => src/UI}/Shared/Toolbar/ButtonModel.js | 0 .../UI}/Shared/Toolbar/ButtonTemplate.html | 0 .../Radio/RadioButtonCollectionView.js | 0 .../Shared/Toolbar/Radio/RadioButtonView.js | 0 .../UI}/Shared/Toolbar/ToolbarLayout.js | 0 .../Shared/Toolbar/ToolbarLayoutTemplate.html | 0 {UI => src/UI}/System/About/AboutView.js | 0 .../UI}/System/About/AboutViewTemplate.html | 0 .../UI}/System/Logs/Files/ContentsModel.js | 0 .../UI}/System/Logs/Files/ContentsView.js | 0 .../Logs/Files/ContentsViewTemplate.html | 0 .../UI}/System/Logs/Files/FilenameCell.js | 0 .../System/Logs/Files/LogFileCollection.js | 0 .../UI}/System/Logs/Files/LogFileLayout.js | 0 .../Logs/Files/LogFileLayoutTemplate.html | 0 .../UI}/System/Logs/Files/LogFileModel.js | 0 {UI => src/UI}/System/Logs/Files/Row.js | 0 {UI => src/UI}/System/Logs/Logs.less | 0 {UI => src/UI}/System/Logs/LogsCollection.js | 0 {UI => src/UI}/System/Logs/LogsLayout.js | 0 .../UI}/System/Logs/LogsLayoutTemplate.html | 0 {UI => src/UI}/System/Logs/LogsModel.js | 0 .../UI}/System/Logs/Table/LogLevelCell.js | 0 .../UI}/System/Logs/Table/LogTimeCell.js | 0 .../UI}/System/Logs/Table/LogsTableLayout.js | 0 .../Logs/Table/LogsTableLayoutTemplate.html | 0 {UI => src/UI}/System/StatusModel.js | 0 {UI => src/UI}/System/SystemLayout.js | 0 .../UI}/System/SystemLayoutTemplate.html | 0 .../UI}/System/Update/UpdateCollection.js | 0 .../UI}/System/Update/UpdateCollectionView.js | 0 .../UI}/System/Update/UpdateItemView.js | 0 .../System/Update/UpdateItemViewTemplate.html | 0 {UI => src/UI}/System/Update/UpdateLayout.js | 0 .../System/Update/UpdateLayoutTemplate.html | 0 {UI => src/UI}/System/Update/UpdateModel.js | 0 {UI => src/UI}/System/Update/update.less | 0 {UI => src/UI}/app.js | 0 {UI => src/UI}/favicon.ico | Bin {UI => src/UI}/index.html | 0 {UI => src/UI}/jQuery/RouteBinder.js | 0 {UI => src/UI}/jQuery/ToTheTop.js | 0 {UI => src/UI}/jQuery/TooltipBinder.js | 0 {UI => src/UI}/jQuery/jquery.spin.js | 0 {UI => src/UI}/jQuery/jquery.validation.js | 0 {UI => src/UI}/polyfills.js | 0 1499 files changed, 1054 insertions(+), 1444 deletions(-) delete mode 100644 NzbDrone.Api/NzbDrone.Api.ncrunchproject delete mode 100644 NzbDrone.Common.Test/NzbDrone.Common.Test.ncrunchproject delete mode 100644 NzbDrone.Common/NzbDrone.Common.ncrunchproject delete mode 100644 NzbDrone.Core.Test/App_Data/Config.xml delete mode 100644 NzbDrone.Core/NzbDrone.Core.ncrunchproject delete mode 100644 NzbDrone.Test.Common/NzbDrone.Test.Common.ncrunchproject delete mode 100644 NzbDrone.Test.Dummy/NzbDrone.Test.Dummy.ncrunchproject delete mode 100644 NzbDrone.Update.Test/NzbDrone.Update.Test.ncrunchproject delete mode 100644 NzbDrone.Update/NzbDrone.Update.ncrunchproject delete mode 100644 NzbDrone.Wix/configuration.xml delete mode 100644 NzbDrone.Wix/dotNetInstaller.exe delete mode 100644 NzbDrone.Wix/nzbdrone.wix.build.bat delete mode 100644 NzbDrone.Wix/nzbdrone.wix.build.debug.bat delete mode 100644 NzbDrone.Wix/nzbdrone.wix.build.wxs delete mode 100644 NzbDrone.ncrunchsolution delete mode 100644 ServiceHelpers/ServiceInstall/ServiceInstall.ncrunchproject delete mode 100644 ServiceHelpers/ServiceUninstall/ServiceUninstall.ncrunchproject rename {.nuget => src/.nuget}/NuGet.Config (100%) rename {.nuget => src/.nuget}/NuGet.exe (100%) rename {.nuget => src/.nuget}/NuGet.targets (100%) rename {Exceptron.Client => src/Exceptron.Client}/Configuration/ExceptronConfiguration.cs (100%) rename {Exceptron.Client => src/Exceptron.Client}/ExceptionData.cs (100%) rename {Exceptron.Client => src/Exceptron.Client}/ExceptionSeverity.cs (100%) rename {Exceptron.Client => src/Exceptron.Client}/Exceptron.Client.csproj (97%) rename {Exceptron.Client => src/Exceptron.Client}/Exceptron.Client.nuspec (100%) rename {Exceptron.Client => src/Exceptron.Client}/ExceptronApiException.cs (100%) rename {Exceptron.Client => src/Exceptron.Client}/ExceptronClient.cs (100%) rename {Exceptron.Client => src/Exceptron.Client}/IExceptronClient.cs (100%) rename {Exceptron.Client => src/Exceptron.Client}/IRestClient.cs (100%) rename {Exceptron.Client => src/Exceptron.Client}/Message/ExceptionReport.cs (100%) rename {Exceptron.Client => src/Exceptron.Client}/Message/ExceptionResponse.cs (100%) rename {Exceptron.Client => src/Exceptron.Client}/Message/Frame.cs (100%) rename {Exceptron.Client => src/Exceptron.Client}/NuGet/web.config.transform (100%) rename {Exceptron.Client => src/Exceptron.Client}/Properties/AssemblyInfo.cs (100%) rename {Exceptron.Client => src/Exceptron.Client}/RestClient.cs (100%) rename {Exceptron.Client => src/Exceptron.Client}/fastJSON/Getters.cs (100%) rename {Exceptron.Client => src/Exceptron.Client}/fastJSON/JSON.cs (100%) rename {Exceptron.Client => src/Exceptron.Client}/fastJSON/JsonParser.cs (100%) rename {Exceptron.Client => src/Exceptron.Client}/fastJSON/JsonSerializer.cs (100%) rename {Exceptron.Client => src/Exceptron.Client}/fastJSON/SafeDictionary.cs (100%) rename {Exceptron.Client => src/Exceptron.Client}/fastJSON/license.txt (100%) rename {Libraries => src/Libraries}/Interop.NetFwTypeLib.dll (100%) rename {Libraries => src/Libraries}/Manifest Tool/mt.exe (100%) rename {Libraries => src/Libraries}/Manifest Tool/mt.exe.config (100%) rename {Libraries => src/Libraries}/Sqlite/System.Data.SQLite.dll (100%) rename {Libraries => src/Libraries}/Sqlite/System.Data.SQLite.xml (100%) rename {Libraries => src/Libraries}/Sqlite/sqlite3.dll (100%) rename {Marr.Data => src/Marr.Data}/Converters/BooleanIntConverter.cs (100%) rename {Marr.Data => src/Marr.Data}/Converters/BooleanYNConverter.cs (100%) rename {Marr.Data => src/Marr.Data}/Converters/CastConverter.cs (100%) rename {Marr.Data => src/Marr.Data}/Converters/ConversionException.cs (100%) rename {Marr.Data => src/Marr.Data}/Converters/ConverterContext.cs (100%) rename {Marr.Data => src/Marr.Data}/Converters/EnumIntConverter.cs (100%) rename {Marr.Data => src/Marr.Data}/Converters/EnumStringConverter.cs (100%) rename {Marr.Data => src/Marr.Data}/Converters/IConverter.cs (100%) rename {Marr.Data => src/Marr.Data}/DataHelper.cs (100%) rename {Marr.Data => src/Marr.Data}/DataMapper.cs (100%) rename {Marr.Data => src/Marr.Data}/DataMappingException.cs (100%) rename {Marr.Data => src/Marr.Data}/EntityGraph.cs (100%) rename {Marr.Data => src/Marr.Data}/EntityMerger.cs (100%) rename {Marr.Data => src/Marr.Data}/EntityReference.cs (100%) rename {Marr.Data => src/Marr.Data}/ExtensionMethods.cs (100%) rename {Marr.Data => src/Marr.Data}/GroupingKeyCollection.cs (100%) rename {Marr.Data => src/Marr.Data}/IDataMapper.cs (100%) rename {Marr.Data => src/Marr.Data}/LazyLoaded.cs (100%) rename {Marr.Data => src/Marr.Data}/MapRepository.cs (100%) rename {Marr.Data => src/Marr.Data}/Mapping/ColumnAttribute.cs (100%) rename {Marr.Data => src/Marr.Data}/Mapping/ColumnInfo.cs (100%) rename {Marr.Data => src/Marr.Data}/Mapping/ColumnMap.cs (100%) rename {Marr.Data => src/Marr.Data}/Mapping/ColumnMapBuilder.cs (100%) rename {Marr.Data => src/Marr.Data}/Mapping/ColumnMapCollection.cs (100%) rename {Marr.Data => src/Marr.Data}/Mapping/EnumConversionType.cs (100%) rename {Marr.Data => src/Marr.Data}/Mapping/FluentMappings.cs (100%) rename {Marr.Data => src/Marr.Data}/Mapping/IColumnInfo.cs (100%) rename {Marr.Data => src/Marr.Data}/Mapping/IRelationshipInfo.cs (100%) rename {Marr.Data => src/Marr.Data}/Mapping/MapBuilder.cs (100%) rename {Marr.Data => src/Marr.Data}/Mapping/MappingHelper.cs (100%) rename {Marr.Data => src/Marr.Data}/Mapping/Relationship.cs (100%) rename {Marr.Data => src/Marr.Data}/Mapping/RelationshipAttribute.cs (100%) rename {Marr.Data => src/Marr.Data}/Mapping/RelationshipBuilder.cs (100%) rename {Marr.Data => src/Marr.Data}/Mapping/RelationshipCollection.cs (100%) rename {Marr.Data => src/Marr.Data}/Mapping/RelationshipInfo.cs (100%) rename {Marr.Data => src/Marr.Data}/Mapping/Strategies/AttributeMapStrategy.cs (100%) rename {Marr.Data => src/Marr.Data}/Mapping/Strategies/ConventionMapStrategy.cs (100%) rename {Marr.Data => src/Marr.Data}/Mapping/Strategies/IMapStrategy.cs (100%) rename {Marr.Data => src/Marr.Data}/Mapping/Strategies/PropertyMapStrategy.cs (100%) rename {Marr.Data => src/Marr.Data}/Mapping/Strategies/ReflectionMapStrategyBase.cs (100%) rename {Marr.Data => src/Marr.Data}/Mapping/TableAttribute.cs (100%) rename {Marr.Data => src/Marr.Data}/Mapping/TableBuilder.cs (100%) rename {Marr.Data => src/Marr.Data}/Marr.Data.csproj (98%) rename {Marr.Data => src/Marr.Data}/Parameters/DbTypeBuilder.cs (100%) rename {Marr.Data => src/Marr.Data}/Parameters/IDbTypeBuilder.cs (100%) rename {Marr.Data => src/Marr.Data}/Parameters/OleDbTypeBuilder.cs (100%) rename {Marr.Data => src/Marr.Data}/Parameters/ParameterChainMethods.cs (100%) rename {Marr.Data => src/Marr.Data}/Parameters/SqlDbTypeBuilder.cs (100%) rename {Marr.Data => src/Marr.Data}/Properties/AssemblyInfo.cs (100%) rename {Marr.Data => src/Marr.Data}/QGen/DeleteQuery.cs (100%) rename {Marr.Data => src/Marr.Data}/QGen/Dialects/Dialect.cs (100%) rename {Marr.Data => src/Marr.Data}/QGen/Dialects/FirebirdDialect.cs (100%) rename {Marr.Data => src/Marr.Data}/QGen/Dialects/OracleDialect.cs (100%) rename {Marr.Data => src/Marr.Data}/QGen/Dialects/SqlServerCeDialect.cs (100%) rename {Marr.Data => src/Marr.Data}/QGen/Dialects/SqlServerDialect.cs (100%) rename {Marr.Data => src/Marr.Data}/QGen/Dialects/SqliteDialect.cs (100%) rename {Marr.Data => src/Marr.Data}/QGen/ExpressionVisitor.cs (100%) rename {Marr.Data => src/Marr.Data}/QGen/IQuery.cs (100%) rename {Marr.Data => src/Marr.Data}/QGen/IQueryBuilder.cs (100%) rename {Marr.Data => src/Marr.Data}/QGen/InsertQuery.cs (100%) rename {Marr.Data => src/Marr.Data}/QGen/InsertQueryBuilder.cs (100%) rename {Marr.Data => src/Marr.Data}/QGen/JoinBuilder.cs (100%) rename {Marr.Data => src/Marr.Data}/QGen/PagingQueryDecorator.cs (100%) rename {Marr.Data => src/Marr.Data}/QGen/QueryBuilder.cs (100%) rename {Marr.Data => src/Marr.Data}/QGen/QueryFactory.cs (100%) rename {Marr.Data => src/Marr.Data}/QGen/QueryQueueItem.cs (100%) rename {Marr.Data => src/Marr.Data}/QGen/RowCountQueryDecorator.cs (100%) rename {Marr.Data => src/Marr.Data}/QGen/SelectQuery.cs (100%) rename {Marr.Data => src/Marr.Data}/QGen/SortBuilder.cs (100%) rename {Marr.Data => src/Marr.Data}/QGen/SortColumn.cs (100%) rename {Marr.Data => src/Marr.Data}/QGen/SqlitePagingQueryDecorator.cs (100%) rename {Marr.Data => src/Marr.Data}/QGen/SqliteRowCountQueryDecorator.cs (100%) rename {Marr.Data => src/Marr.Data}/QGen/Table.cs (100%) rename {Marr.Data => src/Marr.Data}/QGen/TableCollection.cs (100%) rename {Marr.Data => src/Marr.Data}/QGen/UpdateQuery.cs (100%) rename {Marr.Data => src/Marr.Data}/QGen/UpdateQueryBuilder.cs (100%) rename {Marr.Data => src/Marr.Data}/QGen/View.cs (100%) rename {Marr.Data => src/Marr.Data}/QGen/WhereBuilder.cs (100%) rename {Marr.Data => src/Marr.Data}/Reflection/IReflectionStrategy.cs (100%) rename {Marr.Data => src/Marr.Data}/Reflection/ReflectionHelper.cs (100%) rename {Marr.Data => src/Marr.Data}/Reflection/SimpleReflectionStrategy.cs (100%) rename {Marr.Data => src/Marr.Data}/SqlModesEnum.cs (100%) rename {Marr.Data => src/Marr.Data}/UnitOfWork.cs (100%) rename {Marr.Data => src/Marr.Data}/UnitOfWorkSharedContext.cs (100%) rename {NzbDrone.Api.Test => src/NzbDrone.Api.Test}/ClientSchemaTests/SchemaBuilderFixture.cs (100%) rename {NzbDrone.Api.Test => src/NzbDrone.Api.Test}/DirectoryLookupServiceFixture.cs (100%) rename {NzbDrone.Api.Test => src/NzbDrone.Api.Test}/MappingTests/ResourceMappingFixture.cs (100%) rename {NzbDrone.Api.Test => src/NzbDrone.Api.Test}/NzbDrone.Api.Test.csproj (100%) rename {NzbDrone.Api.Test => src/NzbDrone.Api.Test}/Properties/AssemblyInfo.cs (100%) rename {NzbDrone.Api.Test => src/NzbDrone.Api.Test}/packages.config (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Authentication/AuthenticationService.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Authentication/EnableBasicAuthInNancy.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Authentication/EnableStatelessAuthInNancy.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Authentication/NzbDroneUser.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Calendar/CalendarModule.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/ClientSchema/Field.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/ClientSchema/FieldDefinitionAttribute.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/ClientSchema/SchemaBuilder.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/ClientSchema/SchemaDeserializer.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/ClientSchema/SelectOption.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Commands/CommandModule.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Commands/CommandResource.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Config/NamingConfigResource.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Config/NamingModule.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Config/NamingSampleResource.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Config/SettingsModule.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Directories/DirectoryLookupService.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Directories/DirectoryModule.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/EpisodeFiles/EpisodeFileModule.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/EpisodeFiles/EpisodeFileResource.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Episodes/EpisodeModule.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Episodes/EpisodeResource.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/ErrorManagement/ApiException.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/ErrorManagement/ErrorHandler.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/ErrorManagement/ErrorModel.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/ErrorManagement/NzbDroneErrorPipeline.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Exceptions/InvalidApiKeyException.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Extensions/LazyExtensions.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Extensions/NancyJsonSerializer.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Extensions/Pipelines/CacheHeaderPipeline.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Extensions/Pipelines/GZipPipeline.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Extensions/Pipelines/IRegisterNancyPipeline.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Extensions/Pipelines/IfModifiedPipeline.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Extensions/ReqResExtensions.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Extensions/RequestExtensions.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Frontend/IsCacheableSpecification.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Frontend/Mappers/IMapHttpRequestsToDisk.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Frontend/Mappers/IndexHtmlMapper.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Frontend/Mappers/LogFileMapper.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Frontend/Mappers/MediaCoverMapper.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Frontend/Mappers/StaticResourceMapper.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Frontend/Mappers/StaticResourceMapperBase.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Frontend/StaticResourceModule.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/History/HistoryModule.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/History/HistoryResource.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/IndexerResource.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Indexers/IndexerModule.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Indexers/IndexerResource.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Indexers/IndexerSchemaModule.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Indexers/ReleaseModule.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Indexers/ReleaseResource.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Logs/LogFileModule.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Logs/LogFileResource.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Logs/LogModule.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Logs/LogResource.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Mapping/CloneInjection.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Mapping/MappingValidation.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Mapping/ResourceMappingException.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Mapping/ValueInjectorExtensions.cs (97%) rename {NzbDrone.Api => src/NzbDrone.Api}/Missing/MissingModule.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/NancyBootstrapper.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Notifications/NotificationModule.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Notifications/NotificationResource.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Notifications/NotificationSchemaModule.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/NzbDrone.Api.csproj (99%) rename {NzbDrone.Api => src/NzbDrone.Api}/NzbDroneApiModule.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/NzbDroneRestModule.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/NzbDroneRestModuleWithSignalR.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/PagingResource.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Properties/AssemblyInfo.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/ProviderModuleBase.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Qualities/QualityProfileModule.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Qualities/QualityProfileResource.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Qualities/QualityProfileSchemaModule.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Qualities/QualitySizeModule.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Qualities/QualitySizeResource.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Queue/QueueModule.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Queue/QueueResource.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/REST/BadRequestException.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/REST/ResourceValidator.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/REST/RestModule.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/REST/RestResource.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/ResourceChangeMessage.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/RootFolders/RootFolderModule.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/RootFolders/RootFolderResource.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Series/SeriesLookupModule.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Series/SeriesModule.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Series/SeriesResource.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/System/SystemModule.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/TinyIoCNancyBootstrapper.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Update/UpdateModule.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Validation/PathValidator.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/Validation/RuleBuilderExtensions.cs (100%) rename {NzbDrone.Api => src/NzbDrone.Api}/packages.config (100%) rename {NzbDrone.App.Test => src/NzbDrone.App.Test}/ContainerFixture.cs (100%) rename {NzbDrone.App.Test => src/NzbDrone.App.Test}/License.txt (100%) rename {NzbDrone.App.Test => src/NzbDrone.App.Test}/MonitoringProviderTest.cs (100%) rename {NzbDrone.App.Test => src/NzbDrone.App.Test}/NzbDrone.Host.Test.csproj (100%) rename {NzbDrone.App.Test => src/NzbDrone.App.Test}/Properties/AssemblyInfo.cs (100%) rename {NzbDrone.App.Test => src/NzbDrone.App.Test}/RouterTest.cs (100%) rename {NzbDrone.App.Test => src/NzbDrone.App.Test}/packages.config (100%) rename {NzbDrone.Common.Test => src/NzbDrone.Common.Test}/CacheTests/CachedFixture.cs (100%) rename {NzbDrone.Common.Test => src/NzbDrone.Common.Test}/CacheTests/CachedManagerFixture.cs (100%) rename {NzbDrone.Common.Test => src/NzbDrone.Common.Test}/ConfigFileProviderTest.cs (100%) rename {NzbDrone.Common.Test => src/NzbDrone.Common.Test}/DiskProviderTests/DiskProviderFixture.cs (100%) rename {NzbDrone.Common.Test => src/NzbDrone.Common.Test}/DiskProviderTests/FreeSpaceFixture.cs (100%) rename {NzbDrone.Common.Test => src/NzbDrone.Common.Test}/DiskProviderTests/IsParentFixture.cs (100%) rename {NzbDrone.Common.Test => src/NzbDrone.Common.Test}/EnsureTest/PathExtensionFixture.cs (100%) rename {NzbDrone.Common.Test => src/NzbDrone.Common.Test}/EnvironmentProviderTest.cs (100%) rename {NzbDrone.Common.Test => src/NzbDrone.Common.Test}/EnvironmentTests/EnvironmentProviderTest.cs (100%) rename {NzbDrone.Common.Test => src/NzbDrone.Common.Test}/EnvironmentTests/StartupArgumentsFixture.cs (100%) rename {NzbDrone.Common.Test => src/NzbDrone.Common.Test}/License.txt (100%) rename {NzbDrone.Common.Test => src/NzbDrone.Common.Test}/NzbDrone.Common.Test.csproj (100%) rename {NzbDrone.Common.Test => src/NzbDrone.Common.Test}/PathExtensionFixture.cs (100%) rename {NzbDrone.Common.Test => src/NzbDrone.Common.Test}/ProcessProviderTests.cs (100%) rename {NzbDrone.Common.Test => src/NzbDrone.Common.Test}/ReflectionExtensions.cs (100%) rename {NzbDrone.Common.Test => src/NzbDrone.Common.Test}/ReflectionTests/ReflectionExtensionFixture.cs (96%) rename {NzbDrone.Common.Test => src/NzbDrone.Common.Test}/ServiceFactoryFixture.cs (100%) rename {NzbDrone.Common.Test => src/NzbDrone.Common.Test}/ServiceProviderTests.cs (100%) rename {NzbDrone.Common.Test => src/NzbDrone.Common.Test}/WebClientTests.cs (100%) rename {NzbDrone.Common.Test => src/NzbDrone.Common.Test}/packages.config (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/ArchiveProvider.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/Cache/CacheManger.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/Cache/Cached.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/Cache/ICached.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/Composition/Container.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/Composition/ContainerBuilderBase.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/Composition/IContainer.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/ConsoleService.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/DateTimeExtensions.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/DiskProvider.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/EnsureThat/Ensure.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/EnsureThat/EnsureBoolExtensions.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/EnsureThat/EnsureCollectionExtensions.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/EnsureThat/EnsureDateTimeExtensions.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/EnsureThat/EnsureDecimalExtensions.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/EnsureThat/EnsureDoubleExtensions.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/EnsureThat/EnsureGuidExtensions.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/EnsureThat/EnsureIntExtensions.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/EnsureThat/EnsureLongExtensions.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/EnsureThat/EnsureNullableValueTypeExtensions.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/EnsureThat/EnsureObjectExtensions.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/EnsureThat/EnsureShortExtensions.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/EnsureThat/EnsureStringExtensions.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/EnsureThat/EnsureTypeExtensions.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/EnsureThat/ExceptionFactory.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/EnsureThat/ExpressionExtensions.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/EnsureThat/Param.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/EnsureThat/Resources/ExceptionMessages.Designer.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/EnsureThat/Resources/ExceptionMessages.resx (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/EnsureThat/TypeParam.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/EnvironmentInfo/AppFolderInfo.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/EnvironmentInfo/BuildInfo.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/EnvironmentInfo/OsInfo.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/EnvironmentInfo/RuntimeInfo.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/EnvironmentInfo/StartupArguments.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/Exceptions/NzbDroneException.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/Expansive/CircularReferenceException.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/Expansive/Expansive.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/Expansive/PatternStyle.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/Expansive/Tree.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/Expansive/TreeNode.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/Expansive/TreeNodeList.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/Expansive/license.txt (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/HashUtil.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/HttpProvider.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/IEnumerableExtensions.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/Instrumentation/ExceptronTarget.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/Instrumentation/GlobalExceptionHandlers.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/Instrumentation/LogEventExtensions.cs (96%) rename {NzbDrone.Common => src/NzbDrone.Common}/Instrumentation/LogTargets.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/Instrumentation/LogglyTarget.cs (96%) rename {NzbDrone.Common => src/NzbDrone.Common}/Instrumentation/NzbDroneLogger.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/Instrumentation/VersionLayoutRenderer.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/Messaging/IEvent.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/Messaging/IMessage.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/Model/ProcessInfo.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/NzbDrone.Common.csproj (98%) rename {NzbDrone.Common => src/NzbDrone.Common}/PathEqualityComparer.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/PathExtensions.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/Processes/ProcessOutput.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/Processes/ProcessProvider.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/Properties/AssemblyInfo.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/Properties/SharedAssemblyInfo.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/Reflection/ReflectionExtensions.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/Security/IgnoreCertErrorPolicy.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/Serializer/IntConverter.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/Serializer/Json.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/ServiceFactory.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/ServiceProvider.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/Services.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/StringExtensions.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/TPL/LimitedConcurrencyLevelTaskScheduler.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/TPL/TaskExtensions.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/TinyIoC.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/TryParseExtension.cs (100%) rename {NzbDrone.Common => src/NzbDrone.Common}/packages.config (100%) rename {NzbDrone.Console => src/NzbDrone.Console}/ConsoleAlerts.cs (100%) rename {NzbDrone.Console => src/NzbDrone.Console}/ConsoleApp.cs (100%) rename {NzbDrone.Console => src/NzbDrone.Console}/NzbDrone.Console.csproj (98%) rename {NzbDrone.Console => src/NzbDrone.Console}/Properties/AssemblyInfo.cs (100%) rename {NzbDrone.Console => src/NzbDrone.Console}/packages.config (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Configuration/ConfigCachingFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Configuration/ConfigServiceFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/DataAugmentationFixture/Scene/SceneMappingProxyFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/DataAugmentationFixture/Scene/SceneMappingServiceFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Datastore/BasicRepositoryFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Datastore/Converters/ProviderSettingConverterFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Datastore/DatabaseRelationshipFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Datastore/MappingExtentionFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Datastore/ObjectDatabaseFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Datastore/PagingSpecExtenstionsTests/PagingOffsetFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Datastore/PagingSpecExtenstionsTests/ToSortDirectionFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Datastore/ReflectionStrategyFixture/Benchmarks.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Datastore/SQLiteMigrationHelperTests/AlterFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Datastore/SQLiteMigrationHelperTests/DuplicateFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/DecisionEngineTests/AcceptableSizeSpecificationFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/DecisionEngineTests/CutoffSpecificationFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/DecisionEngineTests/DownloadDecisionMakerFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/DecisionEngineTests/LanguageSpecificationFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/DecisionEngineTests/MonitoredEpisodeSpecificationFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/DecisionEngineTests/NotRestrictedReleaseSpecificationFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/DecisionEngineTests/QualityAllowedByProfileSpecificationFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/DecisionEngineTests/QualityUpgradeSpecificationFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/DecisionEngineTests/RetentionSpecificationFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/DecisionEngineTests/RssSync/ProperSpecificationFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/DecisionEngineTests/UpgradeDiskSpecificationFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/DecisionEngineTests/UpgradeHistorySpecificationFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Download/DownloadApprovedReportsTests/DownloadApprovedFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Download/DownloadApprovedReportsTests/GetQualifiedReportsFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Download/DownloadClientTests/BlackholeProviderFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Download/DownloadClientTests/NzbgetProviderTests/DownloadNzbFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Download/DownloadClientTests/NzbgetProviderTests/QueueFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Download/DownloadClientTests/PneumaticProviderFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Download/DownloadClientTests/SabProviderTests/QueueFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Download/DownloadClientTests/SabProviderTests/SabProviderFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Download/DownloadServiceFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/EpisodeParseResultTest.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Files/Categories_json.txt (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Files/History.txt (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Files/HistoryEmpty.txt (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Files/Indexers/Newznab/unauthorized.xml (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Files/JsonError.txt (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Files/LongOverview.txt (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Files/Media/H264_sample.mp4 (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Files/Nzbget/JsonError.txt (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Files/Nzbget/Queue.txt (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Files/Nzbget/Queue_empty.txt (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Files/Queue.txt (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Files/QueueEmpty.txt (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Files/QueueUnknownPriority.txt (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Files/RSS/SizeParsing/newznab.xml (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Files/RSS/SizeParsing/nzbclub.xml (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Files/RSS/SizeParsing/nzbindex.xml (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Files/RSS/SizeParsing/nzbsrus.xml (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Files/RSS/SizeParsing/omgwtfnzbs.xml (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Files/RSS/filesharingtalk.xml (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Files/RSS/newznab.xml (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Files/RSS/nzbclub.xml (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Files/RSS/nzbindex.xml (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Files/RSS/nzbsrus.xml (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Files/RSS/omgwtfnzbs.xml (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Files/RSS/wombles.xml (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Files/SceneMappings.json (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Files/TestArchive.zip (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Files/Xem/Failure.txt (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Files/Xem/Ids.txt (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Files/Xem/Mappings.txt (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Files/Xem/Names.txt (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/FluentTest.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Framework/CoreTest.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Framework/DbTest.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Framework/NBuilderExtensions.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Framework/TestBaseTests.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Framework/TestDbHelper.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/HistoryTests/HistoryRepositoryFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Housekeeping/Housekeepers/CleanupOrphanedEpisodesFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Housekeeping/Housekeepers/CleanupOrphanedHistoryItemsFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/IndexerSearchTests/FetchAndParseRssServiceFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/IndexerSearchTests/SearchDefinitionFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/IndexerTests/BasicRssParserFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/IndexerTests/FetchAndParseRssServiceFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/IndexerTests/IndexerServiceFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/IndexerTests/IntegrationTests/IndexerIntegrationTests.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/IndexerTests/XElementExtensionsFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/InstrumentationTests/DatabaseTargetFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/JobTests/JobRepositoryFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/JobTests/TestJobs.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/MediaCoverTests/CoverExistsSpecificationFixture.cs (96%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/MediaCoverTests/MediaCoverServiceFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/MediaFiles/DownloadedEpisodesImportServiceFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/MediaFiles/EpisodeImport/ImportDecisionMakerFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/MediaFiles/EpisodeImport/Specifications/FreeSpaceSpecificationFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/MediaFiles/EpisodeImport/Specifications/NotInUseSpecificationFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/MediaFiles/EpisodeImport/Specifications/NotSampleSpecificationFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/MediaFiles/EpisodeImport/Specifications/NotUnpackingSpecificationFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/MediaFiles/EpisodeImport/Specifications/UpgradeSpecificationFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/MediaFiles/ImportApprovedEpisodesFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/MediaFiles/MediaFileRepositoryFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/MediaFiles/MediaFileServiceTest.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/MediaFiles/MediaFileTableCleanupServiceFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/MediaFiles/MediaInfo/VideoFileInfoReaderFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/MediaFiles/RenameEpisodeFileServiceFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/MediaFiles/UpgradeMediaFileServiceFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Messaging/Commands/CommandEqualityComparerFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Messaging/Commands/CommandExecutorFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Messaging/Commands/CommandFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Messaging/Events/EventAggregatorFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/MetadataSourceTests/TraktProxyFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/NotificationTests/GrowlProviderTest.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/NotificationTests/NotificationServiceFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/NotificationTests/PlexProviderTest.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/NotificationTests/ProwlProviderTest.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/NotificationTests/Xbmc/GetJsonVersionFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/NotificationTests/Xbmc/Http/ActivePlayersFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/NotificationTests/Xbmc/Http/CheckForErrorFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/NotificationTests/Xbmc/Http/GetSeriesPathFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/NotificationTests/Xbmc/Http/UpdateFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/NotificationTests/Xbmc/Json/ActivePlayersFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/NotificationTests/Xbmc/Json/CheckForErrorFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/NotificationTests/Xbmc/Json/GetSeriesPathFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/NotificationTests/Xbmc/Json/UpdateFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/NzbDrone.Core.Test.csproj (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/OrganizerTests/BuildFilePathFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/OrganizerTests/GetNewFilenameFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/ParserTests/ParserFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/ParserTests/ParsingServiceTests/GetEpisodesFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/ParserTests/ParsingServiceTests/MapFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/ParserTests/QualityParserFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Properties/AssemblyInfo.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/ProviderTests/DiskProviderTests/ArchiveProviderFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/ProviderTests/DiskProviderTests/FreeDiskSpaceFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/ProviderTests/DiskScanProviderTests/GetVideoFilesFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/ProviderTests/RecycleBinProviderTests/CleanupFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/ProviderTests/RecycleBinProviderTests/DeleteDirectoryFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/ProviderTests/RecycleBinProviderTests/DeleteFileFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/ProviderTests/RecycleBinProviderTests/EmptyFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Providers/XemProxyFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Qualities/QualityFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Qualities/QualityProfileRepositoryFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Qualities/QualityProfileServiceFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Qualities/QualitySizeRepositoryFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/Qualities/QualitySizeServiceFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/RootFolderTests/FreeSpaceOnDrivesFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/RootFolderTests/RootFolderServiceFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/SeriesStatsTests/SeriesStatisticsFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/ThingiProvider/ProviderBaseFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/ThingiProviderTests/NullConfigFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/TvTests/EpisodeProviderTests/EpisodeProviderTest.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/TvTests/EpisodeProviderTests/EpisodeProviderTest_GetEpisodesByParseResult.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/TvTests/EpisodeProviderTests/HandleEpisodeFileDeletedFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/TvTests/EpisodeRepositoryTests/EpisodesBetweenDatesFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/TvTests/EpisodeRepositoryTests/EpisodesRepositoryReadFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/TvTests/EpisodeRepositoryTests/EpisodesWithoutFilesFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/TvTests/EpisodeRepositoryTests/FindEpisodeFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/TvTests/QualityModelFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/TvTests/RefreshEpisodeServiceFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/TvTests/SeriesRepositoryTests/QualityProfileRepositoryFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/TvTests/SeriesServiceTests/AddSeriesFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/TvTests/SeriesServiceTests/UpdateSeriesFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/UpdateTests/UpdatePackageProviderFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/UpdateTests/UpdateServiceFixture.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/XbmcVersionTests.cs (100%) rename {NzbDrone.Core.Test => src/NzbDrone.Core.Test}/packages.config (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Annotations/FieldDefinitionAttribute.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/App.config (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Configuration/Config.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Configuration/ConfigFileProvider.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Configuration/ConfigRepository.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Configuration/ConfigService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Configuration/Events/ConfigFileSavedEvent.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Configuration/Events/ConfigSavedEvent.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Configuration/IConfigService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Configuration/InvalidConfigFileException.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DataAugmentation/DailySeries/DailySeriesDataProxy.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DataAugmentation/DailySeries/DailySeriesService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DataAugmentation/Scene/SceneMapping.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DataAugmentation/Scene/SceneMappingProxy.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DataAugmentation/Scene/SceneMappingRepository.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DataAugmentation/Scene/SceneMappingService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DataAugmentation/Scene/UpdateSceneMappingCommand.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DataAugmentation/Xem/Model/XemResult.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DataAugmentation/Xem/Model/XemSceneTvdbMapping.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DataAugmentation/Xem/Model/XemValues.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DataAugmentation/Xem/UpdateXemMappingsCommand.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DataAugmentation/Xem/XemProxy.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DataAugmentation/Xem/XemService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/BasicRepository.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/ConnectionStringFactory.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Converters/BooleanIntConverter.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Converters/EmbeddedDocumentConverter.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Converters/EnumIntConverter.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Converters/Int32Converter.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Converters/ProviderSettingConverter.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Converters/QualityIntConverter.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Converters/UtcConverter.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Database.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/DbFactory.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Events/ModelEvent.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/IEmbeddedDocument.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/LazyList.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/MappingExtensions.cs (97%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/001_InitialSetup.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/002_Remove_tvrage_imdb_unique_constraint.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/003_remove_clean_title_from_scene_mapping.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/004_updated_history.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/005_added_eventtype_to_history.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/006_add_index_to_log_time.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/007_add_renameEpisodes_to_naming.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/008_remove_backlog.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/009_fix_renameEpisodes.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/010_add_monitored.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/011_remove_ignored.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/012_remove_custom_start_date.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/013_add_air_date_utc.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/014_drop_air_date.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/015_add_air_date_as_string.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/016_updated_imported_history_item.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/017_reset_scene_names.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/018_remove_duplicates.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/019_restore_unique_constraints.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/020_add_year_and_seasons_to_series.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/021_drop_seasons_table.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/022_move_notification_to_generic_provider.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/023_add_config_contract_to_indexers.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/Framework/MigrationContext.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/Framework/MigrationController.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/Framework/MigrationExtension.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/Framework/MigrationLogger.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/Framework/MigrationOptions.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/Framework/NzbDroneMigrationBase.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/Framework/SQLiteColumn.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/Framework/SQLiteIndex.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/Framework/SQLiteMigrationHelper (vaio's conflicted copy 2013-09-04).cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/Framework/SQLiteMigrationHelper.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/Migration/Framework/SqliteAlter.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/MigrationType.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/ModelBase.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/ModelNotFoundException.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/PagingSpec.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/PagingSpecExtensions.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/RelationshipExtensions.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/ResultSet.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Datastore/TableMapping.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DecisionEngine/DownloadDecisionMaker.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DecisionEngine/IDecisionEngineSpecification.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DecisionEngine/IRejectWithReason.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DecisionEngine/QualityUpgradableSpecification.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DecisionEngine/Specifications/AcceptableSizeSpecification.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DecisionEngine/Specifications/CutoffSpecification.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DecisionEngine/Specifications/DownloadDecision.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DecisionEngine/Specifications/LanguageSpecification.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DecisionEngine/Specifications/NotInQueueSpecification.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DecisionEngine/Specifications/NotRestrictedReleaseSpecification.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DecisionEngine/Specifications/NotSampleSpecification.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DecisionEngine/Specifications/QualityAllowedByProfileSpecification.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DecisionEngine/Specifications/RetentionSpecification.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DecisionEngine/Specifications/RssSync/MonitoredEpisodeSpecification.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DecisionEngine/Specifications/RssSync/ProperSpecification.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DecisionEngine/Specifications/RssSync/UpgradeHistorySpecification.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DecisionEngine/Specifications/Search/DailyEpisodeMatchSpecification.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DecisionEngine/Specifications/Search/SeasonMatchSpecification.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DecisionEngine/Specifications/Search/SingleEpisodeMatchSpecification.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DecisionEngine/Specifications/Search/SingleEpisodeSearchMatchSpecification.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/DecisionEngine/Specifications/UpgradeDiskSpecification.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/Clients/BlackholeProvider.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/Clients/Nzbget/EnqueueResponse.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/Clients/Nzbget/ErrorModel.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/Clients/Nzbget/JsonError.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/Clients/Nzbget/JsonRequest.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/Clients/Nzbget/NzbGetQueue.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/Clients/Nzbget/NzbGetQueueItem.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/Clients/Nzbget/NzbgetClient.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/Clients/Nzbget/PriorityType.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/Clients/Nzbget/VersionModel.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/Clients/PneumaticClient.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/Clients/Sabnzbd/ConnectionInfoModel.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/Clients/Sabnzbd/JsonConverters/SabnzbdPriorityTypeConverter.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/Clients/Sabnzbd/JsonConverters/SabnzbdQueueTimeConverter.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/Clients/Sabnzbd/SabAddResponse.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/Clients/Sabnzbd/SabAutoConfigureService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/Clients/Sabnzbd/SabCategoryModel.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/Clients/Sabnzbd/SabHistory.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/Clients/Sabnzbd/SabHistoryItem.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/Clients/Sabnzbd/SabJsonError.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/Clients/Sabnzbd/SabModel.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/Clients/Sabnzbd/SabPriorityType.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/Clients/Sabnzbd/SabQueue.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/Clients/Sabnzbd/SabQueueItem.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/Clients/Sabnzbd/SabVersionModel.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/Clients/Sabnzbd/SabnzbdClient.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/DownloadApprovedReports.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/DownloadClientProvider.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/DownloadClientType.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/DownloadService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/EpisodeGrabbedEvent.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/IDownloadClient.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Download/QueueItem.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Exceptions/BadRequestException.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Exceptions/DownstreamException.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Exceptions/NzbDroneClientException.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Exceptions/StatusCodeToExceptions.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Fluent.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/History/History.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/History/HistoryRepository.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/History/HistoryService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Housekeeping/Housekeepers/CleanupOrphanedEpisodes.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Housekeeping/Housekeepers/CleanupOrphanedHistoryItems.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Housekeeping/HousekeepingCommand.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Housekeeping/HousekeepingService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Housekeeping/IHousekeepingTask.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/IndexerSearch/Definitions/DailyEpisodeSearchCriteria.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/IndexerSearch/Definitions/SearchCriteriaBase.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/IndexerSearch/Definitions/SeasonSearchCriteria.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/IndexerSearch/Definitions/SingleEpisodeSearchCriteria.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/IndexerSearch/EpisodeSearchCommand.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/IndexerSearch/EpisodeSearchService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/IndexerSearch/NzbSearchService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/IndexerSearch/SearchAndDownloadService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/IndexerSearch/SeasonSearchCommand.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/IndexerSearch/SeasonSearchService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/IndexerSearch/SeriesSearchCommand.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/IndexerSearch/SeriesSearchService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Indexers/BasicTorrentRssParser.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Indexers/DownloadProtocols.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Indexers/Exceptions/ApiKeyException.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Indexers/Eztv/Eztv.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Indexers/FetchAndParseRssService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Indexers/IIndexer.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Indexers/IParseFeed.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Indexers/IndexerBase.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Indexers/IndexerDefinition.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Indexers/IndexerFactory.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Indexers/IndexerFetchService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Indexers/IndexerRepository.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Indexers/IndexerSettingUpdatedEvent.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Indexers/Newznab/Newznab.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Indexers/Newznab/NewznabException.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Indexers/Newznab/NewznabParser.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Indexers/Newznab/NewznabPreProcessor.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Indexers/Newznab/NewznabSettings.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Indexers/Newznab/SizeParsingException.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Indexers/NewznabTestService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Indexers/Omgwtfnzbs/Omgwtfnzbs.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Indexers/Omgwtfnzbs/OmgwtfnzbsParser.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Indexers/Omgwtfnzbs/OmgwtfnzbsSettings.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Indexers/RssParserBase.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Indexers/RssSyncCommand.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Indexers/RssSyncService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Indexers/Wombles/Wombles.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Indexers/Wombles/WomblesParser.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Indexers/XElementExtensions.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Instrumentation/Commands/ClearLogCommand.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Instrumentation/Commands/DeleteLogFilesCommand.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Instrumentation/Commands/TrimLogCommand.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Instrumentation/DatabaseTarget.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Instrumentation/DeleteLogFilesService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Instrumentation/Log.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Instrumentation/LogRepository.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Instrumentation/LogService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Instrumentation/LoggerExtensions.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Instrumentation/SetLoggingLevel.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Jobs/JobRepository.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Jobs/ScheduledTask.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Jobs/Scheduler.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Jobs/TaskManager.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Lifecycle/ApplicationShutdownRequested.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Lifecycle/ApplicationStartedEvent.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaCover/CoverAlreadyExistsSpecification.cs (96%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaCover/MediaCover.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaCover/MediaCoverService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/Commands/BackendCommandAttribute.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/Commands/CleanMediaFileDb.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/Commands/CleanUpRecycleBinCommand.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/Commands/DownloadedEpisodesScanCommand.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/Commands/RenameSeasonCommand.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/Commands/RenameSeriesCommand.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/DiskScanService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/DownloadedEpisodesImportService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/EpisodeFile.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/EpisodeFileMovingService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/EpisodeImport/IImportDecisionEngineSpecification.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/EpisodeImport/ImportApprovedEpisodes.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/EpisodeImport/ImportDecision.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/EpisodeImport/ImportDecisionMaker.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/EpisodeImport/Specifications/FreeSpaceSpecification.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/EpisodeImport/Specifications/NotInUseSpecification.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/EpisodeImport/Specifications/NotSampleSpecification.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/EpisodeImport/Specifications/NotUnpackingSpecification.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/EpisodeImport/Specifications/UpgradeSpecification.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/Events/EpisodeDownloadedEvent.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/Events/EpisodeFileAddedEvent.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/Events/EpisodeFileDeletedEvent.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/Events/EpisodeImportedEvent.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/Events/SeriesRenamedEvent.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/MediaFileExtensions.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/MediaFileRepository.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/MediaFileService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/MediaFileTableCleanupService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/MediaInfo/MediaInfoModel.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/MediaInfo/VideoFileInfoReader.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/RecycleBinProvider.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/RenameEpisodeFileService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/SameFilenameException.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaFiles/UpgradeMediaFileService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MediaInfo.dll (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Messaging/Commands/BackendCommandAttribute.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Messaging/Commands/Command.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Messaging/Commands/CommandEqualityComparer.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Messaging/Commands/CommandExecutor.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Messaging/Commands/ICommandExecutor.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Messaging/Commands/IExecute.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Messaging/Commands/TestCommand.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Messaging/Commands/TestCommandExecutor.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Messaging/Commands/Tracking/CommandStatus.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Messaging/Commands/Tracking/CommandTrackingService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Messaging/Commands/Tracking/ExistingCommand.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Messaging/Commands/Tracking/TrackedCommandCleanupCommand.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Messaging/Events/CommandCreatedEvent.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Messaging/Events/CommandExecutedEvent.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Messaging/Events/EventAggregator.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Messaging/Events/IEventAggregator.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Messaging/Events/IHandle.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Messaging/IProcessMessage.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MetadataSource/IProvideSeriesInfo.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MetadataSource/ISearchForNewSeries.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MetadataSource/Trakt/Episode.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MetadataSource/Trakt/FullShow.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MetadataSource/Trakt/Images.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MetadataSource/Trakt/Season.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MetadataSource/Trakt/TraktException.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/MetadataSource/TraktProxy.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Email/Email.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Email/EmailService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Email/EmailSettings.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Email/TestEmailCommand.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Growl/Growl.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Growl/GrowlService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Growl/GrowlSettings.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Growl/TestGrowlCommand.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/INotification.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Notification.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/NotificationBase.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/NotificationDefinition.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/NotificationRepository.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/NotificationService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/NotificationSettingsProvider.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/NotifyMyAndroid/NotifyMyAndroid.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/NotifyMyAndroid/NotifyMyAndroidPriority.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/NotifyMyAndroid/NotifyMyAndroidProxy.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/NotifyMyAndroid/NotifyMyAndroidSettings.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/NotifyMyAndroid/TestNotifyMyAndroidCommand.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Plex/PlexClient.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Plex/PlexClientSettings.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Plex/PlexServer.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Plex/PlexServerSettings.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Plex/PlexService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Plex/TestPlexClientCommand.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Plex/TestPlexServerCommand.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Prowl/InvalidApiKeyException.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Prowl/Prowl.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Prowl/ProwlPriority.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Prowl/ProwlService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Prowl/ProwlSettings.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Prowl/TestProwlCommand.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/PushBullet/PushBullet.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/PushBullet/PushBulletProxy.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/PushBullet/PushBulletSettings.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/PushBullet/TestPushBulletCommand.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Pushover/InvalidResponseException.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Pushover/Pushover.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Pushover/PushoverPriority.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Pushover/PushoverService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Pushover/PushoverSettings.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Pushover/TestPushoverCommand.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Xbmc/HttpApiProvider.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Xbmc/IApiProvider.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Xbmc/InvalidXbmcVersionException.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Xbmc/JsonApiProvider.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Xbmc/Model/ActivePlayer.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Xbmc/Model/ActivePlayersDharmaResult.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Xbmc/Model/ActivePlayersEdenResult.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Xbmc/Model/ErrorResult.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Xbmc/Model/TvShow.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Xbmc/Model/TvShowResponse.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Xbmc/Model/TvShowResult.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Xbmc/Model/VersionResult.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Xbmc/Model/XbmcJsonResult.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Xbmc/Model/XbmcVersion.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Xbmc/TestXbmcCommand.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Xbmc/Xbmc.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Xbmc/XbmcService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Notifications/Xbmc/XbmcSettings.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/NzbDrone.Core.csproj (99%) rename {NzbDrone.Core => src/NzbDrone.Core}/Organizer/EpisodeSortingType.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Organizer/FileNameBuilder.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Organizer/NamingConfig.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Parser/Language.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Parser/Model/LocalEpisode.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Parser/Model/ParsedEpisodeInfo.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Parser/Model/ReleaseInfo.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Parser/Model/RemoteEpisode.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Parser/Model/TorrentInfo.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Parser/Parser.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Parser/ParsingService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Parser/QualityParser.cs (100%) rename {NzbDrone.Core/progressmessaging => src/NzbDrone.Core/ProgressMessaging}/CommandUpdatedEvent.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/ProgressMessaging/ProgressMessageTarget.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Properties/AnalysisRules.ruleset (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Properties/AssemblyInfo.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Qualities/Quality.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Qualities/QualityProfile.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Qualities/QualityProfileInUseException.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Qualities/QualityProfileRepository.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Qualities/QualityProfileService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Qualities/QualitySize.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Qualities/QualitySizeRepository.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Qualities/QualitySizeService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Queue/Queue.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Queue/QueueScheduler.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Queue/QueueService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Queue/UpdateQueueEvent.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Rest/RestException.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Rest/RestSharpExtensions.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/RootFolders/RootFolder.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/RootFolders/RootFolderService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/RootFolders/UnmappedFolder.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/SeriesStats/SeriesStatistics.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/SeriesStats/SeriesStatisticsRepository.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/SeriesStats/SeriesStatisticsService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/ThingiProvider/ConfigContractNotFoundException.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/ThingiProvider/IProvider.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/ThingiProvider/IProviderConfig.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/ThingiProvider/IProviderFactory.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/ThingiProvider/IProviderRepository.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/ThingiProvider/NullConfig.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/ThingiProvider/ProviderDefinition.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/ThingiProvider/ProviderFactory.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/ThingiProvider/ProviderRepository.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Tv/Commands/RefreshSeriesCommand.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Tv/Episode.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Tv/EpisodeRepository.cs (97%) rename {NzbDrone.Core => src/NzbDrone.Core}/Tv/EpisodeService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Tv/Events/EpisodeInfoAddedEvent.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Tv/Events/EpisodeInfoDeletedEvent.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Tv/Events/EpisodeInfoUpdatedEvent.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Tv/Events/SeriesAddedEvent.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Tv/Events/SeriesDeletedEvent.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Tv/Events/SeriesUpdatedEvent.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Tv/QualityModel.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Tv/RefreshEpisodeService.cs (97%) rename {NzbDrone.Core => src/NzbDrone.Core}/Tv/RefreshSeriesService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Tv/Season.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Tv/Series.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Tv/SeriesRepository.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Tv/SeriesService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Tv/SeriesStatusType.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Tv/SeriesTypes.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Update/Commands/ApplicationUpdateCommand.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Update/InstallUpdateService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Update/RecentUpdateProvider.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Update/UpdateChanges.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Update/UpdateCheckService.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Update/UpdatePackage.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Update/UpdatePackageAvailable.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Update/UpdatePackageProvider.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/Validation/RuleBuilderExtensions.cs (100%) rename {NzbDrone.Core => src/NzbDrone.Core}/packages.config (100%) rename {NzbDrone.Host => src/NzbDrone.Host}/AccessControl/FirewallAdapter.cs (100%) rename {NzbDrone.Host => src/NzbDrone.Host}/AccessControl/NetshProvider.cs (100%) rename {NzbDrone.Host => src/NzbDrone.Host}/AccessControl/SslAdapter.cs (100%) rename {NzbDrone.Host => src/NzbDrone.Host}/AccessControl/UrlAclAdapter.cs (100%) rename {NzbDrone.Host => src/NzbDrone.Host}/ApplicationModes.cs (100%) rename {NzbDrone.Host => src/NzbDrone.Host}/ApplicationServer.cs (100%) rename {NzbDrone.Host => src/NzbDrone.Host}/Bootstrap.cs (100%) rename {NzbDrone.Host => src/NzbDrone.Host}/IUserAlert.cs (100%) rename {NzbDrone.Host => src/NzbDrone.Host}/MainAppContainerBuilder.cs (100%) rename {NzbDrone.Host => src/NzbDrone.Host}/NLog.xsd (100%) rename {NzbDrone.Host => src/NzbDrone.Host}/NzbDrone.Host.csproj (99%) rename {NzbDrone.Host => src/NzbDrone.Host}/NzbDrone.ico (100%) rename {NzbDrone.Host => src/NzbDrone.Host}/Owin/IHostController.cs (100%) rename {NzbDrone.Host => src/NzbDrone.Host}/Owin/MiddleWare/IOwinMiddleWare.cs (100%) rename {NzbDrone.Host => src/NzbDrone.Host}/Owin/MiddleWare/NancyMiddleWare.cs (100%) rename {NzbDrone.Host => src/NzbDrone.Host}/Owin/MiddleWare/SignalRMiddleWare.cs (100%) rename {NzbDrone.Host => src/NzbDrone.Host}/Owin/NlogTextWriter.cs (100%) rename {NzbDrone.Host => src/NzbDrone.Host}/Owin/OwinHostController.cs (100%) rename {NzbDrone.Host => src/NzbDrone.Host}/Owin/OwinServiceProvider.cs (100%) rename {NzbDrone.Host => src/NzbDrone.Host}/Owin/OwinTraceOutputFactory.cs (100%) rename {NzbDrone.Host => src/NzbDrone.Host}/Owin/PortInUseException.cs (100%) rename {NzbDrone.Host => src/NzbDrone.Host}/PlatformValidation.cs (100%) rename {NzbDrone.Host => src/NzbDrone.Host}/PriorityMonitor.cs (100%) rename {NzbDrone.Host => src/NzbDrone.Host}/Properties/AssemblyInfo.cs (100%) rename {NzbDrone.Host => src/NzbDrone.Host}/Router.cs (100%) rename {NzbDrone.Host => src/NzbDrone.Host}/TerminateApplicationException.cs (100%) rename {NzbDrone.Host => src/NzbDrone.Host}/app.config (100%) rename {NzbDrone.Host => src/NzbDrone.Host}/packages.config (100%) rename {NzbDrone.Integration.Test => src/NzbDrone.Integration.Test}/Client/ClientBase.cs (96%) rename {NzbDrone.Integration.Test => src/NzbDrone.Integration.Test}/Client/EpisodeClient.cs (100%) rename {NzbDrone.Integration.Test => src/NzbDrone.Integration.Test}/Client/IndexerClient.cs (100%) rename {NzbDrone.Integration.Test => src/NzbDrone.Integration.Test}/Client/ReleaseClient.cs (100%) rename {NzbDrone.Integration.Test => src/NzbDrone.Integration.Test}/Client/SeriesClient.cs (100%) rename {NzbDrone.Integration.Test => src/NzbDrone.Integration.Test}/CommandIntegerationTests.cs (100%) rename {NzbDrone.Integration.Test => src/NzbDrone.Integration.Test}/EpisodeIntegrationTests.cs (100%) rename {NzbDrone.Integration.Test => src/NzbDrone.Integration.Test}/HistoryIntegrationTest.cs (100%) rename {NzbDrone.Integration.Test => src/NzbDrone.Integration.Test}/IndexerIntegrationFixture.cs (100%) rename {NzbDrone.Integration.Test => src/NzbDrone.Integration.Test}/IntegrationTest.cs (100%) rename {NzbDrone.Integration.Test => src/NzbDrone.Integration.Test}/IntegrationTestDirectoryInfo.cs (100%) rename {NzbDrone.Integration.Test => src/NzbDrone.Integration.Test}/NamingConfigTests.cs (100%) rename {NzbDrone.Integration.Test => src/NzbDrone.Integration.Test}/NzbDrone.Integration.Test.csproj (100%) rename {NzbDrone.Integration.Test => src/NzbDrone.Integration.Test}/NzbDroneRunner.cs (100%) rename {NzbDrone.Integration.Test => src/NzbDrone.Integration.Test}/Properties/AssemblyInfo.cs (100%) rename {NzbDrone.Integration.Test => src/NzbDrone.Integration.Test}/QualityProfileIntegrationTest.cs (100%) rename {NzbDrone.Integration.Test => src/NzbDrone.Integration.Test}/ReleaseIntegrationTest.cs (100%) rename {NzbDrone.Integration.Test => src/NzbDrone.Integration.Test}/RootFolderIntegrationTest.cs (100%) rename {NzbDrone.Integration.Test => src/NzbDrone.Integration.Test}/SeriesIntegrationTest.cs (100%) rename {NzbDrone.Integration.Test => src/NzbDrone.Integration.Test}/packages.config (100%) rename {NzbDrone.Libraries.Test => src/NzbDrone.Libraries.Test}/JsonTests/JsonFixture.cs (100%) rename {NzbDrone.Libraries.Test => src/NzbDrone.Libraries.Test}/NzbDrone.Libraries.Test.csproj (100%) rename {NzbDrone.Libraries.Test => src/NzbDrone.Libraries.Test}/Properties/AssemblyInfo.cs (100%) rename {NzbDrone.Libraries.Test => src/NzbDrone.Libraries.Test}/packages.config (100%) rename {NzbDrone.SignalR => src/NzbDrone.SignalR}/BroadcastSignalRMessage.cs (100%) rename {NzbDrone.SignalR => src/NzbDrone.SignalR}/NoOpPerformanceCounterManager.cs (100%) rename {NzbDrone.SignalR => src/NzbDrone.SignalR}/NzbDrone.SignalR.csproj (97%) rename {NzbDrone.SignalR => src/NzbDrone.SignalR}/NzbDronePersistentConnection.cs (100%) rename {NzbDrone.SignalR => src/NzbDrone.SignalR}/Properties/AssemblyInfo.cs (100%) rename {NzbDrone.SignalR => src/NzbDrone.SignalR}/Serializer.cs (100%) rename {NzbDrone.SignalR => src/NzbDrone.SignalR}/SignalRMessage.cs (100%) rename {NzbDrone.SignalR => src/NzbDrone.SignalR}/SignalrDependencyResolver.cs (100%) rename {NzbDrone.SignalR => src/NzbDrone.SignalR}/packages.config (100%) rename {NzbDrone.Test.Common => src/NzbDrone.Test.Common}/App.config (100%) rename {NzbDrone.Test.Common => src/NzbDrone.Test.Common}/AutoMoq/AutoMoqer.cs (100%) rename {NzbDrone.Test.Common => src/NzbDrone.Test.Common}/AutoMoq/License.txt (100%) rename {NzbDrone.Test.Common => src/NzbDrone.Test.Common}/AutoMoq/Unity/AutoMockingBuilderStrategy.cs (100%) rename {NzbDrone.Test.Common => src/NzbDrone.Test.Common}/AutoMoq/Unity/AutoMockingContainerExtension.cs (100%) rename {NzbDrone.Test.Common => src/NzbDrone.Test.Common}/Categories/DiskAccessTestAttribute.cs (100%) rename {NzbDrone.Test.Common => src/NzbDrone.Test.Common}/Categories/IntegrationTestAttribute.cs (100%) rename {NzbDrone.Test.Common => src/NzbDrone.Test.Common}/ConcurrencyCounter.cs (100%) rename {NzbDrone.Test.Common => src/NzbDrone.Test.Common}/ExceptionVerification.cs (100%) rename {NzbDrone.Test.Common => src/NzbDrone.Test.Common}/License.txt (100%) rename {NzbDrone.Test.Common => src/NzbDrone.Test.Common}/LoggingTest.cs (100%) rename {NzbDrone.Test.Common => src/NzbDrone.Test.Common}/MockerExtensions.cs (100%) rename {NzbDrone.Test.Common => src/NzbDrone.Test.Common}/NzbDrone.Test.Common.csproj (100%) rename {NzbDrone.Test.Common => src/NzbDrone.Test.Common}/ObjectExtentions.cs (100%) rename {NzbDrone.Test.Common => src/NzbDrone.Test.Common}/Properties/AssemblyInfo.cs (100%) rename {NzbDrone.Test.Common => src/NzbDrone.Test.Common}/ReflectionExtensions.cs (100%) rename {NzbDrone.Test.Common => src/NzbDrone.Test.Common}/StringExtensions.cs (100%) rename {NzbDrone.Test.Common => src/NzbDrone.Test.Common}/TestBase.cs (100%) rename {NzbDrone.Test.Common => src/NzbDrone.Test.Common}/TestException.cs (100%) rename {NzbDrone.Test.Common => src/NzbDrone.Test.Common}/packages.config (100%) rename {NzbDrone.Test.Dummy => src/NzbDrone.Test.Dummy}/DummyApp.cs (100%) rename {NzbDrone.Test.Dummy => src/NzbDrone.Test.Dummy}/NzbDrone.Test.Dummy.csproj (100%) rename {NzbDrone.Test.Dummy => src/NzbDrone.Test.Dummy}/Properties/AssemblyInfo.cs (100%) rename {NzbDrone.Test.Dummy => src/NzbDrone.Test.Dummy}/app.config (100%) rename {NzbDrone.Update.Test => src/NzbDrone.Update.Test}/InstallUpdateServiceFixture.cs (100%) rename {NzbDrone.Update.Test => src/NzbDrone.Update.Test}/License.txt (100%) rename {NzbDrone.Update.Test => src/NzbDrone.Update.Test}/NzbDrone.Update.Test.csproj (100%) rename {NzbDrone.Update.Test => src/NzbDrone.Update.Test}/ProgramFixture.cs (100%) rename {NzbDrone.Update.Test => src/NzbDrone.Update.Test}/Properties/AssemblyInfo.cs (100%) rename {NzbDrone.Update.Test => src/NzbDrone.Update.Test}/StartNzbDroneService.cs (100%) rename {NzbDrone.Update.Test => src/NzbDrone.Update.Test}/UpdateProviderStartFixture.cs (100%) rename {NzbDrone.Update.Test => src/NzbDrone.Update.Test}/packages.config (100%) rename {NzbDrone.Update => src/NzbDrone.Update}/AppType.cs (100%) rename {NzbDrone.Update => src/NzbDrone.Update}/NLog.xsd (100%) rename {NzbDrone.Update => src/NzbDrone.Update}/NzbDrone.Update.csproj (96%) rename {NzbDrone.Update => src/NzbDrone.Update}/Properties/AssemblyInfo.cs (100%) rename {NzbDrone.Update => src/NzbDrone.Update}/UpdateApp.cs (100%) rename {NzbDrone.Update => src/NzbDrone.Update}/UpdateContainerBuilder.cs (100%) rename {NzbDrone.Update => src/NzbDrone.Update}/UpdateEngine/BackupAndRestore.cs (100%) rename {NzbDrone.Update => src/NzbDrone.Update}/UpdateEngine/DetectApplicationType.cs (100%) rename {NzbDrone.Update => src/NzbDrone.Update}/UpdateEngine/InstallUpdateService.cs (100%) rename {NzbDrone.Update => src/NzbDrone.Update}/UpdateEngine/StartNzbDrone.cs (100%) rename {NzbDrone.Update => src/NzbDrone.Update}/UpdateEngine/TerminateNzbDrone.cs (100%) rename {NzbDrone.Update => src/NzbDrone.Update}/app.config (100%) rename {NzbDrone.Update => src/NzbDrone.Update}/packages.config (100%) rename NzbDrone.sln => src/NzbDrone.sln (100%) rename NzbDrone.sln.DotSettings => src/NzbDrone.sln.DotSettings (100%) rename {NzbDrone => src/NzbDrone}/MessageBoxUserAlert.cs (100%) rename {NzbDrone => src/NzbDrone}/NzbDrone.csproj (98%) rename {NzbDrone => src/NzbDrone}/Properties/AssemblyInfo.cs (100%) rename {NzbDrone => src/NzbDrone}/Properties/Resources.Designer.cs (100%) rename {NzbDrone => src/NzbDrone}/Properties/Resources.resx (100%) rename {NzbDrone => src/NzbDrone}/SysTray/SysTrayApp.cs (100%) rename {NzbDrone => src/NzbDrone}/WindowsApp.cs (100%) rename {NzbDrone => src/NzbDrone}/packages.config (100%) rename {ServiceHelpers => src/ServiceHelpers}/ServiceInstall/Program.cs (100%) rename {ServiceHelpers => src/ServiceHelpers}/ServiceInstall/Properties/AssemblyInfo.cs (100%) rename {ServiceHelpers => src/ServiceHelpers}/ServiceInstall/ServiceHelper.cs (100%) rename {ServiceHelpers => src/ServiceHelpers}/ServiceInstall/ServiceInstall.csproj (96%) rename {ServiceHelpers => src/ServiceHelpers}/ServiceInstall/app.config (100%) rename {ServiceHelpers => src/ServiceHelpers}/ServiceInstall/app.manifest (100%) rename {ServiceHelpers => src/ServiceHelpers}/ServiceInstall/green_puzzle.ico (100%) rename {ServiceHelpers => src/ServiceHelpers}/ServiceUninstall/Program.cs (100%) rename {ServiceHelpers => src/ServiceHelpers}/ServiceUninstall/Properties/AssemblyInfo.cs (100%) rename {ServiceHelpers => src/ServiceHelpers}/ServiceUninstall/ServiceHelper.cs (100%) rename {ServiceHelpers => src/ServiceHelpers}/ServiceUninstall/ServiceUninstall.csproj (96%) rename {ServiceHelpers => src/ServiceHelpers}/ServiceUninstall/app.config (100%) rename {ServiceHelpers => src/ServiceHelpers}/ServiceUninstall/app.manifest (100%) rename {ServiceHelpers => src/ServiceHelpers}/ServiceUninstall/red_puzzle.ico (100%) rename SharedLiveTemplates.xml => src/SharedLiveTemplates.xml (100%) rename {UI => src/UI}/.idea/.name (100%) rename {UI => src/UI}/.idea/NzbDrone.UI.iml (100%) rename {UI => src/UI}/.idea/codeStyleSettings.xml (100%) rename {UI => src/UI}/.idea/dictionaries/Keivan.xml (100%) rename {UI => src/UI}/.idea/dictionaries/Keivan_Beigi.xml (100%) rename {UI => src/UI}/.idea/dictionaries/Mark.xml (100%) rename {UI => src/UI}/.idea/encodings.xml (100%) rename {UI => src/UI}/.idea/inspectionProfiles/Project_Default.xml (100%) rename {UI => src/UI}/.idea/inspectionProfiles/profiles_settings.xml (100%) rename {UI => src/UI}/.idea/jsLibraryMappings.xml (100%) rename {UI => src/UI}/.idea/jsLinters/jshint.xml (100%) rename {UI => src/UI}/.idea/jsLinters/jslint.xml (100%) rename {UI => src/UI}/.idea/misc.xml (100%) rename {UI => src/UI}/.idea/modules.xml (100%) rename {UI => src/UI}/.idea/runConfigurations/Debug___Chrome.xml (100%) rename {UI => src/UI}/.idea/runConfigurations/Debug___Firefox.xml (100%) rename {UI => src/UI}/.idea/scopes/NzbDrone.xml (100%) rename {UI => src/UI}/.idea/scopes/scope_settings.xml (100%) rename {UI => src/UI}/.idea/vcs.xml (100%) rename {UI => src/UI}/AddSeries/AddSeriesCollection.js (100%) rename {UI => src/UI}/AddSeries/AddSeriesLayout.js (100%) rename {UI => src/UI}/AddSeries/AddSeriesLayoutTemplate.html (100%) rename {UI => src/UI}/AddSeries/AddSeriesView.js (100%) rename {UI => src/UI}/AddSeries/AddSeriesViewTemplate.html (100%) rename {UI => src/UI}/AddSeries/Existing/AddExistingSeriesCollectionView.js (100%) rename {UI => src/UI}/AddSeries/Existing/UnmappedFolderCollection.js (100%) rename {UI => src/UI}/AddSeries/Existing/UnmappedFolderModel.js (100%) rename {UI => src/UI}/AddSeries/NotFoundTemplate.html (100%) rename {UI => src/UI}/AddSeries/NotFoundView.js (100%) rename {UI => src/UI}/AddSeries/RootFolders/Collection.js (100%) rename {UI => src/UI}/AddSeries/RootFolders/CollectionView.js (100%) rename {UI => src/UI}/AddSeries/RootFolders/ItemView.js (100%) rename {UI => src/UI}/AddSeries/RootFolders/ItemViewTemplate.html (100%) rename {UI => src/UI}/AddSeries/RootFolders/Layout.js (100%) rename {UI => src/UI}/AddSeries/RootFolders/LayoutTemplate.html (100%) rename {UI => src/UI}/AddSeries/RootFolders/Model.js (100%) rename {UI => src/UI}/AddSeries/RootFolders/RootFolderSelectionPartial.html (100%) rename {UI => src/UI}/AddSeries/RootFolders/StartingSeasonSelectionPartial.html (100%) rename {UI => src/UI}/AddSeries/SearchResultCollectionView.js (100%) rename {UI => src/UI}/AddSeries/SearchResultView.js (97%) rename {UI => src/UI}/AddSeries/SearchResultViewTemplate.html (100%) rename {UI => src/UI}/AddSeries/addSeries.less (100%) rename {UI => src/UI}/Calendar/CalendarLayout.js (100%) rename {UI => src/UI}/Calendar/CalendarLayoutTemplate.html (100%) rename {UI => src/UI}/Calendar/CalendarView.js (100%) rename {UI => src/UI}/Calendar/Collection.js (100%) rename {UI => src/UI}/Calendar/UpcomingCollection.js (100%) rename {UI => src/UI}/Calendar/UpcomingCollectionView.js (100%) rename {UI => src/UI}/Calendar/UpcomingItemView.js (100%) rename {UI => src/UI}/Calendar/UpcomingItemViewTemplate.html (100%) rename {UI => src/UI}/Calendar/calendar.less (100%) rename {UI => src/UI}/Cells/ApprovalStatusCell.js (100%) rename {UI => src/UI}/Cells/ApprovalStatusCellTemplate.html (100%) rename {UI => src/UI}/Cells/Edit/QualityCellEditor.js (100%) rename {UI => src/UI}/Cells/Edit/QualityCellEditorTemplate.html (100%) rename {UI => src/UI}/Cells/EpisodeActionsCell.js (100%) rename {UI => src/UI}/Cells/EpisodeActionsCellTemplate.html (100%) rename {UI => src/UI}/Cells/EpisodeNumberCell.js (100%) rename {UI => src/UI}/Cells/EpisodeProgressCell.js (100%) rename {UI => src/UI}/Cells/EpisodeProgressCellTemplate.html (100%) rename {UI => src/UI}/Cells/EpisodeStatusCell.js (100%) rename {UI => src/UI}/Cells/EpisodeTitleCell.js (100%) rename {UI => src/UI}/Cells/FileSizeCell.js (100%) rename {UI => src/UI}/Cells/Header/QualityHeaderCell.js (100%) rename {UI => src/UI}/Cells/IndexerCell.js (100%) rename {UI => src/UI}/Cells/NzbDroneCell.js (100%) rename {UI => src/UI}/Cells/QualityCell.js (100%) rename {UI => src/UI}/Cells/QualityCellTemplate.html (100%) rename {UI => src/UI}/Cells/QualityProfileCell.js (100%) rename {UI => src/UI}/Cells/RelativeDateCell.js (100%) rename {UI => src/UI}/Cells/SeriesActionsCell.js (100%) rename {UI => src/UI}/Cells/SeriesStatusCell.js (100%) rename {UI => src/UI}/Cells/SeriesTitleCell.js (100%) rename {UI => src/UI}/Cells/SeriesTitleTemplate.html (100%) rename {UI => src/UI}/Cells/TemplatedCell.js (100%) rename {UI => src/UI}/Cells/ToggleCell.js (100%) rename {UI => src/UI}/Cells/cells.less (100%) rename {UI => src/UI}/Commands/CommandCollection.js (100%) rename {UI => src/UI}/Commands/CommandController.js (100%) rename {UI => src/UI}/Commands/CommandMessengerCollectionView.js (100%) rename {UI => src/UI}/Commands/CommandMessengerItemView.js (100%) rename {UI => src/UI}/Commands/CommandModel.js (100%) rename {UI => src/UI}/Config.js (100%) rename {UI => src/UI}/Content/Backgrid/backgrid.less (100%) rename {UI => src/UI}/Content/Backgrid/filter.less (100%) rename {UI => src/UI}/Content/Backgrid/paginator.less (100%) rename {UI => src/UI}/Content/Bootstrap/accordion.less (100%) rename {UI => src/UI}/Content/Bootstrap/alerts.less (100%) rename {UI => src/UI}/Content/Bootstrap/bootstrap.less (100%) rename {UI => src/UI}/Content/Bootstrap/breadcrumbs.less (100%) rename {UI => src/UI}/Content/Bootstrap/button-groups.less (100%) rename {UI => src/UI}/Content/Bootstrap/buttons.less (100%) rename {UI => src/UI}/Content/Bootstrap/carousel.less (100%) rename {UI => src/UI}/Content/Bootstrap/close.less (100%) rename {UI => src/UI}/Content/Bootstrap/code.less (100%) rename {UI => src/UI}/Content/Bootstrap/component-animations.less (100%) rename {UI => src/UI}/Content/Bootstrap/dropdowns.less (100%) rename {UI => src/UI}/Content/Bootstrap/forms.less (100%) rename {UI => src/UI}/Content/Bootstrap/grid.less (100%) rename {UI => src/UI}/Content/Bootstrap/hero-unit.less (100%) rename {UI => src/UI}/Content/Bootstrap/labels-badges.less (100%) rename {UI => src/UI}/Content/Bootstrap/layouts.less (100%) rename {UI => src/UI}/Content/Bootstrap/media.less (100%) rename {UI => src/UI}/Content/Bootstrap/mixins.less (100%) rename {UI => src/UI}/Content/Bootstrap/modals.less (100%) rename {UI => src/UI}/Content/Bootstrap/navbar.less (100%) rename {UI => src/UI}/Content/Bootstrap/navs.less (100%) rename {UI => src/UI}/Content/Bootstrap/pager.less (100%) rename {UI => src/UI}/Content/Bootstrap/pagination.less (100%) rename {UI => src/UI}/Content/Bootstrap/popovers.less (100%) rename {UI => src/UI}/Content/Bootstrap/progress-bars.less (100%) rename {UI => src/UI}/Content/Bootstrap/reset.less (100%) rename {UI => src/UI}/Content/Bootstrap/scaffolding.less (100%) rename {UI => src/UI}/Content/Bootstrap/sprites.less (100%) rename {UI => src/UI}/Content/Bootstrap/tables.less (100%) rename {UI => src/UI}/Content/Bootstrap/thumbnails.less (100%) rename {UI => src/UI}/Content/Bootstrap/tooltip.less (100%) rename {UI => src/UI}/Content/Bootstrap/type.less (100%) rename {UI => src/UI}/Content/Bootstrap/utilities.less (100%) rename {UI => src/UI}/Content/Bootstrap/variables.less (100%) rename {UI => src/UI}/Content/Bootstrap/wells.less (100%) rename UI/Content/FontAwesome/fontawesome.otf => src/UI/Content/FontAwesome/FontAwesome.otf (100%) rename {UI => src/UI}/Content/FontAwesome/bootstrap.less (100%) rename {UI => src/UI}/Content/FontAwesome/core.less (100%) rename {UI => src/UI}/Content/FontAwesome/extras.less (100%) rename {UI => src/UI}/Content/FontAwesome/font-awesome-ie7.less (100%) rename {UI => src/UI}/Content/FontAwesome/font-awesome.less (100%) rename {UI => src/UI}/Content/FontAwesome/fontawesome-webfont.eot (100%) rename {UI => src/UI}/Content/FontAwesome/fontawesome-webfont.svg (100%) rename {UI => src/UI}/Content/FontAwesome/fontawesome-webfont.ttf (100%) rename {UI => src/UI}/Content/FontAwesome/fontawesome-webfont.woff (100%) rename {UI => src/UI}/Content/FontAwesome/icons.less (100%) rename {UI => src/UI}/Content/FontAwesome/mixins.less (100%) rename {UI => src/UI}/Content/FontAwesome/path.less (100%) rename {UI => src/UI}/Content/FontAwesome/variables.less (100%) rename {UI => src/UI}/Content/Images/404.png (100%) rename {UI => src/UI}/Content/Images/black_linen_v2.png (100%) rename {UI => src/UI}/Content/Images/logo.png (100%) rename {UI => src/UI}/Content/Images/pattern.png (100%) rename {UI => src/UI}/Content/Images/poster-dark.jpg (100%) rename {UI => src/UI}/Content/Images/touch/114.png (100%) rename {UI => src/UI}/Content/Images/touch/144.png (100%) rename {UI => src/UI}/Content/Images/touch/57.png (100%) rename {UI => src/UI}/Content/Images/touch/72.png (100%) rename {UI => src/UI}/Content/Messenger/messenger.css (100%) rename {UI => src/UI}/Content/Messenger/messenger.future.css (100%) rename {UI => src/UI}/Content/Overrides/bootstrap.less (100%) rename {UI => src/UI}/Content/Overrides/bootstrap.toggle-switch.less (100%) rename {UI => src/UI}/Content/Overrides/browser.less (100%) rename {UI => src/UI}/Content/bootstrap.toggle-switch.css (100%) rename {UI => src/UI}/Content/font.less (100%) rename UI/Content/fonts/OpenSans-Italic.eot => src/UI/Content/fonts/opensans-italic.eot (100%) rename UI/Content/fonts/OpenSans-Italic.ttf => src/UI/Content/fonts/opensans-italic.ttf (100%) rename UI/Content/fonts/OpenSans-Italic.woff => src/UI/Content/fonts/opensans-italic.woff (100%) rename UI/Content/fonts/OpenSans-Light.eot => src/UI/Content/fonts/opensans-light.eot (100%) rename UI/Content/fonts/OpenSans-Light.ttf => src/UI/Content/fonts/opensans-light.ttf (100%) rename UI/Content/fonts/OpenSans-Light.woff => src/UI/Content/fonts/opensans-light.woff (100%) rename UI/Content/fonts/OpenSans-LightItalic.eot => src/UI/Content/fonts/opensans-lightitalic.eot (100%) rename UI/Content/fonts/OpenSans-LightItalic.ttf => src/UI/Content/fonts/opensans-lightitalic.ttf (100%) rename UI/Content/fonts/OpenSans-LightItalic.woff => src/UI/Content/fonts/opensans-lightitalic.woff (100%) rename UI/Content/fonts/OpenSans-Regular.eot => src/UI/Content/fonts/opensans-regular.eot (100%) rename UI/Content/fonts/OpenSans-Regular.ttf => src/UI/Content/fonts/opensans-regular.ttf (100%) rename UI/Content/fonts/OpenSans-Regular.woff => src/UI/Content/fonts/opensans-regular.woff (100%) rename UI/Content/fonts/OpenSans-SemiBold.eot => src/UI/Content/fonts/opensans-semibold.eot (100%) rename UI/Content/fonts/OpenSans-Semibold.ttf => src/UI/Content/fonts/opensans-semibold.ttf (100%) rename UI/Content/fonts/OpenSans-SemiBold.woff => src/UI/Content/fonts/opensans-semibold.woff (100%) rename UI/Content/fonts/OpenSans-SemiboldItalic.eot => src/UI/Content/fonts/opensans-semibolditalic.eot (100%) rename UI/Content/fonts/OpenSans-SemiboldItalic.ttf => src/UI/Content/fonts/opensans-semibolditalic.ttf (100%) rename UI/Content/fonts/OpenSans-SemiboldItalic.woff => src/UI/Content/fonts/opensans-semibolditalic.woff (100%) rename {UI => src/UI}/Content/form.less (100%) rename {UI => src/UI}/Content/fullcalendar.css (100%) rename {UI => src/UI}/Content/icons.less (100%) rename {UI => src/UI}/Content/legend.less (100%) rename {UI => src/UI}/Content/menu.less (100%) rename {UI => src/UI}/Content/overrides.less (100%) rename {UI => src/UI}/Content/prefixer.less (100%) rename {UI => src/UI}/Content/spinner.less (100%) rename {UI => src/UI}/Content/theme.less (100%) rename {UI => src/UI}/Content/variables.less (100%) rename {UI => src/UI}/Controller.js (100%) rename {UI => src/UI}/Episode/EpisodeDetailsLayout.js (100%) rename {UI => src/UI}/Episode/EpisodeDetailsLayoutTemplate.html (100%) rename {UI => src/UI}/Episode/Search/ButtonsView.js (100%) rename {UI => src/UI}/Episode/Search/ButtonsViewTemplate.html (100%) rename {UI => src/UI}/Episode/Search/EpisodeSearchLayout.js (100%) rename {UI => src/UI}/Episode/Search/EpisodeSearchLayoutTemplate.html (100%) rename {UI => src/UI}/Episode/Search/ManualLayout.js (100%) rename {UI => src/UI}/Episode/Search/ManualLayoutTemplate.html (100%) rename {UI => src/UI}/Episode/Summary/EpisodeSummaryLayout.js (100%) rename {UI => src/UI}/Episode/Summary/EpisodeSummaryLayoutTemplate.html (100%) rename {UI => src/UI}/Episode/Summary/NoFileView.js (100%) rename {UI => src/UI}/Episode/Summary/NoFileViewTemplate.html (100%) rename {UI => src/UI}/Form/CheckboxTemplate.html (100%) rename {UI => src/UI}/Form/FormBuilder.js (100%) rename {UI => src/UI}/Form/FormHelpPartial.html (100%) rename {UI => src/UI}/Form/PasswordTemplate.html (100%) rename {UI => src/UI}/Form/SelectTemplate.html (100%) rename {UI => src/UI}/Form/TextboxTemplate.html (100%) rename {UI => src/UI}/Handlebars/Handlebars.Debug.js (100%) rename {UI => src/UI}/Handlebars/Helpers/DateTime.js (100%) rename {UI => src/UI}/Handlebars/Helpers/Episode.js (100%) rename {UI => src/UI}/Handlebars/Helpers/Html.js (100%) rename {UI => src/UI}/Handlebars/Helpers/Numbers.js (100%) rename {UI => src/UI}/Handlebars/Helpers/Quality.js (100%) rename {UI => src/UI}/Handlebars/Helpers/Series.js (100%) rename {UI => src/UI}/Handlebars/Helpers/Version.js (100%) rename {UI => src/UI}/Handlebars/backbone.marionette.templates.js (100%) rename {UI => src/UI}/History/Details/HistoryDetailsView.js (100%) rename {UI => src/UI}/History/Details/HistoryDetailsViewTemplate.html (100%) rename {UI => src/UI}/History/HistoryCollection.js (100%) rename {UI => src/UI}/History/HistoryLayout.js (100%) rename {UI => src/UI}/History/HistoryLayoutTemplate.html (100%) rename {UI => src/UI}/History/HistoryModel.js (100%) rename {UI => src/UI}/History/Queue/QueueCollection.js (100%) rename {UI => src/UI}/History/Queue/QueueLayout.js (100%) rename {UI => src/UI}/History/Queue/QueueLayoutTemplate.html (100%) rename {UI => src/UI}/History/Queue/QueueModel.js (100%) rename {UI => src/UI}/History/Queue/TimeleftCell.js (100%) rename {UI => src/UI}/History/Table/ControlsColumnTemplate.html (100%) rename {UI => src/UI}/History/Table/EventTypeCell.js (100%) rename {UI => src/UI}/History/Table/HistoryDetailsCell.js (100%) rename {UI => src/UI}/History/Table/HistoryTableLayout.js (100%) rename {UI => src/UI}/History/Table/HistoryTableLayoutTemplate.html (100%) rename {UI => src/UI}/Instrumentation/ErrorHandler.js (100%) rename {UI => src/UI}/Instrumentation/StringFormat.js (100%) rename {UI => src/UI}/JsLibraries/backbone.backgrid.filter.js (100%) rename {UI => src/UI}/JsLibraries/backbone.backgrid.js (100%) rename {UI => src/UI}/JsLibraries/backbone.backgrid.paginator.js (100%) rename {UI => src/UI}/JsLibraries/backbone.deep.model.js (100%) rename {UI => src/UI}/JsLibraries/backbone.js (100%) rename {UI => src/UI}/JsLibraries/backbone.marionette.js (100%) rename {UI => src/UI}/JsLibraries/backbone.modelbinder.js (100%) rename {UI => src/UI}/JsLibraries/backbone.pageable.js (100%) rename {UI => src/UI}/JsLibraries/backbone.shortcuts.js (100%) rename {UI => src/UI}/JsLibraries/backbone.validation.js (100%) rename {UI => src/UI}/JsLibraries/bootstrap.js (100%) rename {UI => src/UI}/JsLibraries/filesize.js (100%) rename {UI => src/UI}/JsLibraries/fullcalendar.js (100%) rename {UI => src/UI}/JsLibraries/handlebars.helpers.js (100%) rename {UI => src/UI}/JsLibraries/handlebars.runtime.js (100%) rename {UI => src/UI}/JsLibraries/jquery.backstretch.js (100%) rename {UI => src/UI}/JsLibraries/jquery.dotdotdot.js (100%) rename {UI => src/UI}/JsLibraries/jquery.js (100%) rename {UI => src/UI}/JsLibraries/jquery.knob.js (100%) rename {UI => src/UI}/JsLibraries/jquery.signalR.js (100%) rename {UI => src/UI}/JsLibraries/lodash.underscore.js (100%) rename {UI => src/UI}/JsLibraries/messenger.js (100%) rename {UI => src/UI}/JsLibraries/moment.js (100%) rename {UI => src/UI}/JsLibraries/require.js (100%) rename {UI => src/UI}/Missing/Collection.js (100%) rename {UI => src/UI}/Missing/ControlsColumnTemplate.html (100%) rename {UI => src/UI}/Missing/MissingLayout.js (100%) rename {UI => src/UI}/Missing/MissingLayoutTemplate.html (100%) rename {UI => src/UI}/Mixins/AsChangeTrackingModel.js (100%) rename {UI => src/UI}/Mixins/AsModelBoundView.js (100%) rename {UI => src/UI}/Mixins/AsNamedView.js (100%) rename {UI => src/UI}/Mixins/AsValidatedView.js (100%) rename {UI => src/UI}/Mixins/AutoComplete.js (100%) rename {UI => src/UI}/Mixins/backbone.marionette.region.mixin.js (100%) rename {UI => src/UI}/Mixins/backbone.signalr.mixin.js (100%) rename {UI => src/UI}/Mixins/jquery.ajax.js (100%) rename {UI => src/UI}/Mixins/underscore.mixin.deepExtend.js (100%) rename {UI => src/UI}/Navbar/NavbarTemplate.html (100%) rename {UI => src/UI}/Navbar/NavbarView.js (100%) rename {UI => src/UI}/Navbar/Search.js (100%) rename {UI => src/UI}/ProgressMessaging/ProgressMessageCollection.js (100%) rename {UI => src/UI}/Quality/QualityProfileCollection.js (100%) rename {UI => src/UI}/Quality/QualityProfileModel.js (100%) rename {UI => src/UI}/Quality/QualityProfileSelectionPartial.html (100%) rename {UI => src/UI}/Quality/QualitySizeCollection.js (100%) rename {UI => src/UI}/Quality/QualitySizeModel.js (100%) rename {UI => src/UI}/Release/Collection.js (100%) rename {UI => src/UI}/Release/DownloadReportCell.js (100%) rename {UI => src/UI}/Release/Layout.js (100%) rename {UI => src/UI}/Release/LayoutTemplate.html (100%) rename {UI => src/UI}/Release/Model.js (100%) rename {UI => src/UI}/Router.js (100%) rename {UI => src/UI}/SeasonPass/SeasonPassLayout.js (100%) rename {UI => src/UI}/SeasonPass/SeasonPassLayoutTemplate.html (100%) rename {UI => src/UI}/SeasonPass/SeriesCollectionView.js (100%) rename {UI => src/UI}/SeasonPass/SeriesLayout.js (100%) rename {UI => src/UI}/SeasonPass/SeriesLayoutTemplate.html (100%) rename {UI => src/UI}/Series/Delete/DeleteSeriesTemplate.html (100%) rename {UI => src/UI}/Series/Delete/DeleteSeriesView.js (100%) rename {UI => src/UI}/Series/Details/InfoView.js (100%) rename {UI => src/UI}/Series/Details/InfoViewTemplate.html (100%) rename {UI => src/UI}/Series/Details/SeasonCollectionView.js (100%) rename {UI => src/UI}/Series/Details/SeasonLayout.js (100%) rename {UI => src/UI}/Series/Details/SeasonLayoutTemplate.html (100%) rename {UI => src/UI}/Series/Details/SeriesDetailsLayout.js (100%) rename {UI => src/UI}/Series/Details/SeriesDetailsTemplate.html (100%) rename {UI => src/UI}/Series/Edit/EditSeriesTemplate.html (100%) rename {UI => src/UI}/Series/Edit/EditSeriesView.js (100%) rename {UI => src/UI}/Series/EpisodeCollection.js (100%) rename {UI => src/UI}/Series/EpisodeFileCollection.js (100%) rename {UI => src/UI}/Series/EpisodeFileModel.js (100%) rename {UI => src/UI}/Series/EpisodeModel.js (100%) rename {UI => src/UI}/Series/Index/EmptySeriesIndexView.js (100%) rename {UI => src/UI}/Series/Index/EmptyTemplate.html (100%) rename {UI => src/UI}/Series/Index/EmptyView.js (100%) rename {UI => src/UI}/Series/Index/EpisodeProgressPartial.html (100%) rename {UI => src/UI}/Series/Index/FooterModel.js (100%) rename {UI => src/UI}/Series/Index/FooterView.js (100%) rename {UI => src/UI}/Series/Index/FooterViewTemplate.html (100%) rename {UI => src/UI}/Series/Index/List/CollectionTemplate.html (100%) rename {UI => src/UI}/Series/Index/List/CollectionView.js (100%) rename {UI => src/UI}/Series/Index/List/ItemTemplate.html (100%) rename {UI => src/UI}/Series/Index/List/ItemView.js (100%) rename {UI => src/UI}/Series/Index/Posters/CollectionTemplate.html (100%) rename {UI => src/UI}/Series/Index/Posters/CollectionView.js (100%) rename {UI => src/UI}/Series/Index/Posters/ItemTemplate.html (100%) rename {UI => src/UI}/Series/Index/Posters/ItemView.js (100%) rename {UI => src/UI}/Series/Index/SeriesIndexLayout.js (100%) rename {UI => src/UI}/Series/Index/SeriesIndexLayoutTemplate.html (100%) rename {UI => src/UI}/Series/SeasonCollection.js (100%) rename {UI => src/UI}/Series/SeasonModel.js (100%) rename {UI => src/UI}/Series/SeriesCollection.js (100%) rename {UI => src/UI}/Series/SeriesModel.js (100%) rename {UI => src/UI}/Series/series.less (100%) rename {UI => src/UI}/ServerStatus.js (100%) rename {UI => src/UI}/Settings/DownloadClient/BlackholeView.js (100%) rename {UI => src/UI}/Settings/DownloadClient/BlackholeViewTemplate.html (100%) rename {UI => src/UI}/Settings/DownloadClient/Layout.js (100%) rename {UI => src/UI}/Settings/DownloadClient/LayoutTemplate.html (100%) rename {UI => src/UI}/Settings/DownloadClient/NzbgetView.js (100%) rename {UI => src/UI}/Settings/DownloadClient/NzbgetViewTemplate.html (100%) rename {UI => src/UI}/Settings/DownloadClient/PneumaticView.js (100%) rename {UI => src/UI}/Settings/DownloadClient/PneumaticViewTemplate.html (100%) rename {UI => src/UI}/Settings/DownloadClient/SabView.js (100%) rename {UI => src/UI}/Settings/DownloadClient/SabViewTemplate.html (100%) rename {UI => src/UI}/Settings/General/GeneralSettingsModel.js (100%) rename {UI => src/UI}/Settings/General/GeneralTemplate.html (100%) rename {UI => src/UI}/Settings/General/GeneralView.js (100%) rename {UI => src/UI}/Settings/Indexers/Collection.js (100%) rename {UI => src/UI}/Settings/Indexers/CollectionTemplate.html (100%) rename {UI => src/UI}/Settings/Indexers/CollectionView.js (100%) rename {UI => src/UI}/Settings/Indexers/DeleteTemplate.html (100%) rename {UI => src/UI}/Settings/Indexers/DeleteView.js (100%) rename {UI => src/UI}/Settings/Indexers/EditTemplate.html (100%) rename {UI => src/UI}/Settings/Indexers/EditView.js (100%) rename {UI => src/UI}/Settings/Indexers/IndexerLayout.js (100%) rename {UI => src/UI}/Settings/Indexers/IndexerLayoutTemplate.html (100%) rename {UI => src/UI}/Settings/Indexers/ItemTemplate.html (100%) rename {UI => src/UI}/Settings/Indexers/ItemView.js (100%) rename {UI => src/UI}/Settings/Indexers/Model.js (100%) rename {UI => src/UI}/Settings/Indexers/Options/IndexerOptionsView.js (100%) rename {UI => src/UI}/Settings/Indexers/Options/IndexerOptionsViewTemplate.html (100%) rename {UI => src/UI}/Settings/Indexers/indexers.less (100%) rename {UI => src/UI}/Settings/MediaManagement/FileManagement/FileManagementView.js (100%) rename {UI => src/UI}/Settings/MediaManagement/FileManagement/FileManagementViewTemplate.html (100%) rename {UI => src/UI}/Settings/MediaManagement/MediaManagementLayout.js (100%) rename {UI => src/UI}/Settings/MediaManagement/MediaManagementLayoutTemplate.html (100%) rename {UI => src/UI}/Settings/MediaManagement/Naming/Model.js (100%) rename {UI => src/UI}/Settings/MediaManagement/Naming/View.js (100%) rename {UI => src/UI}/Settings/MediaManagement/Naming/ViewTemplate.html (100%) rename {UI => src/UI}/Settings/MediaManagement/Sorting/View.js (100%) rename {UI => src/UI}/Settings/MediaManagement/Sorting/ViewTemplate.html (100%) rename {UI => src/UI}/Settings/Notifications/AddItemTemplate.html (100%) rename {UI => src/UI}/Settings/Notifications/AddItemView.js (100%) rename {UI => src/UI}/Settings/Notifications/AddTemplate.html (100%) rename {UI => src/UI}/Settings/Notifications/AddView.js (100%) rename {UI => src/UI}/Settings/Notifications/Collection.js (100%) rename {UI => src/UI}/Settings/Notifications/CollectionTemplate.html (100%) rename {UI => src/UI}/Settings/Notifications/CollectionView.js (100%) rename {UI => src/UI}/Settings/Notifications/DeleteTemplate.html (100%) rename {UI => src/UI}/Settings/Notifications/DeleteView.js (100%) rename {UI => src/UI}/Settings/Notifications/EditTemplate.html (100%) rename {UI => src/UI}/Settings/Notifications/EditView.js (100%) rename {UI => src/UI}/Settings/Notifications/ItemTemplate.html (100%) rename {UI => src/UI}/Settings/Notifications/ItemView.js (100%) rename {UI => src/UI}/Settings/Notifications/Model.js (100%) rename {UI => src/UI}/Settings/Notifications/SchemaModal.js (100%) rename {UI => src/UI}/Settings/Notifications/notifications.less (100%) rename {UI => src/UI}/Settings/Quality/Profile/AllowedLabeler.js (100%) rename {UI => src/UI}/Settings/Quality/Profile/DeleteTemplate.html (100%) rename {UI => src/UI}/Settings/Quality/Profile/DeleteView.js (100%) rename {UI => src/UI}/Settings/Quality/Profile/EditQualityProfileTemplate.html (100%) rename {UI => src/UI}/Settings/Quality/Profile/EditQualityProfileView.js (100%) rename {UI => src/UI}/Settings/Quality/Profile/QualityProfileCollectionTemplate.html (100%) rename {UI => src/UI}/Settings/Quality/Profile/QualityProfileCollectionView.js (100%) rename {UI => src/UI}/Settings/Quality/Profile/QualityProfileSchemaCollection.js (100%) rename {UI => src/UI}/Settings/Quality/Profile/QualityProfileTemplate.html (100%) rename {UI => src/UI}/Settings/Quality/Profile/QualityProfileView.js (100%) rename {UI => src/UI}/Settings/Quality/QualityLayout.js (100%) rename {UI => src/UI}/Settings/Quality/QualityLayoutTemplate.html (100%) rename {UI => src/UI}/Settings/Quality/Size/QualitySizeCollectionTemplate.html (100%) rename {UI => src/UI}/Settings/Quality/Size/QualitySizeCollectionView.js (100%) rename {UI => src/UI}/Settings/Quality/Size/QualitySizeTemplate.html (100%) rename {UI => src/UI}/Settings/Quality/Size/QualitySizeView.js (100%) rename {UI => src/UI}/Settings/Quality/quality.less (100%) rename {UI => src/UI}/Settings/SettingsLayout.js (100%) rename {UI => src/UI}/Settings/SettingsLayoutTemplate.html (100%) rename {UI => src/UI}/Settings/SettingsModel.js (100%) rename {UI => src/UI}/Settings/SettingsModelBase.js (100%) rename {UI => src/UI}/Settings/settings.less (100%) rename {UI => src/UI}/Shared/Footer/Template.html (100%) rename {UI => src/UI}/Shared/Footer/View.js (100%) rename {UI => src/UI}/Shared/FormatHelpers.js (100%) rename {UI => src/UI}/Shared/Grid/DateHeaderCell.js (100%) rename {UI => src/UI}/Shared/Grid/HeaderCell.js (100%) rename {UI => src/UI}/Shared/Grid/Pager.js (100%) rename {UI => src/UI}/Shared/Grid/PagerTemplate.html (100%) rename {UI => src/UI}/Shared/LoadingTemplate.html (100%) rename {UI => src/UI}/Shared/LoadingView.js (100%) rename {UI => src/UI}/Shared/Messenger.js (100%) rename {UI => src/UI}/Shared/Modal/Controller.js (100%) rename {UI => src/UI}/Shared/Modal/Region.js (100%) rename {UI => src/UI}/Shared/NotFoundTemplate.html (100%) rename {UI => src/UI}/Shared/NotFoundView.js (100%) rename {UI => src/UI}/Shared/SignalRBroadcaster.js (100%) rename {UI => src/UI}/Shared/Styles/card.less (100%) rename {UI => src/UI}/Shared/Styles/clickable.less (100%) rename {UI => src/UI}/Shared/Toolbar/Button/ButtonCollectionView.js (100%) rename {UI => src/UI}/Shared/Toolbar/Button/ButtonView.js (100%) rename {UI => src/UI}/Shared/Toolbar/ButtonCollection.js (100%) rename {UI => src/UI}/Shared/Toolbar/ButtonModel.js (100%) rename {UI => src/UI}/Shared/Toolbar/ButtonTemplate.html (100%) rename {UI => src/UI}/Shared/Toolbar/Radio/RadioButtonCollectionView.js (100%) rename {UI => src/UI}/Shared/Toolbar/Radio/RadioButtonView.js (100%) rename {UI => src/UI}/Shared/Toolbar/ToolbarLayout.js (100%) rename {UI => src/UI}/Shared/Toolbar/ToolbarLayoutTemplate.html (100%) rename {UI => src/UI}/System/About/AboutView.js (100%) rename {UI => src/UI}/System/About/AboutViewTemplate.html (100%) rename {UI => src/UI}/System/Logs/Files/ContentsModel.js (100%) rename {UI => src/UI}/System/Logs/Files/ContentsView.js (100%) rename {UI => src/UI}/System/Logs/Files/ContentsViewTemplate.html (100%) rename {UI => src/UI}/System/Logs/Files/FilenameCell.js (100%) rename {UI => src/UI}/System/Logs/Files/LogFileCollection.js (100%) rename {UI => src/UI}/System/Logs/Files/LogFileLayout.js (100%) rename {UI => src/UI}/System/Logs/Files/LogFileLayoutTemplate.html (100%) rename {UI => src/UI}/System/Logs/Files/LogFileModel.js (100%) rename {UI => src/UI}/System/Logs/Files/Row.js (100%) rename {UI => src/UI}/System/Logs/Logs.less (100%) rename {UI => src/UI}/System/Logs/LogsCollection.js (100%) rename {UI => src/UI}/System/Logs/LogsLayout.js (100%) rename {UI => src/UI}/System/Logs/LogsLayoutTemplate.html (100%) rename {UI => src/UI}/System/Logs/LogsModel.js (100%) rename {UI => src/UI}/System/Logs/Table/LogLevelCell.js (100%) rename {UI => src/UI}/System/Logs/Table/LogTimeCell.js (100%) rename {UI => src/UI}/System/Logs/Table/LogsTableLayout.js (100%) rename {UI => src/UI}/System/Logs/Table/LogsTableLayoutTemplate.html (100%) rename {UI => src/UI}/System/StatusModel.js (100%) rename {UI => src/UI}/System/SystemLayout.js (100%) rename {UI => src/UI}/System/SystemLayoutTemplate.html (100%) rename {UI => src/UI}/System/Update/UpdateCollection.js (100%) rename {UI => src/UI}/System/Update/UpdateCollectionView.js (100%) rename {UI => src/UI}/System/Update/UpdateItemView.js (100%) rename {UI => src/UI}/System/Update/UpdateItemViewTemplate.html (100%) rename {UI => src/UI}/System/Update/UpdateLayout.js (100%) rename {UI => src/UI}/System/Update/UpdateLayoutTemplate.html (100%) rename {UI => src/UI}/System/Update/UpdateModel.js (100%) rename {UI => src/UI}/System/Update/update.less (100%) rename {UI => src/UI}/app.js (100%) rename {UI => src/UI}/favicon.ico (100%) rename {UI => src/UI}/index.html (100%) rename {UI => src/UI}/jQuery/RouteBinder.js (100%) rename {UI => src/UI}/jQuery/ToTheTop.js (100%) rename {UI => src/UI}/jQuery/TooltipBinder.js (100%) rename {UI => src/UI}/jQuery/jquery.spin.js (100%) rename {UI => src/UI}/jQuery/jquery.validation.js (100%) rename {UI => src/UI}/polyfills.js (100%) diff --git a/Gruntfile.js b/Gruntfile.js index 3ce175cb2..e608d7630 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -1,9 +1,10 @@ module.exports = function (grunt) { 'use strict'; - var outputRoot = '_output/'; - var outputDir = outputRoot +'UI/'; - var srcContent = 'UI/Content/'; + var outputRoot = '_output/'; + var outputDir = outputRoot +'UI/'; + var srcRoot = 'src/UI/' + var srcContent = srcRoot + 'Content/'; var destContent = outputDir + 'Content/'; grunt.initConfig({ @@ -11,36 +12,36 @@ module.exports = function (grunt) { pkg: grunt.file.readJSON('package.json'), curl: { - 'UI/JsLibraries/backbone.js' : 'http://documentcloud.github.io/backbone/backbone.js', - 'UI/JsLibraries/backbone.marionette.js' : 'http://marionettejs.com/downloads/backbone.marionette.js', - 'UI/JsLibraries/backbone.modelbinder.js' : 'http://raw.github.com/theironcook/Backbone.ModelBinder/master/Backbone.ModelBinder.js', - 'UI/JsLibraries/backbone.shortcuts.js' : 'http://raw.github.com/bry4n/backbone-shortcuts/master/backbone.shortcuts.js', + 'src/UI/JsLibraries/backbone.js' : 'http://documentcloud.github.io/backbone/backbone.js', + 'src/UI/JsLibraries/backbone.marionette.js' : 'http://marionettejs.com/downloads/backbone.marionette.js', + 'src/UI/JsLibraries/backbone.modelbinder.js' : 'http://raw.github.com/theironcook/Backbone.ModelBinder/master/Backbone.ModelBinder.js', + 'src/UI/JsLibraries/backbone.shortcuts.js' : 'http://raw.github.com/bry4n/backbone-shortcuts/master/backbone.shortcuts.js', - 'UI/JsLibraries/backbone.pageable.js' : 'http://raw.github.com/wyuenho/backbone-pageable/master/lib/backbone-pageable.js', - 'UI/JsLibraries/backbone.backgrid.js' : 'http://raw.github.com/wyuenho/backgrid/master/lib/backgrid.js', - 'UI/JsLibraries/backbone.backgrid.paginator.js' : 'http://raw.github.com/wyuenho/backgrid/master/lib/extensions/paginator/backgrid-paginator.js', - 'UI/JsLibraries/backbone.backgrid.filter.js' : 'http://raw.github.com/wyuenho/backgrid/master/lib/extensions/filter/backgrid-filter.js', + 'src/UI/JsLibraries/backbone.pageable.js' : 'http://raw.github.com/wyuenho/backbone-pageable/master/lib/backbone-pageable.js', + 'src/UI/JsLibraries/backbone.backgrid.js' : 'http://raw.github.com/wyuenho/backgrid/master/lib/backgrid.js', + 'src/UI/JsLibraries/backbone.backgrid.paginator.js' : 'http://raw.github.com/wyuenho/backgrid/master/lib/extensions/paginator/backgrid-paginator.js', + 'src/UI/JsLibraries/backbone.backgrid.filter.js' : 'http://raw.github.com/wyuenho/backgrid/master/lib/extensions/filter/backgrid-filter.js', - 'UI/JsLibraries/backbone.validation.js' : 'https://raw.github.com/thedersen/backbone.validation/master/dist/backbone-validation.js', + 'src/UI/JsLibraries/backbone.validation.js' : 'https://raw.github.com/thedersen/backbone.validation/master/dist/backbone-validation.js', - 'UI/JsLibraries/handlebars.runtime.js' : 'http://raw.github.com/wycats/handlebars.js/master/dist/handlebars.runtime.js', - 'UI/JsLibraries/handlebars.helpers.js' : 'http://raw.github.com/danharper/Handlebars-Helpers/master/helpers.js', + 'src/UI/JsLibraries/handlebars.runtime.js' : 'http://raw.github.com/wycats/handlebars.js/master/dist/handlebars.runtime.js', + 'src/UI/JsLibraries/handlebars.helpers.js' : 'http://raw.github.com/danharper/Handlebars-Helpers/master/helpers.js', - 'UI/JsLibraries/jquery.js' : 'http://code.jquery.com/jquery.js', - 'UI/JsLibraries/jquery.backstretch.js' : 'http://raw.github.com/srobbin/jquery-backstretch/master/jquery.backstretch.js', - 'UI/JsLibraries/jquery.signalR.js' : 'http://raw.github.com/SignalR/SignalR/master/samples/Microsoft.AspNet.SignalR.Hosting.AspNet.Samples/Scripts/jquery.signalR.js', - 'UI/JsLibraries/jquery.knob.js' : 'http://raw.github.com/aterrien/jQuery-Knob/master/js/jquery.knob.js', + 'src/UI/JsLibraries/jquery.js' : 'http://code.jquery.com/jquery.js', + 'src/UI/JsLibraries/jquery.backstretch.js' : 'http://raw.github.com/srobbin/jquery-backstretch/master/jquery.backstretch.js', + 'src/UI/JsLibraries/jquery.signalR.js' : 'http://raw.github.com/SignalR/SignalR/master/samples/Microsoft.AspNet.SignalR.Hosting.AspNet.Samples/Scripts/jquery.signalR.js', + 'src/UI/JsLibraries/jquery.knob.js' : 'http://raw.github.com/aterrien/jQuery-Knob/master/js/jquery.knob.js', - 'UI/JsLibraries/require.js' : 'http://raw.github.com/jrburke/requirejs/master/require.js', - 'UI/JsLibraries/filesize.js' : 'http://cdn.filesizejs.com/filesize.js', - 'UI/JsLibraries/lodash.underscore.js' : 'http://raw.github.com/bestiejs/lodash/master/dist/lodash.underscore.js', + 'src/UI/JsLibraries/require.js' : 'http://raw.github.com/jrburke/requirejs/master/require.js', + 'src/UI/JsLibraries/filesize.js' : 'http://cdn.filesizejs.com/filesize.js', + 'src/UI/JsLibraries/lodash.underscore.js' : 'http://raw.github.com/bestiejs/lodash/master/dist/lodash.underscore.js', - 'UI/JsLibraries/messenger.js' : 'http://raw.github.com/HubSpot/messenger/master/build/js/messenger.js', - 'UI/Content/Messenger/messenger.css' : 'http://raw.github.com/HubSpot/messenger/master/build/css/messenger.css', - 'UI/Content/Messenger/messenger.future.css' : 'http://raw.github.com/HubSpot/messenger/master/build/css/messenger-theme-future.css', + 'src/UI/JsLibraries/messenger.js' : 'http://raw.github.com/HubSpot/messenger/master/build/js/messenger.js', + 'src/UI/Content/Messenger/messenger.css' : 'http://raw.github.com/HubSpot/messenger/master/build/css/messenger.css', + 'src/UI/Content/Messenger/messenger.future.css' : 'http://raw.github.com/HubSpot/messenger/master/build/css/messenger-theme-future.css', - 'UI/Content/bootstrap.toggle-switch.css' : 'http://raw.github.com/ghinda/css-toggle-switch/gh-pages/toggle-switch.css', - 'UI/Content/prefixer.less' : 'http://raw.github.com/JoelSutherland/LESS-Prefixer/master/prefixer.less' + 'src/UI/Content/bootstrap.toggle-switch.css' : 'http://raw.github.com/ghinda/css-toggle-switch/gh-pages/toggle-switch.css', + 'src/UI/Content/prefixer.less' : 'http://raw.github.com/JoelSutherland/LESS-Prefixer/master/prefixer.less' }, clean: { @@ -63,19 +64,20 @@ module.exports = function (grunt) { dest: destContent + 'bootstrap.css' }, general : { - expand :true, - src : [ - 'UI/Content/theme.less', - 'UI/Content/overrides.less', - 'UI/Series/series.less', - 'UI/AddSeries/addSeries.less', - 'UI/Calendar/calendar.less', - 'UI/Cells/cells.less', - 'UI/Settings/settings.less', - 'UI/System/Logs/logs.less', - 'UI/System/Update/update.less' + cwd : srcRoot, + expand : true, + src :[ + 'Content/theme.less', + 'Content/overrides.less', + 'Series/series.less', + 'AddSeries/addSeries.less', + 'Calendar/calendar.less', + 'Cells/cells.less', + 'Settings/settings.less', + 'System/Logs/logs.less', + 'System/Update/update.less' ], - dest : outputRoot, + dest : outputDir, ext: '.css' } }, @@ -88,49 +90,65 @@ module.exports = function (grunt) { amd : true, processName: function (fileName) { return fileName - .replace('UI/', '') + .replace(srcRoot, '') .replace('.html', '') .toLowerCase(); } }, files : { - src : ['UI/**/*Template.html','UI/**/*Partial.html'], + src : [ srcRoot + '**/*Template.html', srcRoot + '**/*Partial.html'], dest: outputDir + 'templates.js' } }, copy: { index : { - src : 'UI/*ndex.html', - dest: outputRoot + cwd : srcRoot, + expand: true, + src : '*ndex.html', + dest : outputDir }, scripts: { - src : 'UI/**/*.js', - dest: outputRoot + cwd : srcRoot, + expand: true, + src : '**/*.js', + dest : outputDir }, styles : { - src : 'UI/**/*.css', - dest: outputRoot + cwd : srcRoot, + expand: true, + src : '**/*.css', + dest : outputDir }, images : { - src : 'UI/**/*.png', - dest: outputRoot + cwd : srcRoot, + expand: true, + src : '**/*.png', + dest : outputDir }, jpg : { - src : 'UI/**/*.jpg', - dest: outputRoot + cwd : srcRoot, + expand: true, + src : '**/*.jpg', + dest : outputDir }, icon : { - src : 'UI/**/*.ico', - dest: outputRoot + cwd : srcRoot, + expand: true, + src : '**/*.ico', + dest : outputDir }, fontAwesome : { - src : 'UI/**/FontAwesome/*.*', - dest: outputRoot + cwd : srcRoot, + expand: true, + src : '**/FontAwesome/*.*', + dest : outputDir }, fonts : { - src : 'UI/**/fonts/*.*', - dest: outputRoot + cwd : srcRoot, + expand: true, + src : '**/fonts/*.*', + dest : outputDir } }, @@ -143,7 +161,7 @@ module.exports = function (grunt) { tasks: ['less:bootstrap','less:general'] }, generalLess: { - files: ['UI/**/*.less', '!**/Bootstrap/**', '!**/FontAwesome/**'], + files: [ srcRoot + '**/*.less', '!**/Bootstrap/**', '!**/FontAwesome/**'], tasks: ['less:general'] }, handlebars : { diff --git a/NzbDrone.Api/NzbDrone.Api.ncrunchproject b/NzbDrone.Api/NzbDrone.Api.ncrunchproject deleted file mode 100644 index 1a2228e7f..000000000 --- a/NzbDrone.Api/NzbDrone.Api.ncrunchproject +++ /dev/null @@ -1,22 +0,0 @@ - - false - true - false - false - false - false - false - false - true - true - false - true - true - 5000 - Debug - x86 - - x86 - STA - x86 - \ No newline at end of file diff --git a/NzbDrone.Common.Test/NzbDrone.Common.Test.ncrunchproject b/NzbDrone.Common.Test/NzbDrone.Common.Test.ncrunchproject deleted file mode 100644 index 21e25ddd5..000000000 --- a/NzbDrone.Common.Test/NzbDrone.Common.Test.ncrunchproject +++ /dev/null @@ -1,60 +0,0 @@ - - false - true - false - false - false - false - false - false - true - true - false - true - true - 5000 - Debug - x86 - - x86 - STA - x86 - - - NzbDrone.Common.Test.EnviromentProviderTest.ApplicationPath_should_find_root_in_current_folder - - - NzbDrone\.Common\.Test\.EventingTests\.ServiceNameFixture\..* - - - NzbDrone\.Common\.Test\.ServiceFactoryFixture\..* - - - NzbDrone.Common.Test.ProcessProviderTests.ToString_on_new_processInfo - - - NzbDrone.Common.Test.ProcessProviderTests.Should_be_able_to_start_process - - - NzbDrone.Common.Test.ProcessProviderTests.kill_all_should_kill_all_process_with_name - - - NzbDrone.Common.Test.ProcessProviderTests.GetProcessById_should_return_null_for_invalid_process(9999) - - - NzbDrone.Common.Test.ProcessProviderTests.GetProcessById_should_return_null_for_invalid_process(-1) - - - NzbDrone.Common.Test.ProcessProviderTests.GetProcessById_should_return_null_for_invalid_process(0) - - - NzbDrone\.Common\.Test\.ServiceProviderTests\..* - - - NzbDrone.Common.Test.DiskProviderTests.DiskProviderFixture.folder_should_return_correct_value_for_last_write - - - NzbDrone\.Common\.Test\.DiskProviderTests\.DiskProviderFixture\..* - - - \ No newline at end of file diff --git a/NzbDrone.Common/NzbDrone.Common.ncrunchproject b/NzbDrone.Common/NzbDrone.Common.ncrunchproject deleted file mode 100644 index 1a2228e7f..000000000 --- a/NzbDrone.Common/NzbDrone.Common.ncrunchproject +++ /dev/null @@ -1,22 +0,0 @@ - - false - true - false - false - false - false - false - false - true - true - false - true - true - 5000 - Debug - x86 - - x86 - STA - x86 - \ No newline at end of file diff --git a/NzbDrone.Core.Test/App_Data/Config.xml b/NzbDrone.Core.Test/App_Data/Config.xml deleted file mode 100644 index c4328bdeb..000000000 --- a/NzbDrone.Core.Test/App_Data/Config.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - 8989 - true - \ No newline at end of file diff --git a/NzbDrone.Core/NzbDrone.Core.ncrunchproject b/NzbDrone.Core/NzbDrone.Core.ncrunchproject deleted file mode 100644 index b36cf9e27..000000000 --- a/NzbDrone.Core/NzbDrone.Core.ncrunchproject +++ /dev/null @@ -1,23 +0,0 @@ - - false - true - false - false - false - false - false - false - true - true - false - true - true - 5000 - RELEASE - x86 - - x86 - STA - x86 - PostBuildEventDisabled - \ No newline at end of file diff --git a/NzbDrone.Test.Common/NzbDrone.Test.Common.ncrunchproject b/NzbDrone.Test.Common/NzbDrone.Test.Common.ncrunchproject deleted file mode 100644 index 1a2228e7f..000000000 --- a/NzbDrone.Test.Common/NzbDrone.Test.Common.ncrunchproject +++ /dev/null @@ -1,22 +0,0 @@ - - false - true - false - false - false - false - false - false - true - true - false - true - true - 5000 - Debug - x86 - - x86 - STA - x86 - \ No newline at end of file diff --git a/NzbDrone.Test.Dummy/NzbDrone.Test.Dummy.ncrunchproject b/NzbDrone.Test.Dummy/NzbDrone.Test.Dummy.ncrunchproject deleted file mode 100644 index 1a2228e7f..000000000 --- a/NzbDrone.Test.Dummy/NzbDrone.Test.Dummy.ncrunchproject +++ /dev/null @@ -1,22 +0,0 @@ - - false - true - false - false - false - false - false - false - true - true - false - true - true - 5000 - Debug - x86 - - x86 - STA - x86 - \ No newline at end of file diff --git a/NzbDrone.Update.Test/NzbDrone.Update.Test.ncrunchproject b/NzbDrone.Update.Test/NzbDrone.Update.Test.ncrunchproject deleted file mode 100644 index 1a2228e7f..000000000 --- a/NzbDrone.Update.Test/NzbDrone.Update.Test.ncrunchproject +++ /dev/null @@ -1,22 +0,0 @@ - - false - true - false - false - false - false - false - false - true - true - false - true - true - 5000 - Debug - x86 - - x86 - STA - x86 - \ No newline at end of file diff --git a/NzbDrone.Update/NzbDrone.Update.ncrunchproject b/NzbDrone.Update/NzbDrone.Update.ncrunchproject deleted file mode 100644 index 1a2228e7f..000000000 --- a/NzbDrone.Update/NzbDrone.Update.ncrunchproject +++ /dev/null @@ -1,22 +0,0 @@ - - false - true - false - false - false - false - false - false - true - true - false - true - true - 5000 - Debug - x86 - - x86 - STA - x86 - \ No newline at end of file diff --git a/NzbDrone.Wix/configuration.xml b/NzbDrone.Wix/configuration.xml deleted file mode 100644 index fdf4f44bf..000000000 --- a/NzbDrone.Wix/configuration.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/NzbDrone.Wix/dotNetInstaller.exe b/NzbDrone.Wix/dotNetInstaller.exe deleted file mode 100644 index a0dd60f8b3f3364034bf6f353f69cf5b6173d394..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1134592 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�Fv*ZRsx|!D7mxUhImdiD>}xbRq2@2o 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⪻SZ~trWwK|Q-RrlzB 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 |B?~ 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

  • yy$BF2b#es$(%%-W#@ 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�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 diff --git a/NzbDrone.Wix/nzbdrone.wix.build.bat b/NzbDrone.Wix/nzbdrone.wix.build.bat deleted file mode 100644 index f031916c2..000000000 --- a/NzbDrone.Wix/nzbdrone.wix.build.bat +++ /dev/null @@ -1,8 +0,0 @@ -rd _raw /s /q -rd _setup /s /q -xcopy ..\SyntikX.Client\bin\release\*.* _raw\ /S /V /I /F /R - -"C:\Program Files (x86)\WiX Toolset v3.6\bin\candle.exe" -nologo "syntik.wix.build.wxs" -out "_setup\SyntikX.Wix.wixobj" -ext WixNetFxExtension -ext WixUIExtension -"C:\Program Files (x86)\WiX Toolset v3.6\bin\light.exe" -nologo "_setup\SyntikX.Wix.wixobj" -out "_setup\SyntikX.msi" -ext WixNetFxExtension -ext WixUIExtension - -pause \ No newline at end of file diff --git a/NzbDrone.Wix/nzbdrone.wix.build.debug.bat b/NzbDrone.Wix/nzbdrone.wix.build.debug.bat deleted file mode 100644 index abf84ccaf..000000000 --- a/NzbDrone.Wix/nzbdrone.wix.build.debug.bat +++ /dev/null @@ -1,10 +0,0 @@ -rd _raw /s /q -rd _setup /s /q -xcopy ..\SyntikX.Client\bin\debug\*.* _raw\ /S /V /I /F /R - -SET BUILD_NUMBER=1.9.9.9 - -"C:\Program Files (x86)\WiX Toolset v3.6\bin\candle.exe" -nologo "syntik.wix.build.wxs" -out "_setup\SyntikX.Wix.wixobj" -ext WixNetFxExtension -ext WixUIExtension -"C:\Program Files (x86)\WiX Toolset v3.6\bin\light.exe" -nologo "_setup\SyntikX.Wix.wixobj" -out "_setup\SyntikX.Wix.msi" -ext WixNetFxExtension -ext WixUIExtension - -pause \ No newline at end of file diff --git a/NzbDrone.Wix/nzbdrone.wix.build.wxs b/NzbDrone.Wix/nzbdrone.wix.build.wxs deleted file mode 100644 index 36284be23..000000000 --- a/NzbDrone.Wix/nzbdrone.wix.build.wxs +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - NETFRAMEWORK40FULL - - - - - - - - - \ No newline at end of file diff --git a/NzbDrone.ncrunchsolution b/NzbDrone.ncrunchsolution deleted file mode 100644 index 28e2de798..000000000 --- a/NzbDrone.ncrunchsolution +++ /dev/null @@ -1,13 +0,0 @@ - - 1 - True - true - true - UseDynamicAnalysis - Disabled - Disabled - Disabled - Run all tests automatically:BFRydWU=;Run all tests manually:BUZhbHNl;Run impacted tests automatically, others manually (experimental!):CklzSW1wYWN0ZWQ=;Run pinned tests automatically, others manually:CElzUGlubmVk;Fast:DlN0cnVjdHVyYWxOb2RlBQAAABNEb2VzTm90SGF2ZUNhdGVnb3J5D0ludGVncmF0aW9uVGVzdBNEb2VzTm90SGF2ZUNhdGVnb3J5BkRiVGVzdApJc0ltcGFjdGVkE0RvZXNOb3RIYXZlQ2F0ZWdvcnkORGlza0FjY2Vzc1Rlc3QISXNQaW5uZWQAAAAAAAAAAAAAAAABAAAA - - - \ No newline at end of file diff --git a/ServiceHelpers/ServiceInstall/ServiceInstall.ncrunchproject b/ServiceHelpers/ServiceInstall/ServiceInstall.ncrunchproject deleted file mode 100644 index b2eed192e..000000000 --- a/ServiceHelpers/ServiceInstall/ServiceInstall.ncrunchproject +++ /dev/null @@ -1,23 +0,0 @@ - - false - true - false - false - false - false - false - false - true - true - false - true - true - 5000 - Debug - x86 - - x86 - STA - x86 - PostBuildEventDisabled - \ No newline at end of file diff --git a/ServiceHelpers/ServiceUninstall/ServiceUninstall.ncrunchproject b/ServiceHelpers/ServiceUninstall/ServiceUninstall.ncrunchproject deleted file mode 100644 index b2eed192e..000000000 --- a/ServiceHelpers/ServiceUninstall/ServiceUninstall.ncrunchproject +++ /dev/null @@ -1,23 +0,0 @@ - - false - true - false - false - false - false - false - false - true - true - false - true - true - 5000 - Debug - x86 - - x86 - STA - x86 - PostBuildEventDisabled - \ No newline at end of file diff --git a/build.ps1 b/build.ps1 index f8bc5ad62..21934eff3 100644 --- a/build.ps1 +++ b/build.ps1 @@ -6,11 +6,9 @@ $testSearchPattern = '*.Test\bin\x86\Release' Function Build() { - $clean = $msbuild + " nzbdrone.sln /t:Clean /m" - $build = $msbuild + " nzbdrone.sln /p:Configuration=Release /p:Platform=x86 /t:Build /m" + $clean = $msbuild + " src\nzbdrone.sln /t:Clean /m" + $build = $msbuild + " src\nzbdrone.sln /p:Configuration=Release /p:Platform=x86 /t:Build /m" - - if(Test-Path $outputFolder) { Remove-Item -Recurse -Force $outputFolder -ErrorAction Continue @@ -72,7 +70,7 @@ Function PackageMono() get-childitem $outputFolderMono -File -Filter ServiceUninstall.* -Recurse | foreach ($_) {remove-item $_.fullname} get-childitem $outputFolderMono -File -Filter ServiceInstall.* -Recurse | foreach ($_) {remove-item $_.fullname} - Write-Host Removing native windows binaries Sqlite, MedianInfo + Write-Host Removing native windows binaries Sqlite, MediaInfo get-childitem $outputFolderMono -File -Filter sqlite3.* -Recurse | foreach ($_) {remove-item $_.fullname} get-childitem $outputFolderMono -File -Filter MediaInfo.* -Recurse | foreach ($_) {remove-item $_.fullname} @@ -85,8 +83,8 @@ Function PackageMono() Function AddJsonNet() { get-childitem $outputFolder -File -Filter Newtonsoft.Json.* -Recurse | foreach ($_) {remove-item $_.fullname} - Copy-Item .\packages\Newtonsoft.Json.5.*\lib\net35\*.dll -Destination $outputFolder - Copy-Item .\packages\Newtonsoft.Json.5.*\lib\net35\*.dll -Destination $outputFolder\NzbDrone.Update + Copy-Item .\src\packages\Newtonsoft.Json.5.*\lib\net35\*.dll -Destination $outputFolder + Copy-Item .\src\packages\Newtonsoft.Json.5.*\lib\net35\*.dll -Destination $outputFolder\NzbDrone.Update } Function PackageTests() @@ -103,9 +101,7 @@ Function PackageTests() Copy-Item -Recurse ($_.FullName + "\*") $testPackageFolder -ErrorAction Ignore } - .\.nuget\NuGet.exe install NUnit.Runners -Version 2.6.1 -Output $testPackageFolder - - + .\src\.nuget\NuGet.exe install NUnit.Runners -Version 2.6.1 -Output $testPackageFolder Copy-Item $outputFolder\*.dll -Destination $testPackageFolder -Force Copy-Item $outputFolder\*.pdb -Destination $testPackageFolder -Force @@ -141,4 +137,3 @@ Build RunGrunt PackageMono PackageTests - diff --git a/.nuget/NuGet.Config b/src/.nuget/NuGet.Config similarity index 100% rename from .nuget/NuGet.Config rename to src/.nuget/NuGet.Config diff --git a/.nuget/NuGet.exe b/src/.nuget/NuGet.exe similarity index 100% rename from .nuget/NuGet.exe rename to src/.nuget/NuGet.exe diff --git a/.nuget/NuGet.targets b/src/.nuget/NuGet.targets similarity index 100% rename from .nuget/NuGet.targets rename to src/.nuget/NuGet.targets diff --git a/Exceptron.Client/Configuration/ExceptronConfiguration.cs b/src/Exceptron.Client/Configuration/ExceptronConfiguration.cs similarity index 100% rename from Exceptron.Client/Configuration/ExceptronConfiguration.cs rename to src/Exceptron.Client/Configuration/ExceptronConfiguration.cs diff --git a/Exceptron.Client/ExceptionData.cs b/src/Exceptron.Client/ExceptionData.cs similarity index 100% rename from Exceptron.Client/ExceptionData.cs rename to src/Exceptron.Client/ExceptionData.cs diff --git a/Exceptron.Client/ExceptionSeverity.cs b/src/Exceptron.Client/ExceptionSeverity.cs similarity index 100% rename from Exceptron.Client/ExceptionSeverity.cs rename to src/Exceptron.Client/ExceptionSeverity.cs diff --git a/Exceptron.Client/Exceptron.Client.csproj b/src/Exceptron.Client/Exceptron.Client.csproj similarity index 97% rename from Exceptron.Client/Exceptron.Client.csproj rename to src/Exceptron.Client/Exceptron.Client.csproj index b74cdfd4f..a22db88f7 100644 --- a/Exceptron.Client/Exceptron.Client.csproj +++ b/src/Exceptron.Client/Exceptron.Client.csproj @@ -21,7 +21,7 @@ true - ..\_output\ + ..\..\_output\ DEBUG;TRACE full x86 @@ -29,7 +29,7 @@ MinimumRecommendedRules.ruleset - ..\_output\ + ..\..\_output\ TRACE diff --git a/Exceptron.Client/Exceptron.Client.nuspec b/src/Exceptron.Client/Exceptron.Client.nuspec similarity index 100% rename from Exceptron.Client/Exceptron.Client.nuspec rename to src/Exceptron.Client/Exceptron.Client.nuspec diff --git a/Exceptron.Client/ExceptronApiException.cs b/src/Exceptron.Client/ExceptronApiException.cs similarity index 100% rename from Exceptron.Client/ExceptronApiException.cs rename to src/Exceptron.Client/ExceptronApiException.cs diff --git a/Exceptron.Client/ExceptronClient.cs b/src/Exceptron.Client/ExceptronClient.cs similarity index 100% rename from Exceptron.Client/ExceptronClient.cs rename to src/Exceptron.Client/ExceptronClient.cs diff --git a/Exceptron.Client/IExceptronClient.cs b/src/Exceptron.Client/IExceptronClient.cs similarity index 100% rename from Exceptron.Client/IExceptronClient.cs rename to src/Exceptron.Client/IExceptronClient.cs diff --git a/Exceptron.Client/IRestClient.cs b/src/Exceptron.Client/IRestClient.cs similarity index 100% rename from Exceptron.Client/IRestClient.cs rename to src/Exceptron.Client/IRestClient.cs diff --git a/Exceptron.Client/Message/ExceptionReport.cs b/src/Exceptron.Client/Message/ExceptionReport.cs similarity index 100% rename from Exceptron.Client/Message/ExceptionReport.cs rename to src/Exceptron.Client/Message/ExceptionReport.cs diff --git a/Exceptron.Client/Message/ExceptionResponse.cs b/src/Exceptron.Client/Message/ExceptionResponse.cs similarity index 100% rename from Exceptron.Client/Message/ExceptionResponse.cs rename to src/Exceptron.Client/Message/ExceptionResponse.cs diff --git a/Exceptron.Client/Message/Frame.cs b/src/Exceptron.Client/Message/Frame.cs similarity index 100% rename from Exceptron.Client/Message/Frame.cs rename to src/Exceptron.Client/Message/Frame.cs diff --git a/Exceptron.Client/NuGet/web.config.transform b/src/Exceptron.Client/NuGet/web.config.transform similarity index 100% rename from Exceptron.Client/NuGet/web.config.transform rename to src/Exceptron.Client/NuGet/web.config.transform diff --git a/Exceptron.Client/Properties/AssemblyInfo.cs b/src/Exceptron.Client/Properties/AssemblyInfo.cs similarity index 100% rename from Exceptron.Client/Properties/AssemblyInfo.cs rename to src/Exceptron.Client/Properties/AssemblyInfo.cs diff --git a/Exceptron.Client/RestClient.cs b/src/Exceptron.Client/RestClient.cs similarity index 100% rename from Exceptron.Client/RestClient.cs rename to src/Exceptron.Client/RestClient.cs diff --git a/Exceptron.Client/fastJSON/Getters.cs b/src/Exceptron.Client/fastJSON/Getters.cs similarity index 100% rename from Exceptron.Client/fastJSON/Getters.cs rename to src/Exceptron.Client/fastJSON/Getters.cs diff --git a/Exceptron.Client/fastJSON/JSON.cs b/src/Exceptron.Client/fastJSON/JSON.cs similarity index 100% rename from Exceptron.Client/fastJSON/JSON.cs rename to src/Exceptron.Client/fastJSON/JSON.cs diff --git a/Exceptron.Client/fastJSON/JsonParser.cs b/src/Exceptron.Client/fastJSON/JsonParser.cs similarity index 100% rename from Exceptron.Client/fastJSON/JsonParser.cs rename to src/Exceptron.Client/fastJSON/JsonParser.cs diff --git a/Exceptron.Client/fastJSON/JsonSerializer.cs b/src/Exceptron.Client/fastJSON/JsonSerializer.cs similarity index 100% rename from Exceptron.Client/fastJSON/JsonSerializer.cs rename to src/Exceptron.Client/fastJSON/JsonSerializer.cs diff --git a/Exceptron.Client/fastJSON/SafeDictionary.cs b/src/Exceptron.Client/fastJSON/SafeDictionary.cs similarity index 100% rename from Exceptron.Client/fastJSON/SafeDictionary.cs rename to src/Exceptron.Client/fastJSON/SafeDictionary.cs diff --git a/Exceptron.Client/fastJSON/license.txt b/src/Exceptron.Client/fastJSON/license.txt similarity index 100% rename from Exceptron.Client/fastJSON/license.txt rename to src/Exceptron.Client/fastJSON/license.txt diff --git a/Libraries/Interop.NetFwTypeLib.dll b/src/Libraries/Interop.NetFwTypeLib.dll similarity index 100% rename from Libraries/Interop.NetFwTypeLib.dll rename to src/Libraries/Interop.NetFwTypeLib.dll diff --git a/Libraries/Manifest Tool/mt.exe b/src/Libraries/Manifest Tool/mt.exe similarity index 100% rename from Libraries/Manifest Tool/mt.exe rename to src/Libraries/Manifest Tool/mt.exe diff --git a/Libraries/Manifest Tool/mt.exe.config b/src/Libraries/Manifest Tool/mt.exe.config similarity index 100% rename from Libraries/Manifest Tool/mt.exe.config rename to src/Libraries/Manifest Tool/mt.exe.config diff --git a/Libraries/Sqlite/System.Data.SQLite.dll b/src/Libraries/Sqlite/System.Data.SQLite.dll similarity index 100% rename from Libraries/Sqlite/System.Data.SQLite.dll rename to src/Libraries/Sqlite/System.Data.SQLite.dll diff --git a/Libraries/Sqlite/System.Data.SQLite.xml b/src/Libraries/Sqlite/System.Data.SQLite.xml similarity index 100% rename from Libraries/Sqlite/System.Data.SQLite.xml rename to src/Libraries/Sqlite/System.Data.SQLite.xml diff --git a/Libraries/Sqlite/sqlite3.dll b/src/Libraries/Sqlite/sqlite3.dll similarity index 100% rename from Libraries/Sqlite/sqlite3.dll rename to src/Libraries/Sqlite/sqlite3.dll diff --git a/Marr.Data/Converters/BooleanIntConverter.cs b/src/Marr.Data/Converters/BooleanIntConverter.cs similarity index 100% rename from Marr.Data/Converters/BooleanIntConverter.cs rename to src/Marr.Data/Converters/BooleanIntConverter.cs diff --git a/Marr.Data/Converters/BooleanYNConverter.cs b/src/Marr.Data/Converters/BooleanYNConverter.cs similarity index 100% rename from Marr.Data/Converters/BooleanYNConverter.cs rename to src/Marr.Data/Converters/BooleanYNConverter.cs diff --git a/Marr.Data/Converters/CastConverter.cs b/src/Marr.Data/Converters/CastConverter.cs similarity index 100% rename from Marr.Data/Converters/CastConverter.cs rename to src/Marr.Data/Converters/CastConverter.cs diff --git a/Marr.Data/Converters/ConversionException.cs b/src/Marr.Data/Converters/ConversionException.cs similarity index 100% rename from Marr.Data/Converters/ConversionException.cs rename to src/Marr.Data/Converters/ConversionException.cs diff --git a/Marr.Data/Converters/ConverterContext.cs b/src/Marr.Data/Converters/ConverterContext.cs similarity index 100% rename from Marr.Data/Converters/ConverterContext.cs rename to src/Marr.Data/Converters/ConverterContext.cs diff --git a/Marr.Data/Converters/EnumIntConverter.cs b/src/Marr.Data/Converters/EnumIntConverter.cs similarity index 100% rename from Marr.Data/Converters/EnumIntConverter.cs rename to src/Marr.Data/Converters/EnumIntConverter.cs diff --git a/Marr.Data/Converters/EnumStringConverter.cs b/src/Marr.Data/Converters/EnumStringConverter.cs similarity index 100% rename from Marr.Data/Converters/EnumStringConverter.cs rename to src/Marr.Data/Converters/EnumStringConverter.cs diff --git a/Marr.Data/Converters/IConverter.cs b/src/Marr.Data/Converters/IConverter.cs similarity index 100% rename from Marr.Data/Converters/IConverter.cs rename to src/Marr.Data/Converters/IConverter.cs diff --git a/Marr.Data/DataHelper.cs b/src/Marr.Data/DataHelper.cs similarity index 100% rename from Marr.Data/DataHelper.cs rename to src/Marr.Data/DataHelper.cs diff --git a/Marr.Data/DataMapper.cs b/src/Marr.Data/DataMapper.cs similarity index 100% rename from Marr.Data/DataMapper.cs rename to src/Marr.Data/DataMapper.cs diff --git a/Marr.Data/DataMappingException.cs b/src/Marr.Data/DataMappingException.cs similarity index 100% rename from Marr.Data/DataMappingException.cs rename to src/Marr.Data/DataMappingException.cs diff --git a/Marr.Data/EntityGraph.cs b/src/Marr.Data/EntityGraph.cs similarity index 100% rename from Marr.Data/EntityGraph.cs rename to src/Marr.Data/EntityGraph.cs diff --git a/Marr.Data/EntityMerger.cs b/src/Marr.Data/EntityMerger.cs similarity index 100% rename from Marr.Data/EntityMerger.cs rename to src/Marr.Data/EntityMerger.cs diff --git a/Marr.Data/EntityReference.cs b/src/Marr.Data/EntityReference.cs similarity index 100% rename from Marr.Data/EntityReference.cs rename to src/Marr.Data/EntityReference.cs diff --git a/Marr.Data/ExtensionMethods.cs b/src/Marr.Data/ExtensionMethods.cs similarity index 100% rename from Marr.Data/ExtensionMethods.cs rename to src/Marr.Data/ExtensionMethods.cs diff --git a/Marr.Data/GroupingKeyCollection.cs b/src/Marr.Data/GroupingKeyCollection.cs similarity index 100% rename from Marr.Data/GroupingKeyCollection.cs rename to src/Marr.Data/GroupingKeyCollection.cs diff --git a/Marr.Data/IDataMapper.cs b/src/Marr.Data/IDataMapper.cs similarity index 100% rename from Marr.Data/IDataMapper.cs rename to src/Marr.Data/IDataMapper.cs diff --git a/Marr.Data/LazyLoaded.cs b/src/Marr.Data/LazyLoaded.cs similarity index 100% rename from Marr.Data/LazyLoaded.cs rename to src/Marr.Data/LazyLoaded.cs diff --git a/Marr.Data/MapRepository.cs b/src/Marr.Data/MapRepository.cs similarity index 100% rename from Marr.Data/MapRepository.cs rename to src/Marr.Data/MapRepository.cs diff --git a/Marr.Data/Mapping/ColumnAttribute.cs b/src/Marr.Data/Mapping/ColumnAttribute.cs similarity index 100% rename from Marr.Data/Mapping/ColumnAttribute.cs rename to src/Marr.Data/Mapping/ColumnAttribute.cs diff --git a/Marr.Data/Mapping/ColumnInfo.cs b/src/Marr.Data/Mapping/ColumnInfo.cs similarity index 100% rename from Marr.Data/Mapping/ColumnInfo.cs rename to src/Marr.Data/Mapping/ColumnInfo.cs diff --git a/Marr.Data/Mapping/ColumnMap.cs b/src/Marr.Data/Mapping/ColumnMap.cs similarity index 100% rename from Marr.Data/Mapping/ColumnMap.cs rename to src/Marr.Data/Mapping/ColumnMap.cs diff --git a/Marr.Data/Mapping/ColumnMapBuilder.cs b/src/Marr.Data/Mapping/ColumnMapBuilder.cs similarity index 100% rename from Marr.Data/Mapping/ColumnMapBuilder.cs rename to src/Marr.Data/Mapping/ColumnMapBuilder.cs diff --git a/Marr.Data/Mapping/ColumnMapCollection.cs b/src/Marr.Data/Mapping/ColumnMapCollection.cs similarity index 100% rename from Marr.Data/Mapping/ColumnMapCollection.cs rename to src/Marr.Data/Mapping/ColumnMapCollection.cs diff --git a/Marr.Data/Mapping/EnumConversionType.cs b/src/Marr.Data/Mapping/EnumConversionType.cs similarity index 100% rename from Marr.Data/Mapping/EnumConversionType.cs rename to src/Marr.Data/Mapping/EnumConversionType.cs diff --git a/Marr.Data/Mapping/FluentMappings.cs b/src/Marr.Data/Mapping/FluentMappings.cs similarity index 100% rename from Marr.Data/Mapping/FluentMappings.cs rename to src/Marr.Data/Mapping/FluentMappings.cs diff --git a/Marr.Data/Mapping/IColumnInfo.cs b/src/Marr.Data/Mapping/IColumnInfo.cs similarity index 100% rename from Marr.Data/Mapping/IColumnInfo.cs rename to src/Marr.Data/Mapping/IColumnInfo.cs diff --git a/Marr.Data/Mapping/IRelationshipInfo.cs b/src/Marr.Data/Mapping/IRelationshipInfo.cs similarity index 100% rename from Marr.Data/Mapping/IRelationshipInfo.cs rename to src/Marr.Data/Mapping/IRelationshipInfo.cs diff --git a/Marr.Data/Mapping/MapBuilder.cs b/src/Marr.Data/Mapping/MapBuilder.cs similarity index 100% rename from Marr.Data/Mapping/MapBuilder.cs rename to src/Marr.Data/Mapping/MapBuilder.cs diff --git a/Marr.Data/Mapping/MappingHelper.cs b/src/Marr.Data/Mapping/MappingHelper.cs similarity index 100% rename from Marr.Data/Mapping/MappingHelper.cs rename to src/Marr.Data/Mapping/MappingHelper.cs diff --git a/Marr.Data/Mapping/Relationship.cs b/src/Marr.Data/Mapping/Relationship.cs similarity index 100% rename from Marr.Data/Mapping/Relationship.cs rename to src/Marr.Data/Mapping/Relationship.cs diff --git a/Marr.Data/Mapping/RelationshipAttribute.cs b/src/Marr.Data/Mapping/RelationshipAttribute.cs similarity index 100% rename from Marr.Data/Mapping/RelationshipAttribute.cs rename to src/Marr.Data/Mapping/RelationshipAttribute.cs diff --git a/Marr.Data/Mapping/RelationshipBuilder.cs b/src/Marr.Data/Mapping/RelationshipBuilder.cs similarity index 100% rename from Marr.Data/Mapping/RelationshipBuilder.cs rename to src/Marr.Data/Mapping/RelationshipBuilder.cs diff --git a/Marr.Data/Mapping/RelationshipCollection.cs b/src/Marr.Data/Mapping/RelationshipCollection.cs similarity index 100% rename from Marr.Data/Mapping/RelationshipCollection.cs rename to src/Marr.Data/Mapping/RelationshipCollection.cs diff --git a/Marr.Data/Mapping/RelationshipInfo.cs b/src/Marr.Data/Mapping/RelationshipInfo.cs similarity index 100% rename from Marr.Data/Mapping/RelationshipInfo.cs rename to src/Marr.Data/Mapping/RelationshipInfo.cs diff --git a/Marr.Data/Mapping/Strategies/AttributeMapStrategy.cs b/src/Marr.Data/Mapping/Strategies/AttributeMapStrategy.cs similarity index 100% rename from Marr.Data/Mapping/Strategies/AttributeMapStrategy.cs rename to src/Marr.Data/Mapping/Strategies/AttributeMapStrategy.cs diff --git a/Marr.Data/Mapping/Strategies/ConventionMapStrategy.cs b/src/Marr.Data/Mapping/Strategies/ConventionMapStrategy.cs similarity index 100% rename from Marr.Data/Mapping/Strategies/ConventionMapStrategy.cs rename to src/Marr.Data/Mapping/Strategies/ConventionMapStrategy.cs diff --git a/Marr.Data/Mapping/Strategies/IMapStrategy.cs b/src/Marr.Data/Mapping/Strategies/IMapStrategy.cs similarity index 100% rename from Marr.Data/Mapping/Strategies/IMapStrategy.cs rename to src/Marr.Data/Mapping/Strategies/IMapStrategy.cs diff --git a/Marr.Data/Mapping/Strategies/PropertyMapStrategy.cs b/src/Marr.Data/Mapping/Strategies/PropertyMapStrategy.cs similarity index 100% rename from Marr.Data/Mapping/Strategies/PropertyMapStrategy.cs rename to src/Marr.Data/Mapping/Strategies/PropertyMapStrategy.cs diff --git a/Marr.Data/Mapping/Strategies/ReflectionMapStrategyBase.cs b/src/Marr.Data/Mapping/Strategies/ReflectionMapStrategyBase.cs similarity index 100% rename from Marr.Data/Mapping/Strategies/ReflectionMapStrategyBase.cs rename to src/Marr.Data/Mapping/Strategies/ReflectionMapStrategyBase.cs diff --git a/Marr.Data/Mapping/TableAttribute.cs b/src/Marr.Data/Mapping/TableAttribute.cs similarity index 100% rename from Marr.Data/Mapping/TableAttribute.cs rename to src/Marr.Data/Mapping/TableAttribute.cs diff --git a/Marr.Data/Mapping/TableBuilder.cs b/src/Marr.Data/Mapping/TableBuilder.cs similarity index 100% rename from Marr.Data/Mapping/TableBuilder.cs rename to src/Marr.Data/Mapping/TableBuilder.cs diff --git a/Marr.Data/Marr.Data.csproj b/src/Marr.Data/Marr.Data.csproj similarity index 98% rename from Marr.Data/Marr.Data.csproj rename to src/Marr.Data/Marr.Data.csproj index 9ae7c2082..b369b7085 100644 --- a/Marr.Data/Marr.Data.csproj +++ b/src/Marr.Data/Marr.Data.csproj @@ -23,7 +23,7 @@ true - ..\_output\ + ..\..\_output\ DEBUG;TRACE full x86 @@ -31,7 +31,7 @@ MinimumRecommendedRules.ruleset - ..\_output\ + ..\..\_output\ TRACE true pdbonly diff --git a/Marr.Data/Parameters/DbTypeBuilder.cs b/src/Marr.Data/Parameters/DbTypeBuilder.cs similarity index 100% rename from Marr.Data/Parameters/DbTypeBuilder.cs rename to src/Marr.Data/Parameters/DbTypeBuilder.cs diff --git a/Marr.Data/Parameters/IDbTypeBuilder.cs b/src/Marr.Data/Parameters/IDbTypeBuilder.cs similarity index 100% rename from Marr.Data/Parameters/IDbTypeBuilder.cs rename to src/Marr.Data/Parameters/IDbTypeBuilder.cs diff --git a/Marr.Data/Parameters/OleDbTypeBuilder.cs b/src/Marr.Data/Parameters/OleDbTypeBuilder.cs similarity index 100% rename from Marr.Data/Parameters/OleDbTypeBuilder.cs rename to src/Marr.Data/Parameters/OleDbTypeBuilder.cs diff --git a/Marr.Data/Parameters/ParameterChainMethods.cs b/src/Marr.Data/Parameters/ParameterChainMethods.cs similarity index 100% rename from Marr.Data/Parameters/ParameterChainMethods.cs rename to src/Marr.Data/Parameters/ParameterChainMethods.cs diff --git a/Marr.Data/Parameters/SqlDbTypeBuilder.cs b/src/Marr.Data/Parameters/SqlDbTypeBuilder.cs similarity index 100% rename from Marr.Data/Parameters/SqlDbTypeBuilder.cs rename to src/Marr.Data/Parameters/SqlDbTypeBuilder.cs diff --git a/Marr.Data/Properties/AssemblyInfo.cs b/src/Marr.Data/Properties/AssemblyInfo.cs similarity index 100% rename from Marr.Data/Properties/AssemblyInfo.cs rename to src/Marr.Data/Properties/AssemblyInfo.cs diff --git a/Marr.Data/QGen/DeleteQuery.cs b/src/Marr.Data/QGen/DeleteQuery.cs similarity index 100% rename from Marr.Data/QGen/DeleteQuery.cs rename to src/Marr.Data/QGen/DeleteQuery.cs diff --git a/Marr.Data/QGen/Dialects/Dialect.cs b/src/Marr.Data/QGen/Dialects/Dialect.cs similarity index 100% rename from Marr.Data/QGen/Dialects/Dialect.cs rename to src/Marr.Data/QGen/Dialects/Dialect.cs diff --git a/Marr.Data/QGen/Dialects/FirebirdDialect.cs b/src/Marr.Data/QGen/Dialects/FirebirdDialect.cs similarity index 100% rename from Marr.Data/QGen/Dialects/FirebirdDialect.cs rename to src/Marr.Data/QGen/Dialects/FirebirdDialect.cs diff --git a/Marr.Data/QGen/Dialects/OracleDialect.cs b/src/Marr.Data/QGen/Dialects/OracleDialect.cs similarity index 100% rename from Marr.Data/QGen/Dialects/OracleDialect.cs rename to src/Marr.Data/QGen/Dialects/OracleDialect.cs diff --git a/Marr.Data/QGen/Dialects/SqlServerCeDialect.cs b/src/Marr.Data/QGen/Dialects/SqlServerCeDialect.cs similarity index 100% rename from Marr.Data/QGen/Dialects/SqlServerCeDialect.cs rename to src/Marr.Data/QGen/Dialects/SqlServerCeDialect.cs diff --git a/Marr.Data/QGen/Dialects/SqlServerDialect.cs b/src/Marr.Data/QGen/Dialects/SqlServerDialect.cs similarity index 100% rename from Marr.Data/QGen/Dialects/SqlServerDialect.cs rename to src/Marr.Data/QGen/Dialects/SqlServerDialect.cs diff --git a/Marr.Data/QGen/Dialects/SqliteDialect.cs b/src/Marr.Data/QGen/Dialects/SqliteDialect.cs similarity index 100% rename from Marr.Data/QGen/Dialects/SqliteDialect.cs rename to src/Marr.Data/QGen/Dialects/SqliteDialect.cs diff --git a/Marr.Data/QGen/ExpressionVisitor.cs b/src/Marr.Data/QGen/ExpressionVisitor.cs similarity index 100% rename from Marr.Data/QGen/ExpressionVisitor.cs rename to src/Marr.Data/QGen/ExpressionVisitor.cs diff --git a/Marr.Data/QGen/IQuery.cs b/src/Marr.Data/QGen/IQuery.cs similarity index 100% rename from Marr.Data/QGen/IQuery.cs rename to src/Marr.Data/QGen/IQuery.cs diff --git a/Marr.Data/QGen/IQueryBuilder.cs b/src/Marr.Data/QGen/IQueryBuilder.cs similarity index 100% rename from Marr.Data/QGen/IQueryBuilder.cs rename to src/Marr.Data/QGen/IQueryBuilder.cs diff --git a/Marr.Data/QGen/InsertQuery.cs b/src/Marr.Data/QGen/InsertQuery.cs similarity index 100% rename from Marr.Data/QGen/InsertQuery.cs rename to src/Marr.Data/QGen/InsertQuery.cs diff --git a/Marr.Data/QGen/InsertQueryBuilder.cs b/src/Marr.Data/QGen/InsertQueryBuilder.cs similarity index 100% rename from Marr.Data/QGen/InsertQueryBuilder.cs rename to src/Marr.Data/QGen/InsertQueryBuilder.cs diff --git a/Marr.Data/QGen/JoinBuilder.cs b/src/Marr.Data/QGen/JoinBuilder.cs similarity index 100% rename from Marr.Data/QGen/JoinBuilder.cs rename to src/Marr.Data/QGen/JoinBuilder.cs diff --git a/Marr.Data/QGen/PagingQueryDecorator.cs b/src/Marr.Data/QGen/PagingQueryDecorator.cs similarity index 100% rename from Marr.Data/QGen/PagingQueryDecorator.cs rename to src/Marr.Data/QGen/PagingQueryDecorator.cs diff --git a/Marr.Data/QGen/QueryBuilder.cs b/src/Marr.Data/QGen/QueryBuilder.cs similarity index 100% rename from Marr.Data/QGen/QueryBuilder.cs rename to src/Marr.Data/QGen/QueryBuilder.cs diff --git a/Marr.Data/QGen/QueryFactory.cs b/src/Marr.Data/QGen/QueryFactory.cs similarity index 100% rename from Marr.Data/QGen/QueryFactory.cs rename to src/Marr.Data/QGen/QueryFactory.cs diff --git a/Marr.Data/QGen/QueryQueueItem.cs b/src/Marr.Data/QGen/QueryQueueItem.cs similarity index 100% rename from Marr.Data/QGen/QueryQueueItem.cs rename to src/Marr.Data/QGen/QueryQueueItem.cs diff --git a/Marr.Data/QGen/RowCountQueryDecorator.cs b/src/Marr.Data/QGen/RowCountQueryDecorator.cs similarity index 100% rename from Marr.Data/QGen/RowCountQueryDecorator.cs rename to src/Marr.Data/QGen/RowCountQueryDecorator.cs diff --git a/Marr.Data/QGen/SelectQuery.cs b/src/Marr.Data/QGen/SelectQuery.cs similarity index 100% rename from Marr.Data/QGen/SelectQuery.cs rename to src/Marr.Data/QGen/SelectQuery.cs diff --git a/Marr.Data/QGen/SortBuilder.cs b/src/Marr.Data/QGen/SortBuilder.cs similarity index 100% rename from Marr.Data/QGen/SortBuilder.cs rename to src/Marr.Data/QGen/SortBuilder.cs diff --git a/Marr.Data/QGen/SortColumn.cs b/src/Marr.Data/QGen/SortColumn.cs similarity index 100% rename from Marr.Data/QGen/SortColumn.cs rename to src/Marr.Data/QGen/SortColumn.cs diff --git a/Marr.Data/QGen/SqlitePagingQueryDecorator.cs b/src/Marr.Data/QGen/SqlitePagingQueryDecorator.cs similarity index 100% rename from Marr.Data/QGen/SqlitePagingQueryDecorator.cs rename to src/Marr.Data/QGen/SqlitePagingQueryDecorator.cs diff --git a/Marr.Data/QGen/SqliteRowCountQueryDecorator.cs b/src/Marr.Data/QGen/SqliteRowCountQueryDecorator.cs similarity index 100% rename from Marr.Data/QGen/SqliteRowCountQueryDecorator.cs rename to src/Marr.Data/QGen/SqliteRowCountQueryDecorator.cs diff --git a/Marr.Data/QGen/Table.cs b/src/Marr.Data/QGen/Table.cs similarity index 100% rename from Marr.Data/QGen/Table.cs rename to src/Marr.Data/QGen/Table.cs diff --git a/Marr.Data/QGen/TableCollection.cs b/src/Marr.Data/QGen/TableCollection.cs similarity index 100% rename from Marr.Data/QGen/TableCollection.cs rename to src/Marr.Data/QGen/TableCollection.cs diff --git a/Marr.Data/QGen/UpdateQuery.cs b/src/Marr.Data/QGen/UpdateQuery.cs similarity index 100% rename from Marr.Data/QGen/UpdateQuery.cs rename to src/Marr.Data/QGen/UpdateQuery.cs diff --git a/Marr.Data/QGen/UpdateQueryBuilder.cs b/src/Marr.Data/QGen/UpdateQueryBuilder.cs similarity index 100% rename from Marr.Data/QGen/UpdateQueryBuilder.cs rename to src/Marr.Data/QGen/UpdateQueryBuilder.cs diff --git a/Marr.Data/QGen/View.cs b/src/Marr.Data/QGen/View.cs similarity index 100% rename from Marr.Data/QGen/View.cs rename to src/Marr.Data/QGen/View.cs diff --git a/Marr.Data/QGen/WhereBuilder.cs b/src/Marr.Data/QGen/WhereBuilder.cs similarity index 100% rename from Marr.Data/QGen/WhereBuilder.cs rename to src/Marr.Data/QGen/WhereBuilder.cs diff --git a/Marr.Data/Reflection/IReflectionStrategy.cs b/src/Marr.Data/Reflection/IReflectionStrategy.cs similarity index 100% rename from Marr.Data/Reflection/IReflectionStrategy.cs rename to src/Marr.Data/Reflection/IReflectionStrategy.cs diff --git a/Marr.Data/Reflection/ReflectionHelper.cs b/src/Marr.Data/Reflection/ReflectionHelper.cs similarity index 100% rename from Marr.Data/Reflection/ReflectionHelper.cs rename to src/Marr.Data/Reflection/ReflectionHelper.cs diff --git a/Marr.Data/Reflection/SimpleReflectionStrategy.cs b/src/Marr.Data/Reflection/SimpleReflectionStrategy.cs similarity index 100% rename from Marr.Data/Reflection/SimpleReflectionStrategy.cs rename to src/Marr.Data/Reflection/SimpleReflectionStrategy.cs diff --git a/Marr.Data/SqlModesEnum.cs b/src/Marr.Data/SqlModesEnum.cs similarity index 100% rename from Marr.Data/SqlModesEnum.cs rename to src/Marr.Data/SqlModesEnum.cs diff --git a/Marr.Data/UnitOfWork.cs b/src/Marr.Data/UnitOfWork.cs similarity index 100% rename from Marr.Data/UnitOfWork.cs rename to src/Marr.Data/UnitOfWork.cs diff --git a/Marr.Data/UnitOfWorkSharedContext.cs b/src/Marr.Data/UnitOfWorkSharedContext.cs similarity index 100% rename from Marr.Data/UnitOfWorkSharedContext.cs rename to src/Marr.Data/UnitOfWorkSharedContext.cs diff --git a/NzbDrone.Api.Test/ClientSchemaTests/SchemaBuilderFixture.cs b/src/NzbDrone.Api.Test/ClientSchemaTests/SchemaBuilderFixture.cs similarity index 100% rename from NzbDrone.Api.Test/ClientSchemaTests/SchemaBuilderFixture.cs rename to src/NzbDrone.Api.Test/ClientSchemaTests/SchemaBuilderFixture.cs diff --git a/NzbDrone.Api.Test/DirectoryLookupServiceFixture.cs b/src/NzbDrone.Api.Test/DirectoryLookupServiceFixture.cs similarity index 100% rename from NzbDrone.Api.Test/DirectoryLookupServiceFixture.cs rename to src/NzbDrone.Api.Test/DirectoryLookupServiceFixture.cs diff --git a/NzbDrone.Api.Test/MappingTests/ResourceMappingFixture.cs b/src/NzbDrone.Api.Test/MappingTests/ResourceMappingFixture.cs similarity index 100% rename from NzbDrone.Api.Test/MappingTests/ResourceMappingFixture.cs rename to src/NzbDrone.Api.Test/MappingTests/ResourceMappingFixture.cs diff --git a/NzbDrone.Api.Test/NzbDrone.Api.Test.csproj b/src/NzbDrone.Api.Test/NzbDrone.Api.Test.csproj similarity index 100% rename from NzbDrone.Api.Test/NzbDrone.Api.Test.csproj rename to src/NzbDrone.Api.Test/NzbDrone.Api.Test.csproj diff --git a/NzbDrone.Api.Test/Properties/AssemblyInfo.cs b/src/NzbDrone.Api.Test/Properties/AssemblyInfo.cs similarity index 100% rename from NzbDrone.Api.Test/Properties/AssemblyInfo.cs rename to src/NzbDrone.Api.Test/Properties/AssemblyInfo.cs diff --git a/NzbDrone.Api.Test/packages.config b/src/NzbDrone.Api.Test/packages.config similarity index 100% rename from NzbDrone.Api.Test/packages.config rename to src/NzbDrone.Api.Test/packages.config diff --git a/NzbDrone.Api/Authentication/AuthenticationService.cs b/src/NzbDrone.Api/Authentication/AuthenticationService.cs similarity index 100% rename from NzbDrone.Api/Authentication/AuthenticationService.cs rename to src/NzbDrone.Api/Authentication/AuthenticationService.cs diff --git a/NzbDrone.Api/Authentication/EnableBasicAuthInNancy.cs b/src/NzbDrone.Api/Authentication/EnableBasicAuthInNancy.cs similarity index 100% rename from NzbDrone.Api/Authentication/EnableBasicAuthInNancy.cs rename to src/NzbDrone.Api/Authentication/EnableBasicAuthInNancy.cs diff --git a/NzbDrone.Api/Authentication/EnableStatelessAuthInNancy.cs b/src/NzbDrone.Api/Authentication/EnableStatelessAuthInNancy.cs similarity index 100% rename from NzbDrone.Api/Authentication/EnableStatelessAuthInNancy.cs rename to src/NzbDrone.Api/Authentication/EnableStatelessAuthInNancy.cs diff --git a/NzbDrone.Api/Authentication/NzbDroneUser.cs b/src/NzbDrone.Api/Authentication/NzbDroneUser.cs similarity index 100% rename from NzbDrone.Api/Authentication/NzbDroneUser.cs rename to src/NzbDrone.Api/Authentication/NzbDroneUser.cs diff --git a/NzbDrone.Api/Calendar/CalendarModule.cs b/src/NzbDrone.Api/Calendar/CalendarModule.cs similarity index 100% rename from NzbDrone.Api/Calendar/CalendarModule.cs rename to src/NzbDrone.Api/Calendar/CalendarModule.cs diff --git a/NzbDrone.Api/ClientSchema/Field.cs b/src/NzbDrone.Api/ClientSchema/Field.cs similarity index 100% rename from NzbDrone.Api/ClientSchema/Field.cs rename to src/NzbDrone.Api/ClientSchema/Field.cs diff --git a/NzbDrone.Api/ClientSchema/FieldDefinitionAttribute.cs b/src/NzbDrone.Api/ClientSchema/FieldDefinitionAttribute.cs similarity index 100% rename from NzbDrone.Api/ClientSchema/FieldDefinitionAttribute.cs rename to src/NzbDrone.Api/ClientSchema/FieldDefinitionAttribute.cs diff --git a/NzbDrone.Api/ClientSchema/SchemaBuilder.cs b/src/NzbDrone.Api/ClientSchema/SchemaBuilder.cs similarity index 100% rename from NzbDrone.Api/ClientSchema/SchemaBuilder.cs rename to src/NzbDrone.Api/ClientSchema/SchemaBuilder.cs diff --git a/NzbDrone.Api/ClientSchema/SchemaDeserializer.cs b/src/NzbDrone.Api/ClientSchema/SchemaDeserializer.cs similarity index 100% rename from NzbDrone.Api/ClientSchema/SchemaDeserializer.cs rename to src/NzbDrone.Api/ClientSchema/SchemaDeserializer.cs diff --git a/NzbDrone.Api/ClientSchema/SelectOption.cs b/src/NzbDrone.Api/ClientSchema/SelectOption.cs similarity index 100% rename from NzbDrone.Api/ClientSchema/SelectOption.cs rename to src/NzbDrone.Api/ClientSchema/SelectOption.cs diff --git a/NzbDrone.Api/Commands/CommandModule.cs b/src/NzbDrone.Api/Commands/CommandModule.cs similarity index 100% rename from NzbDrone.Api/Commands/CommandModule.cs rename to src/NzbDrone.Api/Commands/CommandModule.cs diff --git a/NzbDrone.Api/Commands/CommandResource.cs b/src/NzbDrone.Api/Commands/CommandResource.cs similarity index 100% rename from NzbDrone.Api/Commands/CommandResource.cs rename to src/NzbDrone.Api/Commands/CommandResource.cs diff --git a/NzbDrone.Api/Config/NamingConfigResource.cs b/src/NzbDrone.Api/Config/NamingConfigResource.cs similarity index 100% rename from NzbDrone.Api/Config/NamingConfigResource.cs rename to src/NzbDrone.Api/Config/NamingConfigResource.cs diff --git a/NzbDrone.Api/Config/NamingModule.cs b/src/NzbDrone.Api/Config/NamingModule.cs similarity index 100% rename from NzbDrone.Api/Config/NamingModule.cs rename to src/NzbDrone.Api/Config/NamingModule.cs diff --git a/NzbDrone.Api/Config/NamingSampleResource.cs b/src/NzbDrone.Api/Config/NamingSampleResource.cs similarity index 100% rename from NzbDrone.Api/Config/NamingSampleResource.cs rename to src/NzbDrone.Api/Config/NamingSampleResource.cs diff --git a/NzbDrone.Api/Config/SettingsModule.cs b/src/NzbDrone.Api/Config/SettingsModule.cs similarity index 100% rename from NzbDrone.Api/Config/SettingsModule.cs rename to src/NzbDrone.Api/Config/SettingsModule.cs diff --git a/NzbDrone.Api/Directories/DirectoryLookupService.cs b/src/NzbDrone.Api/Directories/DirectoryLookupService.cs similarity index 100% rename from NzbDrone.Api/Directories/DirectoryLookupService.cs rename to src/NzbDrone.Api/Directories/DirectoryLookupService.cs diff --git a/NzbDrone.Api/Directories/DirectoryModule.cs b/src/NzbDrone.Api/Directories/DirectoryModule.cs similarity index 100% rename from NzbDrone.Api/Directories/DirectoryModule.cs rename to src/NzbDrone.Api/Directories/DirectoryModule.cs diff --git a/NzbDrone.Api/EpisodeFiles/EpisodeFileModule.cs b/src/NzbDrone.Api/EpisodeFiles/EpisodeFileModule.cs similarity index 100% rename from NzbDrone.Api/EpisodeFiles/EpisodeFileModule.cs rename to src/NzbDrone.Api/EpisodeFiles/EpisodeFileModule.cs diff --git a/NzbDrone.Api/EpisodeFiles/EpisodeFileResource.cs b/src/NzbDrone.Api/EpisodeFiles/EpisodeFileResource.cs similarity index 100% rename from NzbDrone.Api/EpisodeFiles/EpisodeFileResource.cs rename to src/NzbDrone.Api/EpisodeFiles/EpisodeFileResource.cs diff --git a/NzbDrone.Api/Episodes/EpisodeModule.cs b/src/NzbDrone.Api/Episodes/EpisodeModule.cs similarity index 100% rename from NzbDrone.Api/Episodes/EpisodeModule.cs rename to src/NzbDrone.Api/Episodes/EpisodeModule.cs diff --git a/NzbDrone.Api/Episodes/EpisodeResource.cs b/src/NzbDrone.Api/Episodes/EpisodeResource.cs similarity index 100% rename from NzbDrone.Api/Episodes/EpisodeResource.cs rename to src/NzbDrone.Api/Episodes/EpisodeResource.cs diff --git a/NzbDrone.Api/ErrorManagement/ApiException.cs b/src/NzbDrone.Api/ErrorManagement/ApiException.cs similarity index 100% rename from NzbDrone.Api/ErrorManagement/ApiException.cs rename to src/NzbDrone.Api/ErrorManagement/ApiException.cs diff --git a/NzbDrone.Api/ErrorManagement/ErrorHandler.cs b/src/NzbDrone.Api/ErrorManagement/ErrorHandler.cs similarity index 100% rename from NzbDrone.Api/ErrorManagement/ErrorHandler.cs rename to src/NzbDrone.Api/ErrorManagement/ErrorHandler.cs diff --git a/NzbDrone.Api/ErrorManagement/ErrorModel.cs b/src/NzbDrone.Api/ErrorManagement/ErrorModel.cs similarity index 100% rename from NzbDrone.Api/ErrorManagement/ErrorModel.cs rename to src/NzbDrone.Api/ErrorManagement/ErrorModel.cs diff --git a/NzbDrone.Api/ErrorManagement/NzbDroneErrorPipeline.cs b/src/NzbDrone.Api/ErrorManagement/NzbDroneErrorPipeline.cs similarity index 100% rename from NzbDrone.Api/ErrorManagement/NzbDroneErrorPipeline.cs rename to src/NzbDrone.Api/ErrorManagement/NzbDroneErrorPipeline.cs diff --git a/NzbDrone.Api/Exceptions/InvalidApiKeyException.cs b/src/NzbDrone.Api/Exceptions/InvalidApiKeyException.cs similarity index 100% rename from NzbDrone.Api/Exceptions/InvalidApiKeyException.cs rename to src/NzbDrone.Api/Exceptions/InvalidApiKeyException.cs diff --git a/NzbDrone.Api/Extensions/LazyExtensions.cs b/src/NzbDrone.Api/Extensions/LazyExtensions.cs similarity index 100% rename from NzbDrone.Api/Extensions/LazyExtensions.cs rename to src/NzbDrone.Api/Extensions/LazyExtensions.cs diff --git a/NzbDrone.Api/Extensions/NancyJsonSerializer.cs b/src/NzbDrone.Api/Extensions/NancyJsonSerializer.cs similarity index 100% rename from NzbDrone.Api/Extensions/NancyJsonSerializer.cs rename to src/NzbDrone.Api/Extensions/NancyJsonSerializer.cs diff --git a/NzbDrone.Api/Extensions/Pipelines/CacheHeaderPipeline.cs b/src/NzbDrone.Api/Extensions/Pipelines/CacheHeaderPipeline.cs similarity index 100% rename from NzbDrone.Api/Extensions/Pipelines/CacheHeaderPipeline.cs rename to src/NzbDrone.Api/Extensions/Pipelines/CacheHeaderPipeline.cs diff --git a/NzbDrone.Api/Extensions/Pipelines/GZipPipeline.cs b/src/NzbDrone.Api/Extensions/Pipelines/GZipPipeline.cs similarity index 100% rename from NzbDrone.Api/Extensions/Pipelines/GZipPipeline.cs rename to src/NzbDrone.Api/Extensions/Pipelines/GZipPipeline.cs diff --git a/NzbDrone.Api/Extensions/Pipelines/IRegisterNancyPipeline.cs b/src/NzbDrone.Api/Extensions/Pipelines/IRegisterNancyPipeline.cs similarity index 100% rename from NzbDrone.Api/Extensions/Pipelines/IRegisterNancyPipeline.cs rename to src/NzbDrone.Api/Extensions/Pipelines/IRegisterNancyPipeline.cs diff --git a/NzbDrone.Api/Extensions/Pipelines/IfModifiedPipeline.cs b/src/NzbDrone.Api/Extensions/Pipelines/IfModifiedPipeline.cs similarity index 100% rename from NzbDrone.Api/Extensions/Pipelines/IfModifiedPipeline.cs rename to src/NzbDrone.Api/Extensions/Pipelines/IfModifiedPipeline.cs diff --git a/NzbDrone.Api/Extensions/ReqResExtensions.cs b/src/NzbDrone.Api/Extensions/ReqResExtensions.cs similarity index 100% rename from NzbDrone.Api/Extensions/ReqResExtensions.cs rename to src/NzbDrone.Api/Extensions/ReqResExtensions.cs diff --git a/NzbDrone.Api/Extensions/RequestExtensions.cs b/src/NzbDrone.Api/Extensions/RequestExtensions.cs similarity index 100% rename from NzbDrone.Api/Extensions/RequestExtensions.cs rename to src/NzbDrone.Api/Extensions/RequestExtensions.cs diff --git a/NzbDrone.Api/Frontend/IsCacheableSpecification.cs b/src/NzbDrone.Api/Frontend/IsCacheableSpecification.cs similarity index 100% rename from NzbDrone.Api/Frontend/IsCacheableSpecification.cs rename to src/NzbDrone.Api/Frontend/IsCacheableSpecification.cs diff --git a/NzbDrone.Api/Frontend/Mappers/IMapHttpRequestsToDisk.cs b/src/NzbDrone.Api/Frontend/Mappers/IMapHttpRequestsToDisk.cs similarity index 100% rename from NzbDrone.Api/Frontend/Mappers/IMapHttpRequestsToDisk.cs rename to src/NzbDrone.Api/Frontend/Mappers/IMapHttpRequestsToDisk.cs diff --git a/NzbDrone.Api/Frontend/Mappers/IndexHtmlMapper.cs b/src/NzbDrone.Api/Frontend/Mappers/IndexHtmlMapper.cs similarity index 100% rename from NzbDrone.Api/Frontend/Mappers/IndexHtmlMapper.cs rename to src/NzbDrone.Api/Frontend/Mappers/IndexHtmlMapper.cs diff --git a/NzbDrone.Api/Frontend/Mappers/LogFileMapper.cs b/src/NzbDrone.Api/Frontend/Mappers/LogFileMapper.cs similarity index 100% rename from NzbDrone.Api/Frontend/Mappers/LogFileMapper.cs rename to src/NzbDrone.Api/Frontend/Mappers/LogFileMapper.cs diff --git a/NzbDrone.Api/Frontend/Mappers/MediaCoverMapper.cs b/src/NzbDrone.Api/Frontend/Mappers/MediaCoverMapper.cs similarity index 100% rename from NzbDrone.Api/Frontend/Mappers/MediaCoverMapper.cs rename to src/NzbDrone.Api/Frontend/Mappers/MediaCoverMapper.cs diff --git a/NzbDrone.Api/Frontend/Mappers/StaticResourceMapper.cs b/src/NzbDrone.Api/Frontend/Mappers/StaticResourceMapper.cs similarity index 100% rename from NzbDrone.Api/Frontend/Mappers/StaticResourceMapper.cs rename to src/NzbDrone.Api/Frontend/Mappers/StaticResourceMapper.cs diff --git a/NzbDrone.Api/Frontend/Mappers/StaticResourceMapperBase.cs b/src/NzbDrone.Api/Frontend/Mappers/StaticResourceMapperBase.cs similarity index 100% rename from NzbDrone.Api/Frontend/Mappers/StaticResourceMapperBase.cs rename to src/NzbDrone.Api/Frontend/Mappers/StaticResourceMapperBase.cs diff --git a/NzbDrone.Api/Frontend/StaticResourceModule.cs b/src/NzbDrone.Api/Frontend/StaticResourceModule.cs similarity index 100% rename from NzbDrone.Api/Frontend/StaticResourceModule.cs rename to src/NzbDrone.Api/Frontend/StaticResourceModule.cs diff --git a/NzbDrone.Api/History/HistoryModule.cs b/src/NzbDrone.Api/History/HistoryModule.cs similarity index 100% rename from NzbDrone.Api/History/HistoryModule.cs rename to src/NzbDrone.Api/History/HistoryModule.cs diff --git a/NzbDrone.Api/History/HistoryResource.cs b/src/NzbDrone.Api/History/HistoryResource.cs similarity index 100% rename from NzbDrone.Api/History/HistoryResource.cs rename to src/NzbDrone.Api/History/HistoryResource.cs diff --git a/NzbDrone.Api/IndexerResource.cs b/src/NzbDrone.Api/IndexerResource.cs similarity index 100% rename from NzbDrone.Api/IndexerResource.cs rename to src/NzbDrone.Api/IndexerResource.cs diff --git a/NzbDrone.Api/Indexers/IndexerModule.cs b/src/NzbDrone.Api/Indexers/IndexerModule.cs similarity index 100% rename from NzbDrone.Api/Indexers/IndexerModule.cs rename to src/NzbDrone.Api/Indexers/IndexerModule.cs diff --git a/NzbDrone.Api/Indexers/IndexerResource.cs b/src/NzbDrone.Api/Indexers/IndexerResource.cs similarity index 100% rename from NzbDrone.Api/Indexers/IndexerResource.cs rename to src/NzbDrone.Api/Indexers/IndexerResource.cs diff --git a/NzbDrone.Api/Indexers/IndexerSchemaModule.cs b/src/NzbDrone.Api/Indexers/IndexerSchemaModule.cs similarity index 100% rename from NzbDrone.Api/Indexers/IndexerSchemaModule.cs rename to src/NzbDrone.Api/Indexers/IndexerSchemaModule.cs diff --git a/NzbDrone.Api/Indexers/ReleaseModule.cs b/src/NzbDrone.Api/Indexers/ReleaseModule.cs similarity index 100% rename from NzbDrone.Api/Indexers/ReleaseModule.cs rename to src/NzbDrone.Api/Indexers/ReleaseModule.cs diff --git a/NzbDrone.Api/Indexers/ReleaseResource.cs b/src/NzbDrone.Api/Indexers/ReleaseResource.cs similarity index 100% rename from NzbDrone.Api/Indexers/ReleaseResource.cs rename to src/NzbDrone.Api/Indexers/ReleaseResource.cs diff --git a/NzbDrone.Api/Logs/LogFileModule.cs b/src/NzbDrone.Api/Logs/LogFileModule.cs similarity index 100% rename from NzbDrone.Api/Logs/LogFileModule.cs rename to src/NzbDrone.Api/Logs/LogFileModule.cs diff --git a/NzbDrone.Api/Logs/LogFileResource.cs b/src/NzbDrone.Api/Logs/LogFileResource.cs similarity index 100% rename from NzbDrone.Api/Logs/LogFileResource.cs rename to src/NzbDrone.Api/Logs/LogFileResource.cs diff --git a/NzbDrone.Api/Logs/LogModule.cs b/src/NzbDrone.Api/Logs/LogModule.cs similarity index 100% rename from NzbDrone.Api/Logs/LogModule.cs rename to src/NzbDrone.Api/Logs/LogModule.cs diff --git a/NzbDrone.Api/Logs/LogResource.cs b/src/NzbDrone.Api/Logs/LogResource.cs similarity index 100% rename from NzbDrone.Api/Logs/LogResource.cs rename to src/NzbDrone.Api/Logs/LogResource.cs diff --git a/NzbDrone.Api/Mapping/CloneInjection.cs b/src/NzbDrone.Api/Mapping/CloneInjection.cs similarity index 100% rename from NzbDrone.Api/Mapping/CloneInjection.cs rename to src/NzbDrone.Api/Mapping/CloneInjection.cs diff --git a/NzbDrone.Api/Mapping/MappingValidation.cs b/src/NzbDrone.Api/Mapping/MappingValidation.cs similarity index 100% rename from NzbDrone.Api/Mapping/MappingValidation.cs rename to src/NzbDrone.Api/Mapping/MappingValidation.cs diff --git a/NzbDrone.Api/Mapping/ResourceMappingException.cs b/src/NzbDrone.Api/Mapping/ResourceMappingException.cs similarity index 100% rename from NzbDrone.Api/Mapping/ResourceMappingException.cs rename to src/NzbDrone.Api/Mapping/ResourceMappingException.cs diff --git a/NzbDrone.Api/Mapping/ValueInjectorExtensions.cs b/src/NzbDrone.Api/Mapping/ValueInjectorExtensions.cs similarity index 97% rename from NzbDrone.Api/Mapping/ValueInjectorExtensions.cs rename to src/NzbDrone.Api/Mapping/ValueInjectorExtensions.cs index ce21efaef..d8ac662f5 100644 --- a/NzbDrone.Api/Mapping/ValueInjectorExtensions.cs +++ b/src/NzbDrone.Api/Mapping/ValueInjectorExtensions.cs @@ -1,41 +1,41 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Linq; -using Omu.ValueInjecter; - -namespace NzbDrone.Api.Mapping -{ - public static class ValueInjectorExtensions - { - public static TTarget InjectTo(this object source) where TTarget : new() - { - var targetType = typeof(TTarget); - - if (targetType.IsGenericType && - targetType.GetGenericTypeDefinition() != null && - targetType.GetGenericTypeDefinition().GetInterfaces().Contains(typeof(IEnumerable)) && - source.GetType().IsGenericType && - source.GetType().GetGenericTypeDefinition() != null && - source.GetType().GetGenericTypeDefinition().GetInterfaces().Contains(typeof(IEnumerable))) - { - - var result = new TTarget(); - - var listSubType = targetType.GetGenericArguments()[0]; - var listType = typeof(List<>).MakeGenericType(listSubType); - var addMethod = listType.GetMethod("Add"); - - foreach (var sourceItem in (IEnumerable)source) - { - var e = Activator.CreateInstance(listSubType).InjectFrom(sourceItem); - addMethod.Invoke(result, new[] { e }); - } - - return result; - } - - return (TTarget)new TTarget().InjectFrom(source); - } - } +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using Omu.ValueInjecter; + +namespace NzbDrone.Api.Mapping +{ + public static class ValueInjectorExtensions + { + public static TTarget InjectTo(this object source) where TTarget : new() + { + var targetType = typeof(TTarget); + + if (targetType.IsGenericType && + targetType.GetGenericTypeDefinition() != null && + targetType.GetGenericTypeDefinition().GetInterfaces().Contains(typeof(IEnumerable)) && + source.GetType().IsGenericType && + source.GetType().GetGenericTypeDefinition() != null && + source.GetType().GetGenericTypeDefinition().GetInterfaces().Contains(typeof(IEnumerable))) + { + + var result = new TTarget(); + + var listSubType = targetType.GetGenericArguments()[0]; + var listType = typeof(List<>).MakeGenericType(listSubType); + var addMethod = listType.GetMethod("Add"); + + foreach (var sourceItem in (IEnumerable)source) + { + var e = Activator.CreateInstance(listSubType).InjectFrom(sourceItem); + addMethod.Invoke(result, new[] { e }); + } + + return result; + } + + return (TTarget)new TTarget().InjectFrom(source); + } + } } \ No newline at end of file diff --git a/NzbDrone.Api/Missing/MissingModule.cs b/src/NzbDrone.Api/Missing/MissingModule.cs similarity index 100% rename from NzbDrone.Api/Missing/MissingModule.cs rename to src/NzbDrone.Api/Missing/MissingModule.cs diff --git a/NzbDrone.Api/NancyBootstrapper.cs b/src/NzbDrone.Api/NancyBootstrapper.cs similarity index 100% rename from NzbDrone.Api/NancyBootstrapper.cs rename to src/NzbDrone.Api/NancyBootstrapper.cs diff --git a/NzbDrone.Api/Notifications/NotificationModule.cs b/src/NzbDrone.Api/Notifications/NotificationModule.cs similarity index 100% rename from NzbDrone.Api/Notifications/NotificationModule.cs rename to src/NzbDrone.Api/Notifications/NotificationModule.cs diff --git a/NzbDrone.Api/Notifications/NotificationResource.cs b/src/NzbDrone.Api/Notifications/NotificationResource.cs similarity index 100% rename from NzbDrone.Api/Notifications/NotificationResource.cs rename to src/NzbDrone.Api/Notifications/NotificationResource.cs diff --git a/NzbDrone.Api/Notifications/NotificationSchemaModule.cs b/src/NzbDrone.Api/Notifications/NotificationSchemaModule.cs similarity index 100% rename from NzbDrone.Api/Notifications/NotificationSchemaModule.cs rename to src/NzbDrone.Api/Notifications/NotificationSchemaModule.cs diff --git a/NzbDrone.Api/NzbDrone.Api.csproj b/src/NzbDrone.Api/NzbDrone.Api.csproj similarity index 99% rename from NzbDrone.Api/NzbDrone.Api.csproj rename to src/NzbDrone.Api/NzbDrone.Api.csproj index 88f133b26..7b885fe48 100644 --- a/NzbDrone.Api/NzbDrone.Api.csproj +++ b/src/NzbDrone.Api/NzbDrone.Api.csproj @@ -18,7 +18,7 @@ true - ..\_output\ + ..\..\_output\ DEBUG;TRACE full x86 @@ -26,7 +26,7 @@ MinimumRecommendedRules.ruleset - ..\_output\ + ..\..\_output\ TRACE true pdbonly diff --git a/NzbDrone.Api/NzbDroneApiModule.cs b/src/NzbDrone.Api/NzbDroneApiModule.cs similarity index 100% rename from NzbDrone.Api/NzbDroneApiModule.cs rename to src/NzbDrone.Api/NzbDroneApiModule.cs diff --git a/NzbDrone.Api/NzbDroneRestModule.cs b/src/NzbDrone.Api/NzbDroneRestModule.cs similarity index 100% rename from NzbDrone.Api/NzbDroneRestModule.cs rename to src/NzbDrone.Api/NzbDroneRestModule.cs diff --git a/NzbDrone.Api/NzbDroneRestModuleWithSignalR.cs b/src/NzbDrone.Api/NzbDroneRestModuleWithSignalR.cs similarity index 100% rename from NzbDrone.Api/NzbDroneRestModuleWithSignalR.cs rename to src/NzbDrone.Api/NzbDroneRestModuleWithSignalR.cs diff --git a/NzbDrone.Api/PagingResource.cs b/src/NzbDrone.Api/PagingResource.cs similarity index 100% rename from NzbDrone.Api/PagingResource.cs rename to src/NzbDrone.Api/PagingResource.cs diff --git a/NzbDrone.Api/Properties/AssemblyInfo.cs b/src/NzbDrone.Api/Properties/AssemblyInfo.cs similarity index 100% rename from NzbDrone.Api/Properties/AssemblyInfo.cs rename to src/NzbDrone.Api/Properties/AssemblyInfo.cs diff --git a/NzbDrone.Api/ProviderModuleBase.cs b/src/NzbDrone.Api/ProviderModuleBase.cs similarity index 100% rename from NzbDrone.Api/ProviderModuleBase.cs rename to src/NzbDrone.Api/ProviderModuleBase.cs diff --git a/NzbDrone.Api/Qualities/QualityProfileModule.cs b/src/NzbDrone.Api/Qualities/QualityProfileModule.cs similarity index 100% rename from NzbDrone.Api/Qualities/QualityProfileModule.cs rename to src/NzbDrone.Api/Qualities/QualityProfileModule.cs diff --git a/NzbDrone.Api/Qualities/QualityProfileResource.cs b/src/NzbDrone.Api/Qualities/QualityProfileResource.cs similarity index 100% rename from NzbDrone.Api/Qualities/QualityProfileResource.cs rename to src/NzbDrone.Api/Qualities/QualityProfileResource.cs diff --git a/NzbDrone.Api/Qualities/QualityProfileSchemaModule.cs b/src/NzbDrone.Api/Qualities/QualityProfileSchemaModule.cs similarity index 100% rename from NzbDrone.Api/Qualities/QualityProfileSchemaModule.cs rename to src/NzbDrone.Api/Qualities/QualityProfileSchemaModule.cs diff --git a/NzbDrone.Api/Qualities/QualitySizeModule.cs b/src/NzbDrone.Api/Qualities/QualitySizeModule.cs similarity index 100% rename from NzbDrone.Api/Qualities/QualitySizeModule.cs rename to src/NzbDrone.Api/Qualities/QualitySizeModule.cs diff --git a/NzbDrone.Api/Qualities/QualitySizeResource.cs b/src/NzbDrone.Api/Qualities/QualitySizeResource.cs similarity index 100% rename from NzbDrone.Api/Qualities/QualitySizeResource.cs rename to src/NzbDrone.Api/Qualities/QualitySizeResource.cs diff --git a/NzbDrone.Api/Queue/QueueModule.cs b/src/NzbDrone.Api/Queue/QueueModule.cs similarity index 100% rename from NzbDrone.Api/Queue/QueueModule.cs rename to src/NzbDrone.Api/Queue/QueueModule.cs diff --git a/NzbDrone.Api/Queue/QueueResource.cs b/src/NzbDrone.Api/Queue/QueueResource.cs similarity index 100% rename from NzbDrone.Api/Queue/QueueResource.cs rename to src/NzbDrone.Api/Queue/QueueResource.cs diff --git a/NzbDrone.Api/REST/BadRequestException.cs b/src/NzbDrone.Api/REST/BadRequestException.cs similarity index 100% rename from NzbDrone.Api/REST/BadRequestException.cs rename to src/NzbDrone.Api/REST/BadRequestException.cs diff --git a/NzbDrone.Api/REST/ResourceValidator.cs b/src/NzbDrone.Api/REST/ResourceValidator.cs similarity index 100% rename from NzbDrone.Api/REST/ResourceValidator.cs rename to src/NzbDrone.Api/REST/ResourceValidator.cs diff --git a/NzbDrone.Api/REST/RestModule.cs b/src/NzbDrone.Api/REST/RestModule.cs similarity index 100% rename from NzbDrone.Api/REST/RestModule.cs rename to src/NzbDrone.Api/REST/RestModule.cs diff --git a/NzbDrone.Api/REST/RestResource.cs b/src/NzbDrone.Api/REST/RestResource.cs similarity index 100% rename from NzbDrone.Api/REST/RestResource.cs rename to src/NzbDrone.Api/REST/RestResource.cs diff --git a/NzbDrone.Api/ResourceChangeMessage.cs b/src/NzbDrone.Api/ResourceChangeMessage.cs similarity index 100% rename from NzbDrone.Api/ResourceChangeMessage.cs rename to src/NzbDrone.Api/ResourceChangeMessage.cs diff --git a/NzbDrone.Api/RootFolders/RootFolderModule.cs b/src/NzbDrone.Api/RootFolders/RootFolderModule.cs similarity index 100% rename from NzbDrone.Api/RootFolders/RootFolderModule.cs rename to src/NzbDrone.Api/RootFolders/RootFolderModule.cs diff --git a/NzbDrone.Api/RootFolders/RootFolderResource.cs b/src/NzbDrone.Api/RootFolders/RootFolderResource.cs similarity index 100% rename from NzbDrone.Api/RootFolders/RootFolderResource.cs rename to src/NzbDrone.Api/RootFolders/RootFolderResource.cs diff --git a/NzbDrone.Api/Series/SeriesLookupModule.cs b/src/NzbDrone.Api/Series/SeriesLookupModule.cs similarity index 100% rename from NzbDrone.Api/Series/SeriesLookupModule.cs rename to src/NzbDrone.Api/Series/SeriesLookupModule.cs diff --git a/NzbDrone.Api/Series/SeriesModule.cs b/src/NzbDrone.Api/Series/SeriesModule.cs similarity index 100% rename from NzbDrone.Api/Series/SeriesModule.cs rename to src/NzbDrone.Api/Series/SeriesModule.cs diff --git a/NzbDrone.Api/Series/SeriesResource.cs b/src/NzbDrone.Api/Series/SeriesResource.cs similarity index 100% rename from NzbDrone.Api/Series/SeriesResource.cs rename to src/NzbDrone.Api/Series/SeriesResource.cs diff --git a/NzbDrone.Api/System/SystemModule.cs b/src/NzbDrone.Api/System/SystemModule.cs similarity index 100% rename from NzbDrone.Api/System/SystemModule.cs rename to src/NzbDrone.Api/System/SystemModule.cs diff --git a/NzbDrone.Api/TinyIoCNancyBootstrapper.cs b/src/NzbDrone.Api/TinyIoCNancyBootstrapper.cs similarity index 100% rename from NzbDrone.Api/TinyIoCNancyBootstrapper.cs rename to src/NzbDrone.Api/TinyIoCNancyBootstrapper.cs diff --git a/NzbDrone.Api/Update/UpdateModule.cs b/src/NzbDrone.Api/Update/UpdateModule.cs similarity index 100% rename from NzbDrone.Api/Update/UpdateModule.cs rename to src/NzbDrone.Api/Update/UpdateModule.cs diff --git a/NzbDrone.Api/Validation/PathValidator.cs b/src/NzbDrone.Api/Validation/PathValidator.cs similarity index 100% rename from NzbDrone.Api/Validation/PathValidator.cs rename to src/NzbDrone.Api/Validation/PathValidator.cs diff --git a/NzbDrone.Api/Validation/RuleBuilderExtensions.cs b/src/NzbDrone.Api/Validation/RuleBuilderExtensions.cs similarity index 100% rename from NzbDrone.Api/Validation/RuleBuilderExtensions.cs rename to src/NzbDrone.Api/Validation/RuleBuilderExtensions.cs diff --git a/NzbDrone.Api/packages.config b/src/NzbDrone.Api/packages.config similarity index 100% rename from NzbDrone.Api/packages.config rename to src/NzbDrone.Api/packages.config diff --git a/NzbDrone.App.Test/ContainerFixture.cs b/src/NzbDrone.App.Test/ContainerFixture.cs similarity index 100% rename from NzbDrone.App.Test/ContainerFixture.cs rename to src/NzbDrone.App.Test/ContainerFixture.cs diff --git a/NzbDrone.App.Test/License.txt b/src/NzbDrone.App.Test/License.txt similarity index 100% rename from NzbDrone.App.Test/License.txt rename to src/NzbDrone.App.Test/License.txt diff --git a/NzbDrone.App.Test/MonitoringProviderTest.cs b/src/NzbDrone.App.Test/MonitoringProviderTest.cs similarity index 100% rename from NzbDrone.App.Test/MonitoringProviderTest.cs rename to src/NzbDrone.App.Test/MonitoringProviderTest.cs diff --git a/NzbDrone.App.Test/NzbDrone.Host.Test.csproj b/src/NzbDrone.App.Test/NzbDrone.Host.Test.csproj similarity index 100% rename from NzbDrone.App.Test/NzbDrone.Host.Test.csproj rename to src/NzbDrone.App.Test/NzbDrone.Host.Test.csproj diff --git a/NzbDrone.App.Test/Properties/AssemblyInfo.cs b/src/NzbDrone.App.Test/Properties/AssemblyInfo.cs similarity index 100% rename from NzbDrone.App.Test/Properties/AssemblyInfo.cs rename to src/NzbDrone.App.Test/Properties/AssemblyInfo.cs diff --git a/NzbDrone.App.Test/RouterTest.cs b/src/NzbDrone.App.Test/RouterTest.cs similarity index 100% rename from NzbDrone.App.Test/RouterTest.cs rename to src/NzbDrone.App.Test/RouterTest.cs diff --git a/NzbDrone.App.Test/packages.config b/src/NzbDrone.App.Test/packages.config similarity index 100% rename from NzbDrone.App.Test/packages.config rename to src/NzbDrone.App.Test/packages.config diff --git a/NzbDrone.Common.Test/CacheTests/CachedFixture.cs b/src/NzbDrone.Common.Test/CacheTests/CachedFixture.cs similarity index 100% rename from NzbDrone.Common.Test/CacheTests/CachedFixture.cs rename to src/NzbDrone.Common.Test/CacheTests/CachedFixture.cs diff --git a/NzbDrone.Common.Test/CacheTests/CachedManagerFixture.cs b/src/NzbDrone.Common.Test/CacheTests/CachedManagerFixture.cs similarity index 100% rename from NzbDrone.Common.Test/CacheTests/CachedManagerFixture.cs rename to src/NzbDrone.Common.Test/CacheTests/CachedManagerFixture.cs diff --git a/NzbDrone.Common.Test/ConfigFileProviderTest.cs b/src/NzbDrone.Common.Test/ConfigFileProviderTest.cs similarity index 100% rename from NzbDrone.Common.Test/ConfigFileProviderTest.cs rename to src/NzbDrone.Common.Test/ConfigFileProviderTest.cs diff --git a/NzbDrone.Common.Test/DiskProviderTests/DiskProviderFixture.cs b/src/NzbDrone.Common.Test/DiskProviderTests/DiskProviderFixture.cs similarity index 100% rename from NzbDrone.Common.Test/DiskProviderTests/DiskProviderFixture.cs rename to src/NzbDrone.Common.Test/DiskProviderTests/DiskProviderFixture.cs diff --git a/NzbDrone.Common.Test/DiskProviderTests/FreeSpaceFixture.cs b/src/NzbDrone.Common.Test/DiskProviderTests/FreeSpaceFixture.cs similarity index 100% rename from NzbDrone.Common.Test/DiskProviderTests/FreeSpaceFixture.cs rename to src/NzbDrone.Common.Test/DiskProviderTests/FreeSpaceFixture.cs diff --git a/NzbDrone.Common.Test/DiskProviderTests/IsParentFixture.cs b/src/NzbDrone.Common.Test/DiskProviderTests/IsParentFixture.cs similarity index 100% rename from NzbDrone.Common.Test/DiskProviderTests/IsParentFixture.cs rename to src/NzbDrone.Common.Test/DiskProviderTests/IsParentFixture.cs diff --git a/NzbDrone.Common.Test/EnsureTest/PathExtensionFixture.cs b/src/NzbDrone.Common.Test/EnsureTest/PathExtensionFixture.cs similarity index 100% rename from NzbDrone.Common.Test/EnsureTest/PathExtensionFixture.cs rename to src/NzbDrone.Common.Test/EnsureTest/PathExtensionFixture.cs diff --git a/NzbDrone.Common.Test/EnvironmentProviderTest.cs b/src/NzbDrone.Common.Test/EnvironmentProviderTest.cs similarity index 100% rename from NzbDrone.Common.Test/EnvironmentProviderTest.cs rename to src/NzbDrone.Common.Test/EnvironmentProviderTest.cs diff --git a/NzbDrone.Common.Test/EnvironmentTests/EnvironmentProviderTest.cs b/src/NzbDrone.Common.Test/EnvironmentTests/EnvironmentProviderTest.cs similarity index 100% rename from NzbDrone.Common.Test/EnvironmentTests/EnvironmentProviderTest.cs rename to src/NzbDrone.Common.Test/EnvironmentTests/EnvironmentProviderTest.cs diff --git a/NzbDrone.Common.Test/EnvironmentTests/StartupArgumentsFixture.cs b/src/NzbDrone.Common.Test/EnvironmentTests/StartupArgumentsFixture.cs similarity index 100% rename from NzbDrone.Common.Test/EnvironmentTests/StartupArgumentsFixture.cs rename to src/NzbDrone.Common.Test/EnvironmentTests/StartupArgumentsFixture.cs diff --git a/NzbDrone.Common.Test/License.txt b/src/NzbDrone.Common.Test/License.txt similarity index 100% rename from NzbDrone.Common.Test/License.txt rename to src/NzbDrone.Common.Test/License.txt diff --git a/NzbDrone.Common.Test/NzbDrone.Common.Test.csproj b/src/NzbDrone.Common.Test/NzbDrone.Common.Test.csproj similarity index 100% rename from NzbDrone.Common.Test/NzbDrone.Common.Test.csproj rename to src/NzbDrone.Common.Test/NzbDrone.Common.Test.csproj diff --git a/NzbDrone.Common.Test/PathExtensionFixture.cs b/src/NzbDrone.Common.Test/PathExtensionFixture.cs similarity index 100% rename from NzbDrone.Common.Test/PathExtensionFixture.cs rename to src/NzbDrone.Common.Test/PathExtensionFixture.cs diff --git a/NzbDrone.Common.Test/ProcessProviderTests.cs b/src/NzbDrone.Common.Test/ProcessProviderTests.cs similarity index 100% rename from NzbDrone.Common.Test/ProcessProviderTests.cs rename to src/NzbDrone.Common.Test/ProcessProviderTests.cs diff --git a/NzbDrone.Common.Test/ReflectionExtensions.cs b/src/NzbDrone.Common.Test/ReflectionExtensions.cs similarity index 100% rename from NzbDrone.Common.Test/ReflectionExtensions.cs rename to src/NzbDrone.Common.Test/ReflectionExtensions.cs diff --git a/NzbDrone.Common.Test/ReflectionTests/ReflectionExtensionFixture.cs b/src/NzbDrone.Common.Test/ReflectionTests/ReflectionExtensionFixture.cs similarity index 96% rename from NzbDrone.Common.Test/ReflectionTests/ReflectionExtensionFixture.cs rename to src/NzbDrone.Common.Test/ReflectionTests/ReflectionExtensionFixture.cs index 4576b24ac..3e6c3fab9 100644 --- a/NzbDrone.Common.Test/ReflectionTests/ReflectionExtensionFixture.cs +++ b/src/NzbDrone.Common.Test/ReflectionTests/ReflectionExtensionFixture.cs @@ -1,31 +1,31 @@ -using System.Reflection; -using FluentAssertions; -using NUnit.Framework; -using NzbDrone.Common.Reflection; -using NzbDrone.Core.Datastore; -using NzbDrone.Test.Common; - -namespace NzbDrone.Common.Test.ReflectionTests -{ - public class ReflectionExtensionFixture : TestBase - { - [Test] - public void should_get_properties_from_models() - { - var models = Assembly.Load("NzbDrone.Core").ImplementationsOf(); - - foreach (var model in models) - { - model.GetSimpleProperties().Should().NotBeEmpty(); - } - } - - [Test] - public void should_be_able_to_get_implementations() - { - var models = Assembly.Load("NzbDrone.Core").ImplementationsOf(); - - models.Should().NotBeEmpty(); - } - } +using System.Reflection; +using FluentAssertions; +using NUnit.Framework; +using NzbDrone.Common.Reflection; +using NzbDrone.Core.Datastore; +using NzbDrone.Test.Common; + +namespace NzbDrone.Common.Test.ReflectionTests +{ + public class ReflectionExtensionFixture : TestBase + { + [Test] + public void should_get_properties_from_models() + { + var models = Assembly.Load("NzbDrone.Core").ImplementationsOf(); + + foreach (var model in models) + { + model.GetSimpleProperties().Should().NotBeEmpty(); + } + } + + [Test] + public void should_be_able_to_get_implementations() + { + var models = Assembly.Load("NzbDrone.Core").ImplementationsOf(); + + models.Should().NotBeEmpty(); + } + } } \ No newline at end of file diff --git a/NzbDrone.Common.Test/ServiceFactoryFixture.cs b/src/NzbDrone.Common.Test/ServiceFactoryFixture.cs similarity index 100% rename from NzbDrone.Common.Test/ServiceFactoryFixture.cs rename to src/NzbDrone.Common.Test/ServiceFactoryFixture.cs diff --git a/NzbDrone.Common.Test/ServiceProviderTests.cs b/src/NzbDrone.Common.Test/ServiceProviderTests.cs similarity index 100% rename from NzbDrone.Common.Test/ServiceProviderTests.cs rename to src/NzbDrone.Common.Test/ServiceProviderTests.cs diff --git a/NzbDrone.Common.Test/WebClientTests.cs b/src/NzbDrone.Common.Test/WebClientTests.cs similarity index 100% rename from NzbDrone.Common.Test/WebClientTests.cs rename to src/NzbDrone.Common.Test/WebClientTests.cs diff --git a/NzbDrone.Common.Test/packages.config b/src/NzbDrone.Common.Test/packages.config similarity index 100% rename from NzbDrone.Common.Test/packages.config rename to src/NzbDrone.Common.Test/packages.config diff --git a/NzbDrone.Common/ArchiveProvider.cs b/src/NzbDrone.Common/ArchiveProvider.cs similarity index 100% rename from NzbDrone.Common/ArchiveProvider.cs rename to src/NzbDrone.Common/ArchiveProvider.cs diff --git a/NzbDrone.Common/Cache/CacheManger.cs b/src/NzbDrone.Common/Cache/CacheManger.cs similarity index 100% rename from NzbDrone.Common/Cache/CacheManger.cs rename to src/NzbDrone.Common/Cache/CacheManger.cs diff --git a/NzbDrone.Common/Cache/Cached.cs b/src/NzbDrone.Common/Cache/Cached.cs similarity index 100% rename from NzbDrone.Common/Cache/Cached.cs rename to src/NzbDrone.Common/Cache/Cached.cs diff --git a/NzbDrone.Common/Cache/ICached.cs b/src/NzbDrone.Common/Cache/ICached.cs similarity index 100% rename from NzbDrone.Common/Cache/ICached.cs rename to src/NzbDrone.Common/Cache/ICached.cs diff --git a/NzbDrone.Common/Composition/Container.cs b/src/NzbDrone.Common/Composition/Container.cs similarity index 100% rename from NzbDrone.Common/Composition/Container.cs rename to src/NzbDrone.Common/Composition/Container.cs diff --git a/NzbDrone.Common/Composition/ContainerBuilderBase.cs b/src/NzbDrone.Common/Composition/ContainerBuilderBase.cs similarity index 100% rename from NzbDrone.Common/Composition/ContainerBuilderBase.cs rename to src/NzbDrone.Common/Composition/ContainerBuilderBase.cs diff --git a/NzbDrone.Common/Composition/IContainer.cs b/src/NzbDrone.Common/Composition/IContainer.cs similarity index 100% rename from NzbDrone.Common/Composition/IContainer.cs rename to src/NzbDrone.Common/Composition/IContainer.cs diff --git a/NzbDrone.Common/ConsoleService.cs b/src/NzbDrone.Common/ConsoleService.cs similarity index 100% rename from NzbDrone.Common/ConsoleService.cs rename to src/NzbDrone.Common/ConsoleService.cs diff --git a/NzbDrone.Common/DateTimeExtensions.cs b/src/NzbDrone.Common/DateTimeExtensions.cs similarity index 100% rename from NzbDrone.Common/DateTimeExtensions.cs rename to src/NzbDrone.Common/DateTimeExtensions.cs diff --git a/NzbDrone.Common/DiskProvider.cs b/src/NzbDrone.Common/DiskProvider.cs similarity index 100% rename from NzbDrone.Common/DiskProvider.cs rename to src/NzbDrone.Common/DiskProvider.cs diff --git a/NzbDrone.Common/EnsureThat/Ensure.cs b/src/NzbDrone.Common/EnsureThat/Ensure.cs similarity index 100% rename from NzbDrone.Common/EnsureThat/Ensure.cs rename to src/NzbDrone.Common/EnsureThat/Ensure.cs diff --git a/NzbDrone.Common/EnsureThat/EnsureBoolExtensions.cs b/src/NzbDrone.Common/EnsureThat/EnsureBoolExtensions.cs similarity index 100% rename from NzbDrone.Common/EnsureThat/EnsureBoolExtensions.cs rename to src/NzbDrone.Common/EnsureThat/EnsureBoolExtensions.cs diff --git a/NzbDrone.Common/EnsureThat/EnsureCollectionExtensions.cs b/src/NzbDrone.Common/EnsureThat/EnsureCollectionExtensions.cs similarity index 100% rename from NzbDrone.Common/EnsureThat/EnsureCollectionExtensions.cs rename to src/NzbDrone.Common/EnsureThat/EnsureCollectionExtensions.cs diff --git a/NzbDrone.Common/EnsureThat/EnsureDateTimeExtensions.cs b/src/NzbDrone.Common/EnsureThat/EnsureDateTimeExtensions.cs similarity index 100% rename from NzbDrone.Common/EnsureThat/EnsureDateTimeExtensions.cs rename to src/NzbDrone.Common/EnsureThat/EnsureDateTimeExtensions.cs diff --git a/NzbDrone.Common/EnsureThat/EnsureDecimalExtensions.cs b/src/NzbDrone.Common/EnsureThat/EnsureDecimalExtensions.cs similarity index 100% rename from NzbDrone.Common/EnsureThat/EnsureDecimalExtensions.cs rename to src/NzbDrone.Common/EnsureThat/EnsureDecimalExtensions.cs diff --git a/NzbDrone.Common/EnsureThat/EnsureDoubleExtensions.cs b/src/NzbDrone.Common/EnsureThat/EnsureDoubleExtensions.cs similarity index 100% rename from NzbDrone.Common/EnsureThat/EnsureDoubleExtensions.cs rename to src/NzbDrone.Common/EnsureThat/EnsureDoubleExtensions.cs diff --git a/NzbDrone.Common/EnsureThat/EnsureGuidExtensions.cs b/src/NzbDrone.Common/EnsureThat/EnsureGuidExtensions.cs similarity index 100% rename from NzbDrone.Common/EnsureThat/EnsureGuidExtensions.cs rename to src/NzbDrone.Common/EnsureThat/EnsureGuidExtensions.cs diff --git a/NzbDrone.Common/EnsureThat/EnsureIntExtensions.cs b/src/NzbDrone.Common/EnsureThat/EnsureIntExtensions.cs similarity index 100% rename from NzbDrone.Common/EnsureThat/EnsureIntExtensions.cs rename to src/NzbDrone.Common/EnsureThat/EnsureIntExtensions.cs diff --git a/NzbDrone.Common/EnsureThat/EnsureLongExtensions.cs b/src/NzbDrone.Common/EnsureThat/EnsureLongExtensions.cs similarity index 100% rename from NzbDrone.Common/EnsureThat/EnsureLongExtensions.cs rename to src/NzbDrone.Common/EnsureThat/EnsureLongExtensions.cs diff --git a/NzbDrone.Common/EnsureThat/EnsureNullableValueTypeExtensions.cs b/src/NzbDrone.Common/EnsureThat/EnsureNullableValueTypeExtensions.cs similarity index 100% rename from NzbDrone.Common/EnsureThat/EnsureNullableValueTypeExtensions.cs rename to src/NzbDrone.Common/EnsureThat/EnsureNullableValueTypeExtensions.cs diff --git a/NzbDrone.Common/EnsureThat/EnsureObjectExtensions.cs b/src/NzbDrone.Common/EnsureThat/EnsureObjectExtensions.cs similarity index 100% rename from NzbDrone.Common/EnsureThat/EnsureObjectExtensions.cs rename to src/NzbDrone.Common/EnsureThat/EnsureObjectExtensions.cs diff --git a/NzbDrone.Common/EnsureThat/EnsureShortExtensions.cs b/src/NzbDrone.Common/EnsureThat/EnsureShortExtensions.cs similarity index 100% rename from NzbDrone.Common/EnsureThat/EnsureShortExtensions.cs rename to src/NzbDrone.Common/EnsureThat/EnsureShortExtensions.cs diff --git a/NzbDrone.Common/EnsureThat/EnsureStringExtensions.cs b/src/NzbDrone.Common/EnsureThat/EnsureStringExtensions.cs similarity index 100% rename from NzbDrone.Common/EnsureThat/EnsureStringExtensions.cs rename to src/NzbDrone.Common/EnsureThat/EnsureStringExtensions.cs diff --git a/NzbDrone.Common/EnsureThat/EnsureTypeExtensions.cs b/src/NzbDrone.Common/EnsureThat/EnsureTypeExtensions.cs similarity index 100% rename from NzbDrone.Common/EnsureThat/EnsureTypeExtensions.cs rename to src/NzbDrone.Common/EnsureThat/EnsureTypeExtensions.cs diff --git a/NzbDrone.Common/EnsureThat/ExceptionFactory.cs b/src/NzbDrone.Common/EnsureThat/ExceptionFactory.cs similarity index 100% rename from NzbDrone.Common/EnsureThat/ExceptionFactory.cs rename to src/NzbDrone.Common/EnsureThat/ExceptionFactory.cs diff --git a/NzbDrone.Common/EnsureThat/ExpressionExtensions.cs b/src/NzbDrone.Common/EnsureThat/ExpressionExtensions.cs similarity index 100% rename from NzbDrone.Common/EnsureThat/ExpressionExtensions.cs rename to src/NzbDrone.Common/EnsureThat/ExpressionExtensions.cs diff --git a/NzbDrone.Common/EnsureThat/Param.cs b/src/NzbDrone.Common/EnsureThat/Param.cs similarity index 100% rename from NzbDrone.Common/EnsureThat/Param.cs rename to src/NzbDrone.Common/EnsureThat/Param.cs diff --git a/NzbDrone.Common/EnsureThat/Resources/ExceptionMessages.Designer.cs b/src/NzbDrone.Common/EnsureThat/Resources/ExceptionMessages.Designer.cs similarity index 100% rename from NzbDrone.Common/EnsureThat/Resources/ExceptionMessages.Designer.cs rename to src/NzbDrone.Common/EnsureThat/Resources/ExceptionMessages.Designer.cs diff --git a/NzbDrone.Common/EnsureThat/Resources/ExceptionMessages.resx b/src/NzbDrone.Common/EnsureThat/Resources/ExceptionMessages.resx similarity index 100% rename from NzbDrone.Common/EnsureThat/Resources/ExceptionMessages.resx rename to src/NzbDrone.Common/EnsureThat/Resources/ExceptionMessages.resx diff --git a/NzbDrone.Common/EnsureThat/TypeParam.cs b/src/NzbDrone.Common/EnsureThat/TypeParam.cs similarity index 100% rename from NzbDrone.Common/EnsureThat/TypeParam.cs rename to src/NzbDrone.Common/EnsureThat/TypeParam.cs diff --git a/NzbDrone.Common/EnvironmentInfo/AppFolderInfo.cs b/src/NzbDrone.Common/EnvironmentInfo/AppFolderInfo.cs similarity index 100% rename from NzbDrone.Common/EnvironmentInfo/AppFolderInfo.cs rename to src/NzbDrone.Common/EnvironmentInfo/AppFolderInfo.cs diff --git a/NzbDrone.Common/EnvironmentInfo/BuildInfo.cs b/src/NzbDrone.Common/EnvironmentInfo/BuildInfo.cs similarity index 100% rename from NzbDrone.Common/EnvironmentInfo/BuildInfo.cs rename to src/NzbDrone.Common/EnvironmentInfo/BuildInfo.cs diff --git a/NzbDrone.Common/EnvironmentInfo/OsInfo.cs b/src/NzbDrone.Common/EnvironmentInfo/OsInfo.cs similarity index 100% rename from NzbDrone.Common/EnvironmentInfo/OsInfo.cs rename to src/NzbDrone.Common/EnvironmentInfo/OsInfo.cs diff --git a/NzbDrone.Common/EnvironmentInfo/RuntimeInfo.cs b/src/NzbDrone.Common/EnvironmentInfo/RuntimeInfo.cs similarity index 100% rename from NzbDrone.Common/EnvironmentInfo/RuntimeInfo.cs rename to src/NzbDrone.Common/EnvironmentInfo/RuntimeInfo.cs diff --git a/NzbDrone.Common/EnvironmentInfo/StartupArguments.cs b/src/NzbDrone.Common/EnvironmentInfo/StartupArguments.cs similarity index 100% rename from NzbDrone.Common/EnvironmentInfo/StartupArguments.cs rename to src/NzbDrone.Common/EnvironmentInfo/StartupArguments.cs diff --git a/NzbDrone.Common/Exceptions/NzbDroneException.cs b/src/NzbDrone.Common/Exceptions/NzbDroneException.cs similarity index 100% rename from NzbDrone.Common/Exceptions/NzbDroneException.cs rename to src/NzbDrone.Common/Exceptions/NzbDroneException.cs diff --git a/NzbDrone.Common/Expansive/CircularReferenceException.cs b/src/NzbDrone.Common/Expansive/CircularReferenceException.cs similarity index 100% rename from NzbDrone.Common/Expansive/CircularReferenceException.cs rename to src/NzbDrone.Common/Expansive/CircularReferenceException.cs diff --git a/NzbDrone.Common/Expansive/Expansive.cs b/src/NzbDrone.Common/Expansive/Expansive.cs similarity index 100% rename from NzbDrone.Common/Expansive/Expansive.cs rename to src/NzbDrone.Common/Expansive/Expansive.cs diff --git a/NzbDrone.Common/Expansive/PatternStyle.cs b/src/NzbDrone.Common/Expansive/PatternStyle.cs similarity index 100% rename from NzbDrone.Common/Expansive/PatternStyle.cs rename to src/NzbDrone.Common/Expansive/PatternStyle.cs diff --git a/NzbDrone.Common/Expansive/Tree.cs b/src/NzbDrone.Common/Expansive/Tree.cs similarity index 100% rename from NzbDrone.Common/Expansive/Tree.cs rename to src/NzbDrone.Common/Expansive/Tree.cs diff --git a/NzbDrone.Common/Expansive/TreeNode.cs b/src/NzbDrone.Common/Expansive/TreeNode.cs similarity index 100% rename from NzbDrone.Common/Expansive/TreeNode.cs rename to src/NzbDrone.Common/Expansive/TreeNode.cs diff --git a/NzbDrone.Common/Expansive/TreeNodeList.cs b/src/NzbDrone.Common/Expansive/TreeNodeList.cs similarity index 100% rename from NzbDrone.Common/Expansive/TreeNodeList.cs rename to src/NzbDrone.Common/Expansive/TreeNodeList.cs diff --git a/NzbDrone.Common/Expansive/license.txt b/src/NzbDrone.Common/Expansive/license.txt similarity index 100% rename from NzbDrone.Common/Expansive/license.txt rename to src/NzbDrone.Common/Expansive/license.txt diff --git a/NzbDrone.Common/HashUtil.cs b/src/NzbDrone.Common/HashUtil.cs similarity index 100% rename from NzbDrone.Common/HashUtil.cs rename to src/NzbDrone.Common/HashUtil.cs diff --git a/NzbDrone.Common/HttpProvider.cs b/src/NzbDrone.Common/HttpProvider.cs similarity index 100% rename from NzbDrone.Common/HttpProvider.cs rename to src/NzbDrone.Common/HttpProvider.cs diff --git a/NzbDrone.Common/IEnumerableExtensions.cs b/src/NzbDrone.Common/IEnumerableExtensions.cs similarity index 100% rename from NzbDrone.Common/IEnumerableExtensions.cs rename to src/NzbDrone.Common/IEnumerableExtensions.cs diff --git a/NzbDrone.Common/Instrumentation/ExceptronTarget.cs b/src/NzbDrone.Common/Instrumentation/ExceptronTarget.cs similarity index 100% rename from NzbDrone.Common/Instrumentation/ExceptronTarget.cs rename to src/NzbDrone.Common/Instrumentation/ExceptronTarget.cs diff --git a/NzbDrone.Common/Instrumentation/GlobalExceptionHandlers.cs b/src/NzbDrone.Common/Instrumentation/GlobalExceptionHandlers.cs similarity index 100% rename from NzbDrone.Common/Instrumentation/GlobalExceptionHandlers.cs rename to src/NzbDrone.Common/Instrumentation/GlobalExceptionHandlers.cs diff --git a/NzbDrone.Common/Instrumentation/LogEventExtensions.cs b/src/NzbDrone.Common/Instrumentation/LogEventExtensions.cs similarity index 96% rename from NzbDrone.Common/Instrumentation/LogEventExtensions.cs rename to src/NzbDrone.Common/Instrumentation/LogEventExtensions.cs index 373aa9201..6b1ab2e84 100644 --- a/NzbDrone.Common/Instrumentation/LogEventExtensions.cs +++ b/src/NzbDrone.Common/Instrumentation/LogEventExtensions.cs @@ -1,39 +1,39 @@ -using System; -using NLog; -using NzbDrone.Common.Serializer; - -namespace NzbDrone.Common.Instrumentation -{ - public static class LogEventExtensions - { - public static string GetHash(this LogEventInfo logEvent) - { - var stackString = logEvent.StackTrace.ToJson(); - var hashSeed = String.Concat(logEvent.LoggerName, logEvent.Exception.GetType().ToString(), stackString, logEvent.Level); - return HashUtil.CalculateCrc(hashSeed); - } - - public static string GetFormattedMessage(this LogEventInfo logEvent) - { - var message = logEvent.FormattedMessage; - - if (logEvent.Exception != null) - { - if (logEvent.Exception != null) - { - if (String.IsNullOrWhiteSpace(message)) - { - message = logEvent.Exception.Message; - } - else - { - message += ": " + logEvent.Exception.Message; - } - } - - } - - return message; - } - } +using System; +using NLog; +using NzbDrone.Common.Serializer; + +namespace NzbDrone.Common.Instrumentation +{ + public static class LogEventExtensions + { + public static string GetHash(this LogEventInfo logEvent) + { + var stackString = logEvent.StackTrace.ToJson(); + var hashSeed = String.Concat(logEvent.LoggerName, logEvent.Exception.GetType().ToString(), stackString, logEvent.Level); + return HashUtil.CalculateCrc(hashSeed); + } + + public static string GetFormattedMessage(this LogEventInfo logEvent) + { + var message = logEvent.FormattedMessage; + + if (logEvent.Exception != null) + { + if (logEvent.Exception != null) + { + if (String.IsNullOrWhiteSpace(message)) + { + message = logEvent.Exception.Message; + } + else + { + message += ": " + logEvent.Exception.Message; + } + } + + } + + return message; + } + } } \ No newline at end of file diff --git a/NzbDrone.Common/Instrumentation/LogTargets.cs b/src/NzbDrone.Common/Instrumentation/LogTargets.cs similarity index 100% rename from NzbDrone.Common/Instrumentation/LogTargets.cs rename to src/NzbDrone.Common/Instrumentation/LogTargets.cs diff --git a/NzbDrone.Common/Instrumentation/LogglyTarget.cs b/src/NzbDrone.Common/Instrumentation/LogglyTarget.cs similarity index 96% rename from NzbDrone.Common/Instrumentation/LogglyTarget.cs rename to src/NzbDrone.Common/Instrumentation/LogglyTarget.cs index 8f2817581..ae246eb41 100644 --- a/NzbDrone.Common/Instrumentation/LogglyTarget.cs +++ b/src/NzbDrone.Common/Instrumentation/LogglyTarget.cs @@ -1,63 +1,63 @@ -using System.Collections.Generic; -using NLog; -using NLog.Layouts; -using NLog.Targets; -using NzbDrone.Common.EnvironmentInfo; -using NzbDrone.Common.Serializer; -using Logger = Loggly.Logger; - -namespace NzbDrone.Common.Instrumentation -{ - public class LogglyTarget : TargetWithLayout - { - private Logger _logger; - - public LogglyTarget() - { - Layout = new SimpleLayout("${callsite:className=false:fileName=false:includeSourcePath=false:methodName=true}"); - - } - - protected override void InitializeTarget() - { - string apiKey = string.Empty; - - if (RuntimeInfo.IsProduction) - { - apiKey = "4c4ecb69-d1b9-4e2a-b54b-b0c4cc143a95"; - } - else - { - apiKey = "d344a321-b107-45c4-a548-77138f446510"; - } - - _logger = new Logger(apiKey); - } - - - protected override void Write(LogEventInfo logEvent) - { - var dictionary = new Dictionary(); - - if (logEvent.Exception != null) - { - dictionary.Add("ex", logEvent.Exception.ToString()); - dictionary.Add("extyp", logEvent.Exception.GetType().Name); - dictionary.Add("hash", logEvent.GetHash()); - - foreach (var key in logEvent.Exception.Data.Keys) - { - dictionary.Add(key.ToString(), logEvent.Exception.Data[key]); - } - } - - dictionary.Add("logger", logEvent.LoggerName); - dictionary.Add("method", Layout.Render(logEvent)); - dictionary.Add("level", logEvent.Level.Name); - dictionary.Add("message", logEvent.GetFormattedMessage()); - dictionary.Add("ver", BuildInfo.Version.ToString()); - - _logger.Log(dictionary.ToJson()); - } - } +using System.Collections.Generic; +using NLog; +using NLog.Layouts; +using NLog.Targets; +using NzbDrone.Common.EnvironmentInfo; +using NzbDrone.Common.Serializer; +using Logger = Loggly.Logger; + +namespace NzbDrone.Common.Instrumentation +{ + public class LogglyTarget : TargetWithLayout + { + private Logger _logger; + + public LogglyTarget() + { + Layout = new SimpleLayout("${callsite:className=false:fileName=false:includeSourcePath=false:methodName=true}"); + + } + + protected override void InitializeTarget() + { + string apiKey = string.Empty; + + if (RuntimeInfo.IsProduction) + { + apiKey = "4c4ecb69-d1b9-4e2a-b54b-b0c4cc143a95"; + } + else + { + apiKey = "d344a321-b107-45c4-a548-77138f446510"; + } + + _logger = new Logger(apiKey); + } + + + protected override void Write(LogEventInfo logEvent) + { + var dictionary = new Dictionary(); + + if (logEvent.Exception != null) + { + dictionary.Add("ex", logEvent.Exception.ToString()); + dictionary.Add("extyp", logEvent.Exception.GetType().Name); + dictionary.Add("hash", logEvent.GetHash()); + + foreach (var key in logEvent.Exception.Data.Keys) + { + dictionary.Add(key.ToString(), logEvent.Exception.Data[key]); + } + } + + dictionary.Add("logger", logEvent.LoggerName); + dictionary.Add("method", Layout.Render(logEvent)); + dictionary.Add("level", logEvent.Level.Name); + dictionary.Add("message", logEvent.GetFormattedMessage()); + dictionary.Add("ver", BuildInfo.Version.ToString()); + + _logger.Log(dictionary.ToJson()); + } + } } \ No newline at end of file diff --git a/NzbDrone.Common/Instrumentation/NzbDroneLogger.cs b/src/NzbDrone.Common/Instrumentation/NzbDroneLogger.cs similarity index 100% rename from NzbDrone.Common/Instrumentation/NzbDroneLogger.cs rename to src/NzbDrone.Common/Instrumentation/NzbDroneLogger.cs diff --git a/NzbDrone.Common/Instrumentation/VersionLayoutRenderer.cs b/src/NzbDrone.Common/Instrumentation/VersionLayoutRenderer.cs similarity index 100% rename from NzbDrone.Common/Instrumentation/VersionLayoutRenderer.cs rename to src/NzbDrone.Common/Instrumentation/VersionLayoutRenderer.cs diff --git a/NzbDrone.Common/Messaging/IEvent.cs b/src/NzbDrone.Common/Messaging/IEvent.cs similarity index 100% rename from NzbDrone.Common/Messaging/IEvent.cs rename to src/NzbDrone.Common/Messaging/IEvent.cs diff --git a/NzbDrone.Common/Messaging/IMessage.cs b/src/NzbDrone.Common/Messaging/IMessage.cs similarity index 100% rename from NzbDrone.Common/Messaging/IMessage.cs rename to src/NzbDrone.Common/Messaging/IMessage.cs diff --git a/NzbDrone.Common/Model/ProcessInfo.cs b/src/NzbDrone.Common/Model/ProcessInfo.cs similarity index 100% rename from NzbDrone.Common/Model/ProcessInfo.cs rename to src/NzbDrone.Common/Model/ProcessInfo.cs diff --git a/NzbDrone.Common/NzbDrone.Common.csproj b/src/NzbDrone.Common/NzbDrone.Common.csproj similarity index 98% rename from NzbDrone.Common/NzbDrone.Common.csproj rename to src/NzbDrone.Common/NzbDrone.Common.csproj index 91c71c005..869176ecb 100644 --- a/NzbDrone.Common/NzbDrone.Common.csproj +++ b/src/NzbDrone.Common/NzbDrone.Common.csproj @@ -19,7 +19,7 @@ true - ..\_output\ + ..\..\_output\ DEBUG;TRACE full x86 @@ -27,7 +27,7 @@ MinimumRecommendedRules.ruleset - ..\_output\ + ..\..\_output\ TRACE true pdbonly diff --git a/NzbDrone.Common/PathEqualityComparer.cs b/src/NzbDrone.Common/PathEqualityComparer.cs similarity index 100% rename from NzbDrone.Common/PathEqualityComparer.cs rename to src/NzbDrone.Common/PathEqualityComparer.cs diff --git a/NzbDrone.Common/PathExtensions.cs b/src/NzbDrone.Common/PathExtensions.cs similarity index 100% rename from NzbDrone.Common/PathExtensions.cs rename to src/NzbDrone.Common/PathExtensions.cs diff --git a/NzbDrone.Common/Processes/ProcessOutput.cs b/src/NzbDrone.Common/Processes/ProcessOutput.cs similarity index 100% rename from NzbDrone.Common/Processes/ProcessOutput.cs rename to src/NzbDrone.Common/Processes/ProcessOutput.cs diff --git a/NzbDrone.Common/Processes/ProcessProvider.cs b/src/NzbDrone.Common/Processes/ProcessProvider.cs similarity index 100% rename from NzbDrone.Common/Processes/ProcessProvider.cs rename to src/NzbDrone.Common/Processes/ProcessProvider.cs diff --git a/NzbDrone.Common/Properties/AssemblyInfo.cs b/src/NzbDrone.Common/Properties/AssemblyInfo.cs similarity index 100% rename from NzbDrone.Common/Properties/AssemblyInfo.cs rename to src/NzbDrone.Common/Properties/AssemblyInfo.cs diff --git a/NzbDrone.Common/Properties/SharedAssemblyInfo.cs b/src/NzbDrone.Common/Properties/SharedAssemblyInfo.cs similarity index 100% rename from NzbDrone.Common/Properties/SharedAssemblyInfo.cs rename to src/NzbDrone.Common/Properties/SharedAssemblyInfo.cs diff --git a/NzbDrone.Common/Reflection/ReflectionExtensions.cs b/src/NzbDrone.Common/Reflection/ReflectionExtensions.cs similarity index 100% rename from NzbDrone.Common/Reflection/ReflectionExtensions.cs rename to src/NzbDrone.Common/Reflection/ReflectionExtensions.cs diff --git a/NzbDrone.Common/Security/IgnoreCertErrorPolicy.cs b/src/NzbDrone.Common/Security/IgnoreCertErrorPolicy.cs similarity index 100% rename from NzbDrone.Common/Security/IgnoreCertErrorPolicy.cs rename to src/NzbDrone.Common/Security/IgnoreCertErrorPolicy.cs diff --git a/NzbDrone.Common/Serializer/IntConverter.cs b/src/NzbDrone.Common/Serializer/IntConverter.cs similarity index 100% rename from NzbDrone.Common/Serializer/IntConverter.cs rename to src/NzbDrone.Common/Serializer/IntConverter.cs diff --git a/NzbDrone.Common/Serializer/Json.cs b/src/NzbDrone.Common/Serializer/Json.cs similarity index 100% rename from NzbDrone.Common/Serializer/Json.cs rename to src/NzbDrone.Common/Serializer/Json.cs diff --git a/NzbDrone.Common/ServiceFactory.cs b/src/NzbDrone.Common/ServiceFactory.cs similarity index 100% rename from NzbDrone.Common/ServiceFactory.cs rename to src/NzbDrone.Common/ServiceFactory.cs diff --git a/NzbDrone.Common/ServiceProvider.cs b/src/NzbDrone.Common/ServiceProvider.cs similarity index 100% rename from NzbDrone.Common/ServiceProvider.cs rename to src/NzbDrone.Common/ServiceProvider.cs diff --git a/NzbDrone.Common/Services.cs b/src/NzbDrone.Common/Services.cs similarity index 100% rename from NzbDrone.Common/Services.cs rename to src/NzbDrone.Common/Services.cs diff --git a/NzbDrone.Common/StringExtensions.cs b/src/NzbDrone.Common/StringExtensions.cs similarity index 100% rename from NzbDrone.Common/StringExtensions.cs rename to src/NzbDrone.Common/StringExtensions.cs diff --git a/NzbDrone.Common/TPL/LimitedConcurrencyLevelTaskScheduler.cs b/src/NzbDrone.Common/TPL/LimitedConcurrencyLevelTaskScheduler.cs similarity index 100% rename from NzbDrone.Common/TPL/LimitedConcurrencyLevelTaskScheduler.cs rename to src/NzbDrone.Common/TPL/LimitedConcurrencyLevelTaskScheduler.cs diff --git a/NzbDrone.Common/TPL/TaskExtensions.cs b/src/NzbDrone.Common/TPL/TaskExtensions.cs similarity index 100% rename from NzbDrone.Common/TPL/TaskExtensions.cs rename to src/NzbDrone.Common/TPL/TaskExtensions.cs diff --git a/NzbDrone.Common/TinyIoC.cs b/src/NzbDrone.Common/TinyIoC.cs similarity index 100% rename from NzbDrone.Common/TinyIoC.cs rename to src/NzbDrone.Common/TinyIoC.cs diff --git a/NzbDrone.Common/TryParseExtension.cs b/src/NzbDrone.Common/TryParseExtension.cs similarity index 100% rename from NzbDrone.Common/TryParseExtension.cs rename to src/NzbDrone.Common/TryParseExtension.cs diff --git a/NzbDrone.Common/packages.config b/src/NzbDrone.Common/packages.config similarity index 100% rename from NzbDrone.Common/packages.config rename to src/NzbDrone.Common/packages.config diff --git a/NzbDrone.Console/ConsoleAlerts.cs b/src/NzbDrone.Console/ConsoleAlerts.cs similarity index 100% rename from NzbDrone.Console/ConsoleAlerts.cs rename to src/NzbDrone.Console/ConsoleAlerts.cs diff --git a/NzbDrone.Console/ConsoleApp.cs b/src/NzbDrone.Console/ConsoleApp.cs similarity index 100% rename from NzbDrone.Console/ConsoleApp.cs rename to src/NzbDrone.Console/ConsoleApp.cs diff --git a/NzbDrone.Console/NzbDrone.Console.csproj b/src/NzbDrone.Console/NzbDrone.Console.csproj similarity index 98% rename from NzbDrone.Console/NzbDrone.Console.csproj rename to src/NzbDrone.Console/NzbDrone.Console.csproj index cec173fe1..f4351791a 100644 --- a/NzbDrone.Console/NzbDrone.Console.csproj +++ b/src/NzbDrone.Console/NzbDrone.Console.csproj @@ -37,7 +37,7 @@ true full false - ..\_output\ + ..\..\_output\ DEBUG;TRACE prompt 4 @@ -48,7 +48,7 @@ x86 pdbonly true - ..\_output\ + ..\..\_output\ TRACE prompt 4 diff --git a/NzbDrone.Console/Properties/AssemblyInfo.cs b/src/NzbDrone.Console/Properties/AssemblyInfo.cs similarity index 100% rename from NzbDrone.Console/Properties/AssemblyInfo.cs rename to src/NzbDrone.Console/Properties/AssemblyInfo.cs diff --git a/NzbDrone.Console/packages.config b/src/NzbDrone.Console/packages.config similarity index 100% rename from NzbDrone.Console/packages.config rename to src/NzbDrone.Console/packages.config diff --git a/NzbDrone.Core.Test/Configuration/ConfigCachingFixture.cs b/src/NzbDrone.Core.Test/Configuration/ConfigCachingFixture.cs similarity index 100% rename from NzbDrone.Core.Test/Configuration/ConfigCachingFixture.cs rename to src/NzbDrone.Core.Test/Configuration/ConfigCachingFixture.cs diff --git a/NzbDrone.Core.Test/Configuration/ConfigServiceFixture.cs b/src/NzbDrone.Core.Test/Configuration/ConfigServiceFixture.cs similarity index 100% rename from NzbDrone.Core.Test/Configuration/ConfigServiceFixture.cs rename to src/NzbDrone.Core.Test/Configuration/ConfigServiceFixture.cs diff --git a/NzbDrone.Core.Test/DataAugmentationFixture/Scene/SceneMappingProxyFixture.cs b/src/NzbDrone.Core.Test/DataAugmentationFixture/Scene/SceneMappingProxyFixture.cs similarity index 100% rename from NzbDrone.Core.Test/DataAugmentationFixture/Scene/SceneMappingProxyFixture.cs rename to src/NzbDrone.Core.Test/DataAugmentationFixture/Scene/SceneMappingProxyFixture.cs diff --git a/NzbDrone.Core.Test/DataAugmentationFixture/Scene/SceneMappingServiceFixture.cs b/src/NzbDrone.Core.Test/DataAugmentationFixture/Scene/SceneMappingServiceFixture.cs similarity index 100% rename from NzbDrone.Core.Test/DataAugmentationFixture/Scene/SceneMappingServiceFixture.cs rename to src/NzbDrone.Core.Test/DataAugmentationFixture/Scene/SceneMappingServiceFixture.cs diff --git a/NzbDrone.Core.Test/Datastore/BasicRepositoryFixture.cs b/src/NzbDrone.Core.Test/Datastore/BasicRepositoryFixture.cs similarity index 100% rename from NzbDrone.Core.Test/Datastore/BasicRepositoryFixture.cs rename to src/NzbDrone.Core.Test/Datastore/BasicRepositoryFixture.cs diff --git a/NzbDrone.Core.Test/Datastore/Converters/ProviderSettingConverterFixture.cs b/src/NzbDrone.Core.Test/Datastore/Converters/ProviderSettingConverterFixture.cs similarity index 100% rename from NzbDrone.Core.Test/Datastore/Converters/ProviderSettingConverterFixture.cs rename to src/NzbDrone.Core.Test/Datastore/Converters/ProviderSettingConverterFixture.cs diff --git a/NzbDrone.Core.Test/Datastore/DatabaseRelationshipFixture.cs b/src/NzbDrone.Core.Test/Datastore/DatabaseRelationshipFixture.cs similarity index 100% rename from NzbDrone.Core.Test/Datastore/DatabaseRelationshipFixture.cs rename to src/NzbDrone.Core.Test/Datastore/DatabaseRelationshipFixture.cs diff --git a/NzbDrone.Core.Test/Datastore/MappingExtentionFixture.cs b/src/NzbDrone.Core.Test/Datastore/MappingExtentionFixture.cs similarity index 100% rename from NzbDrone.Core.Test/Datastore/MappingExtentionFixture.cs rename to src/NzbDrone.Core.Test/Datastore/MappingExtentionFixture.cs diff --git a/NzbDrone.Core.Test/Datastore/ObjectDatabaseFixture.cs b/src/NzbDrone.Core.Test/Datastore/ObjectDatabaseFixture.cs similarity index 100% rename from NzbDrone.Core.Test/Datastore/ObjectDatabaseFixture.cs rename to src/NzbDrone.Core.Test/Datastore/ObjectDatabaseFixture.cs diff --git a/NzbDrone.Core.Test/Datastore/PagingSpecExtenstionsTests/PagingOffsetFixture.cs b/src/NzbDrone.Core.Test/Datastore/PagingSpecExtenstionsTests/PagingOffsetFixture.cs similarity index 100% rename from NzbDrone.Core.Test/Datastore/PagingSpecExtenstionsTests/PagingOffsetFixture.cs rename to src/NzbDrone.Core.Test/Datastore/PagingSpecExtenstionsTests/PagingOffsetFixture.cs diff --git a/NzbDrone.Core.Test/Datastore/PagingSpecExtenstionsTests/ToSortDirectionFixture.cs b/src/NzbDrone.Core.Test/Datastore/PagingSpecExtenstionsTests/ToSortDirectionFixture.cs similarity index 100% rename from NzbDrone.Core.Test/Datastore/PagingSpecExtenstionsTests/ToSortDirectionFixture.cs rename to src/NzbDrone.Core.Test/Datastore/PagingSpecExtenstionsTests/ToSortDirectionFixture.cs diff --git a/NzbDrone.Core.Test/Datastore/ReflectionStrategyFixture/Benchmarks.cs b/src/NzbDrone.Core.Test/Datastore/ReflectionStrategyFixture/Benchmarks.cs similarity index 100% rename from NzbDrone.Core.Test/Datastore/ReflectionStrategyFixture/Benchmarks.cs rename to src/NzbDrone.Core.Test/Datastore/ReflectionStrategyFixture/Benchmarks.cs diff --git a/NzbDrone.Core.Test/Datastore/SQLiteMigrationHelperTests/AlterFixture.cs b/src/NzbDrone.Core.Test/Datastore/SQLiteMigrationHelperTests/AlterFixture.cs similarity index 100% rename from NzbDrone.Core.Test/Datastore/SQLiteMigrationHelperTests/AlterFixture.cs rename to src/NzbDrone.Core.Test/Datastore/SQLiteMigrationHelperTests/AlterFixture.cs diff --git a/NzbDrone.Core.Test/Datastore/SQLiteMigrationHelperTests/DuplicateFixture.cs b/src/NzbDrone.Core.Test/Datastore/SQLiteMigrationHelperTests/DuplicateFixture.cs similarity index 100% rename from NzbDrone.Core.Test/Datastore/SQLiteMigrationHelperTests/DuplicateFixture.cs rename to src/NzbDrone.Core.Test/Datastore/SQLiteMigrationHelperTests/DuplicateFixture.cs diff --git a/NzbDrone.Core.Test/DecisionEngineTests/AcceptableSizeSpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/AcceptableSizeSpecificationFixture.cs similarity index 100% rename from NzbDrone.Core.Test/DecisionEngineTests/AcceptableSizeSpecificationFixture.cs rename to src/NzbDrone.Core.Test/DecisionEngineTests/AcceptableSizeSpecificationFixture.cs diff --git a/NzbDrone.Core.Test/DecisionEngineTests/CutoffSpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/CutoffSpecificationFixture.cs similarity index 100% rename from NzbDrone.Core.Test/DecisionEngineTests/CutoffSpecificationFixture.cs rename to src/NzbDrone.Core.Test/DecisionEngineTests/CutoffSpecificationFixture.cs diff --git a/NzbDrone.Core.Test/DecisionEngineTests/DownloadDecisionMakerFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/DownloadDecisionMakerFixture.cs similarity index 100% rename from NzbDrone.Core.Test/DecisionEngineTests/DownloadDecisionMakerFixture.cs rename to src/NzbDrone.Core.Test/DecisionEngineTests/DownloadDecisionMakerFixture.cs diff --git a/NzbDrone.Core.Test/DecisionEngineTests/LanguageSpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/LanguageSpecificationFixture.cs similarity index 100% rename from NzbDrone.Core.Test/DecisionEngineTests/LanguageSpecificationFixture.cs rename to src/NzbDrone.Core.Test/DecisionEngineTests/LanguageSpecificationFixture.cs diff --git a/NzbDrone.Core.Test/DecisionEngineTests/MonitoredEpisodeSpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/MonitoredEpisodeSpecificationFixture.cs similarity index 100% rename from NzbDrone.Core.Test/DecisionEngineTests/MonitoredEpisodeSpecificationFixture.cs rename to src/NzbDrone.Core.Test/DecisionEngineTests/MonitoredEpisodeSpecificationFixture.cs diff --git a/NzbDrone.Core.Test/DecisionEngineTests/NotRestrictedReleaseSpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/NotRestrictedReleaseSpecificationFixture.cs similarity index 100% rename from NzbDrone.Core.Test/DecisionEngineTests/NotRestrictedReleaseSpecificationFixture.cs rename to src/NzbDrone.Core.Test/DecisionEngineTests/NotRestrictedReleaseSpecificationFixture.cs diff --git a/NzbDrone.Core.Test/DecisionEngineTests/QualityAllowedByProfileSpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/QualityAllowedByProfileSpecificationFixture.cs similarity index 100% rename from NzbDrone.Core.Test/DecisionEngineTests/QualityAllowedByProfileSpecificationFixture.cs rename to src/NzbDrone.Core.Test/DecisionEngineTests/QualityAllowedByProfileSpecificationFixture.cs diff --git a/NzbDrone.Core.Test/DecisionEngineTests/QualityUpgradeSpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/QualityUpgradeSpecificationFixture.cs similarity index 100% rename from NzbDrone.Core.Test/DecisionEngineTests/QualityUpgradeSpecificationFixture.cs rename to src/NzbDrone.Core.Test/DecisionEngineTests/QualityUpgradeSpecificationFixture.cs diff --git a/NzbDrone.Core.Test/DecisionEngineTests/RetentionSpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/RetentionSpecificationFixture.cs similarity index 100% rename from NzbDrone.Core.Test/DecisionEngineTests/RetentionSpecificationFixture.cs rename to src/NzbDrone.Core.Test/DecisionEngineTests/RetentionSpecificationFixture.cs diff --git a/NzbDrone.Core.Test/DecisionEngineTests/RssSync/ProperSpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/RssSync/ProperSpecificationFixture.cs similarity index 100% rename from NzbDrone.Core.Test/DecisionEngineTests/RssSync/ProperSpecificationFixture.cs rename to src/NzbDrone.Core.Test/DecisionEngineTests/RssSync/ProperSpecificationFixture.cs diff --git a/NzbDrone.Core.Test/DecisionEngineTests/UpgradeDiskSpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/UpgradeDiskSpecificationFixture.cs similarity index 100% rename from NzbDrone.Core.Test/DecisionEngineTests/UpgradeDiskSpecificationFixture.cs rename to src/NzbDrone.Core.Test/DecisionEngineTests/UpgradeDiskSpecificationFixture.cs diff --git a/NzbDrone.Core.Test/DecisionEngineTests/UpgradeHistorySpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/UpgradeHistorySpecificationFixture.cs similarity index 100% rename from NzbDrone.Core.Test/DecisionEngineTests/UpgradeHistorySpecificationFixture.cs rename to src/NzbDrone.Core.Test/DecisionEngineTests/UpgradeHistorySpecificationFixture.cs diff --git a/NzbDrone.Core.Test/Download/DownloadApprovedReportsTests/DownloadApprovedFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadApprovedReportsTests/DownloadApprovedFixture.cs similarity index 100% rename from NzbDrone.Core.Test/Download/DownloadApprovedReportsTests/DownloadApprovedFixture.cs rename to src/NzbDrone.Core.Test/Download/DownloadApprovedReportsTests/DownloadApprovedFixture.cs diff --git a/NzbDrone.Core.Test/Download/DownloadApprovedReportsTests/GetQualifiedReportsFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadApprovedReportsTests/GetQualifiedReportsFixture.cs similarity index 100% rename from NzbDrone.Core.Test/Download/DownloadApprovedReportsTests/GetQualifiedReportsFixture.cs rename to src/NzbDrone.Core.Test/Download/DownloadApprovedReportsTests/GetQualifiedReportsFixture.cs diff --git a/NzbDrone.Core.Test/Download/DownloadClientTests/BlackholeProviderFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadClientTests/BlackholeProviderFixture.cs similarity index 100% rename from NzbDrone.Core.Test/Download/DownloadClientTests/BlackholeProviderFixture.cs rename to src/NzbDrone.Core.Test/Download/DownloadClientTests/BlackholeProviderFixture.cs diff --git a/NzbDrone.Core.Test/Download/DownloadClientTests/NzbgetProviderTests/DownloadNzbFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadClientTests/NzbgetProviderTests/DownloadNzbFixture.cs similarity index 100% rename from NzbDrone.Core.Test/Download/DownloadClientTests/NzbgetProviderTests/DownloadNzbFixture.cs rename to src/NzbDrone.Core.Test/Download/DownloadClientTests/NzbgetProviderTests/DownloadNzbFixture.cs diff --git a/NzbDrone.Core.Test/Download/DownloadClientTests/NzbgetProviderTests/QueueFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadClientTests/NzbgetProviderTests/QueueFixture.cs similarity index 100% rename from NzbDrone.Core.Test/Download/DownloadClientTests/NzbgetProviderTests/QueueFixture.cs rename to src/NzbDrone.Core.Test/Download/DownloadClientTests/NzbgetProviderTests/QueueFixture.cs diff --git a/NzbDrone.Core.Test/Download/DownloadClientTests/PneumaticProviderFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadClientTests/PneumaticProviderFixture.cs similarity index 100% rename from NzbDrone.Core.Test/Download/DownloadClientTests/PneumaticProviderFixture.cs rename to src/NzbDrone.Core.Test/Download/DownloadClientTests/PneumaticProviderFixture.cs diff --git a/NzbDrone.Core.Test/Download/DownloadClientTests/SabProviderTests/QueueFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadClientTests/SabProviderTests/QueueFixture.cs similarity index 100% rename from NzbDrone.Core.Test/Download/DownloadClientTests/SabProviderTests/QueueFixture.cs rename to src/NzbDrone.Core.Test/Download/DownloadClientTests/SabProviderTests/QueueFixture.cs diff --git a/NzbDrone.Core.Test/Download/DownloadClientTests/SabProviderTests/SabProviderFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadClientTests/SabProviderTests/SabProviderFixture.cs similarity index 100% rename from NzbDrone.Core.Test/Download/DownloadClientTests/SabProviderTests/SabProviderFixture.cs rename to src/NzbDrone.Core.Test/Download/DownloadClientTests/SabProviderTests/SabProviderFixture.cs diff --git a/NzbDrone.Core.Test/Download/DownloadServiceFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadServiceFixture.cs similarity index 100% rename from NzbDrone.Core.Test/Download/DownloadServiceFixture.cs rename to src/NzbDrone.Core.Test/Download/DownloadServiceFixture.cs diff --git a/NzbDrone.Core.Test/EpisodeParseResultTest.cs b/src/NzbDrone.Core.Test/EpisodeParseResultTest.cs similarity index 100% rename from NzbDrone.Core.Test/EpisodeParseResultTest.cs rename to src/NzbDrone.Core.Test/EpisodeParseResultTest.cs diff --git a/NzbDrone.Core.Test/Files/Categories_json.txt b/src/NzbDrone.Core.Test/Files/Categories_json.txt similarity index 100% rename from NzbDrone.Core.Test/Files/Categories_json.txt rename to src/NzbDrone.Core.Test/Files/Categories_json.txt diff --git a/NzbDrone.Core.Test/Files/History.txt b/src/NzbDrone.Core.Test/Files/History.txt similarity index 100% rename from NzbDrone.Core.Test/Files/History.txt rename to src/NzbDrone.Core.Test/Files/History.txt diff --git a/NzbDrone.Core.Test/Files/HistoryEmpty.txt b/src/NzbDrone.Core.Test/Files/HistoryEmpty.txt similarity index 100% rename from NzbDrone.Core.Test/Files/HistoryEmpty.txt rename to src/NzbDrone.Core.Test/Files/HistoryEmpty.txt diff --git a/NzbDrone.Core.Test/Files/Indexers/Newznab/unauthorized.xml b/src/NzbDrone.Core.Test/Files/Indexers/Newznab/unauthorized.xml similarity index 100% rename from NzbDrone.Core.Test/Files/Indexers/Newznab/unauthorized.xml rename to src/NzbDrone.Core.Test/Files/Indexers/Newznab/unauthorized.xml diff --git a/NzbDrone.Core.Test/Files/JsonError.txt b/src/NzbDrone.Core.Test/Files/JsonError.txt similarity index 100% rename from NzbDrone.Core.Test/Files/JsonError.txt rename to src/NzbDrone.Core.Test/Files/JsonError.txt diff --git a/NzbDrone.Core.Test/Files/LongOverview.txt b/src/NzbDrone.Core.Test/Files/LongOverview.txt similarity index 100% rename from NzbDrone.Core.Test/Files/LongOverview.txt rename to src/NzbDrone.Core.Test/Files/LongOverview.txt diff --git a/NzbDrone.Core.Test/Files/Media/H264_sample.mp4 b/src/NzbDrone.Core.Test/Files/Media/H264_sample.mp4 similarity index 100% rename from NzbDrone.Core.Test/Files/Media/H264_sample.mp4 rename to src/NzbDrone.Core.Test/Files/Media/H264_sample.mp4 diff --git a/NzbDrone.Core.Test/Files/Nzbget/JsonError.txt b/src/NzbDrone.Core.Test/Files/Nzbget/JsonError.txt similarity index 100% rename from NzbDrone.Core.Test/Files/Nzbget/JsonError.txt rename to src/NzbDrone.Core.Test/Files/Nzbget/JsonError.txt diff --git a/NzbDrone.Core.Test/Files/Nzbget/Queue.txt b/src/NzbDrone.Core.Test/Files/Nzbget/Queue.txt similarity index 100% rename from NzbDrone.Core.Test/Files/Nzbget/Queue.txt rename to src/NzbDrone.Core.Test/Files/Nzbget/Queue.txt diff --git a/NzbDrone.Core.Test/Files/Nzbget/Queue_empty.txt b/src/NzbDrone.Core.Test/Files/Nzbget/Queue_empty.txt similarity index 100% rename from NzbDrone.Core.Test/Files/Nzbget/Queue_empty.txt rename to src/NzbDrone.Core.Test/Files/Nzbget/Queue_empty.txt diff --git a/NzbDrone.Core.Test/Files/Queue.txt b/src/NzbDrone.Core.Test/Files/Queue.txt similarity index 100% rename from NzbDrone.Core.Test/Files/Queue.txt rename to src/NzbDrone.Core.Test/Files/Queue.txt diff --git a/NzbDrone.Core.Test/Files/QueueEmpty.txt b/src/NzbDrone.Core.Test/Files/QueueEmpty.txt similarity index 100% rename from NzbDrone.Core.Test/Files/QueueEmpty.txt rename to src/NzbDrone.Core.Test/Files/QueueEmpty.txt diff --git a/NzbDrone.Core.Test/Files/QueueUnknownPriority.txt b/src/NzbDrone.Core.Test/Files/QueueUnknownPriority.txt similarity index 100% rename from NzbDrone.Core.Test/Files/QueueUnknownPriority.txt rename to src/NzbDrone.Core.Test/Files/QueueUnknownPriority.txt diff --git a/NzbDrone.Core.Test/Files/RSS/SizeParsing/newznab.xml b/src/NzbDrone.Core.Test/Files/RSS/SizeParsing/newznab.xml similarity index 100% rename from NzbDrone.Core.Test/Files/RSS/SizeParsing/newznab.xml rename to src/NzbDrone.Core.Test/Files/RSS/SizeParsing/newznab.xml diff --git a/NzbDrone.Core.Test/Files/RSS/SizeParsing/nzbclub.xml b/src/NzbDrone.Core.Test/Files/RSS/SizeParsing/nzbclub.xml similarity index 100% rename from NzbDrone.Core.Test/Files/RSS/SizeParsing/nzbclub.xml rename to src/NzbDrone.Core.Test/Files/RSS/SizeParsing/nzbclub.xml diff --git a/NzbDrone.Core.Test/Files/RSS/SizeParsing/nzbindex.xml b/src/NzbDrone.Core.Test/Files/RSS/SizeParsing/nzbindex.xml similarity index 100% rename from NzbDrone.Core.Test/Files/RSS/SizeParsing/nzbindex.xml rename to src/NzbDrone.Core.Test/Files/RSS/SizeParsing/nzbindex.xml diff --git a/NzbDrone.Core.Test/Files/RSS/SizeParsing/nzbsrus.xml b/src/NzbDrone.Core.Test/Files/RSS/SizeParsing/nzbsrus.xml similarity index 100% rename from NzbDrone.Core.Test/Files/RSS/SizeParsing/nzbsrus.xml rename to src/NzbDrone.Core.Test/Files/RSS/SizeParsing/nzbsrus.xml diff --git a/NzbDrone.Core.Test/Files/RSS/SizeParsing/omgwtfnzbs.xml b/src/NzbDrone.Core.Test/Files/RSS/SizeParsing/omgwtfnzbs.xml similarity index 100% rename from NzbDrone.Core.Test/Files/RSS/SizeParsing/omgwtfnzbs.xml rename to src/NzbDrone.Core.Test/Files/RSS/SizeParsing/omgwtfnzbs.xml diff --git a/NzbDrone.Core.Test/Files/RSS/filesharingtalk.xml b/src/NzbDrone.Core.Test/Files/RSS/filesharingtalk.xml similarity index 100% rename from NzbDrone.Core.Test/Files/RSS/filesharingtalk.xml rename to src/NzbDrone.Core.Test/Files/RSS/filesharingtalk.xml diff --git a/NzbDrone.Core.Test/Files/RSS/newznab.xml b/src/NzbDrone.Core.Test/Files/RSS/newznab.xml similarity index 100% rename from NzbDrone.Core.Test/Files/RSS/newznab.xml rename to src/NzbDrone.Core.Test/Files/RSS/newznab.xml diff --git a/NzbDrone.Core.Test/Files/RSS/nzbclub.xml b/src/NzbDrone.Core.Test/Files/RSS/nzbclub.xml similarity index 100% rename from NzbDrone.Core.Test/Files/RSS/nzbclub.xml rename to src/NzbDrone.Core.Test/Files/RSS/nzbclub.xml diff --git a/NzbDrone.Core.Test/Files/RSS/nzbindex.xml b/src/NzbDrone.Core.Test/Files/RSS/nzbindex.xml similarity index 100% rename from NzbDrone.Core.Test/Files/RSS/nzbindex.xml rename to src/NzbDrone.Core.Test/Files/RSS/nzbindex.xml diff --git a/NzbDrone.Core.Test/Files/RSS/nzbsrus.xml b/src/NzbDrone.Core.Test/Files/RSS/nzbsrus.xml similarity index 100% rename from NzbDrone.Core.Test/Files/RSS/nzbsrus.xml rename to src/NzbDrone.Core.Test/Files/RSS/nzbsrus.xml diff --git a/NzbDrone.Core.Test/Files/RSS/omgwtfnzbs.xml b/src/NzbDrone.Core.Test/Files/RSS/omgwtfnzbs.xml similarity index 100% rename from NzbDrone.Core.Test/Files/RSS/omgwtfnzbs.xml rename to src/NzbDrone.Core.Test/Files/RSS/omgwtfnzbs.xml diff --git a/NzbDrone.Core.Test/Files/RSS/wombles.xml b/src/NzbDrone.Core.Test/Files/RSS/wombles.xml similarity index 100% rename from NzbDrone.Core.Test/Files/RSS/wombles.xml rename to src/NzbDrone.Core.Test/Files/RSS/wombles.xml diff --git a/NzbDrone.Core.Test/Files/SceneMappings.json b/src/NzbDrone.Core.Test/Files/SceneMappings.json similarity index 100% rename from NzbDrone.Core.Test/Files/SceneMappings.json rename to src/NzbDrone.Core.Test/Files/SceneMappings.json diff --git a/NzbDrone.Core.Test/Files/TestArchive.zip b/src/NzbDrone.Core.Test/Files/TestArchive.zip similarity index 100% rename from NzbDrone.Core.Test/Files/TestArchive.zip rename to src/NzbDrone.Core.Test/Files/TestArchive.zip diff --git a/NzbDrone.Core.Test/Files/Xem/Failure.txt b/src/NzbDrone.Core.Test/Files/Xem/Failure.txt similarity index 100% rename from NzbDrone.Core.Test/Files/Xem/Failure.txt rename to src/NzbDrone.Core.Test/Files/Xem/Failure.txt diff --git a/NzbDrone.Core.Test/Files/Xem/Ids.txt b/src/NzbDrone.Core.Test/Files/Xem/Ids.txt similarity index 100% rename from NzbDrone.Core.Test/Files/Xem/Ids.txt rename to src/NzbDrone.Core.Test/Files/Xem/Ids.txt diff --git a/NzbDrone.Core.Test/Files/Xem/Mappings.txt b/src/NzbDrone.Core.Test/Files/Xem/Mappings.txt similarity index 100% rename from NzbDrone.Core.Test/Files/Xem/Mappings.txt rename to src/NzbDrone.Core.Test/Files/Xem/Mappings.txt diff --git a/NzbDrone.Core.Test/Files/Xem/Names.txt b/src/NzbDrone.Core.Test/Files/Xem/Names.txt similarity index 100% rename from NzbDrone.Core.Test/Files/Xem/Names.txt rename to src/NzbDrone.Core.Test/Files/Xem/Names.txt diff --git a/NzbDrone.Core.Test/FluentTest.cs b/src/NzbDrone.Core.Test/FluentTest.cs similarity index 100% rename from NzbDrone.Core.Test/FluentTest.cs rename to src/NzbDrone.Core.Test/FluentTest.cs diff --git a/NzbDrone.Core.Test/Framework/CoreTest.cs b/src/NzbDrone.Core.Test/Framework/CoreTest.cs similarity index 100% rename from NzbDrone.Core.Test/Framework/CoreTest.cs rename to src/NzbDrone.Core.Test/Framework/CoreTest.cs diff --git a/NzbDrone.Core.Test/Framework/DbTest.cs b/src/NzbDrone.Core.Test/Framework/DbTest.cs similarity index 100% rename from NzbDrone.Core.Test/Framework/DbTest.cs rename to src/NzbDrone.Core.Test/Framework/DbTest.cs diff --git a/NzbDrone.Core.Test/Framework/NBuilderExtensions.cs b/src/NzbDrone.Core.Test/Framework/NBuilderExtensions.cs similarity index 100% rename from NzbDrone.Core.Test/Framework/NBuilderExtensions.cs rename to src/NzbDrone.Core.Test/Framework/NBuilderExtensions.cs diff --git a/NzbDrone.Core.Test/Framework/TestBaseTests.cs b/src/NzbDrone.Core.Test/Framework/TestBaseTests.cs similarity index 100% rename from NzbDrone.Core.Test/Framework/TestBaseTests.cs rename to src/NzbDrone.Core.Test/Framework/TestBaseTests.cs diff --git a/NzbDrone.Core.Test/Framework/TestDbHelper.cs b/src/NzbDrone.Core.Test/Framework/TestDbHelper.cs similarity index 100% rename from NzbDrone.Core.Test/Framework/TestDbHelper.cs rename to src/NzbDrone.Core.Test/Framework/TestDbHelper.cs diff --git a/NzbDrone.Core.Test/HistoryTests/HistoryRepositoryFixture.cs b/src/NzbDrone.Core.Test/HistoryTests/HistoryRepositoryFixture.cs similarity index 100% rename from NzbDrone.Core.Test/HistoryTests/HistoryRepositoryFixture.cs rename to src/NzbDrone.Core.Test/HistoryTests/HistoryRepositoryFixture.cs diff --git a/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedEpisodesFixture.cs b/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedEpisodesFixture.cs similarity index 100% rename from NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedEpisodesFixture.cs rename to src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedEpisodesFixture.cs diff --git a/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedHistoryItemsFixture.cs b/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedHistoryItemsFixture.cs similarity index 100% rename from NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedHistoryItemsFixture.cs rename to src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedHistoryItemsFixture.cs diff --git a/NzbDrone.Core.Test/IndexerSearchTests/FetchAndParseRssServiceFixture.cs b/src/NzbDrone.Core.Test/IndexerSearchTests/FetchAndParseRssServiceFixture.cs similarity index 100% rename from NzbDrone.Core.Test/IndexerSearchTests/FetchAndParseRssServiceFixture.cs rename to src/NzbDrone.Core.Test/IndexerSearchTests/FetchAndParseRssServiceFixture.cs diff --git a/NzbDrone.Core.Test/IndexerSearchTests/SearchDefinitionFixture.cs b/src/NzbDrone.Core.Test/IndexerSearchTests/SearchDefinitionFixture.cs similarity index 100% rename from NzbDrone.Core.Test/IndexerSearchTests/SearchDefinitionFixture.cs rename to src/NzbDrone.Core.Test/IndexerSearchTests/SearchDefinitionFixture.cs diff --git a/NzbDrone.Core.Test/IndexerTests/BasicRssParserFixture.cs b/src/NzbDrone.Core.Test/IndexerTests/BasicRssParserFixture.cs similarity index 100% rename from NzbDrone.Core.Test/IndexerTests/BasicRssParserFixture.cs rename to src/NzbDrone.Core.Test/IndexerTests/BasicRssParserFixture.cs diff --git a/NzbDrone.Core.Test/IndexerTests/FetchAndParseRssServiceFixture.cs b/src/NzbDrone.Core.Test/IndexerTests/FetchAndParseRssServiceFixture.cs similarity index 100% rename from NzbDrone.Core.Test/IndexerTests/FetchAndParseRssServiceFixture.cs rename to src/NzbDrone.Core.Test/IndexerTests/FetchAndParseRssServiceFixture.cs diff --git a/NzbDrone.Core.Test/IndexerTests/IndexerServiceFixture.cs b/src/NzbDrone.Core.Test/IndexerTests/IndexerServiceFixture.cs similarity index 100% rename from NzbDrone.Core.Test/IndexerTests/IndexerServiceFixture.cs rename to src/NzbDrone.Core.Test/IndexerTests/IndexerServiceFixture.cs diff --git a/NzbDrone.Core.Test/IndexerTests/IntegrationTests/IndexerIntegrationTests.cs b/src/NzbDrone.Core.Test/IndexerTests/IntegrationTests/IndexerIntegrationTests.cs similarity index 100% rename from NzbDrone.Core.Test/IndexerTests/IntegrationTests/IndexerIntegrationTests.cs rename to src/NzbDrone.Core.Test/IndexerTests/IntegrationTests/IndexerIntegrationTests.cs diff --git a/NzbDrone.Core.Test/IndexerTests/XElementExtensionsFixture.cs b/src/NzbDrone.Core.Test/IndexerTests/XElementExtensionsFixture.cs similarity index 100% rename from NzbDrone.Core.Test/IndexerTests/XElementExtensionsFixture.cs rename to src/NzbDrone.Core.Test/IndexerTests/XElementExtensionsFixture.cs diff --git a/NzbDrone.Core.Test/InstrumentationTests/DatabaseTargetFixture.cs b/src/NzbDrone.Core.Test/InstrumentationTests/DatabaseTargetFixture.cs similarity index 100% rename from NzbDrone.Core.Test/InstrumentationTests/DatabaseTargetFixture.cs rename to src/NzbDrone.Core.Test/InstrumentationTests/DatabaseTargetFixture.cs diff --git a/NzbDrone.Core.Test/JobTests/JobRepositoryFixture.cs b/src/NzbDrone.Core.Test/JobTests/JobRepositoryFixture.cs similarity index 100% rename from NzbDrone.Core.Test/JobTests/JobRepositoryFixture.cs rename to src/NzbDrone.Core.Test/JobTests/JobRepositoryFixture.cs diff --git a/NzbDrone.Core.Test/JobTests/TestJobs.cs b/src/NzbDrone.Core.Test/JobTests/TestJobs.cs similarity index 100% rename from NzbDrone.Core.Test/JobTests/TestJobs.cs rename to src/NzbDrone.Core.Test/JobTests/TestJobs.cs diff --git a/NzbDrone.Core.Test/MediaCoverTests/CoverExistsSpecificationFixture.cs b/src/NzbDrone.Core.Test/MediaCoverTests/CoverExistsSpecificationFixture.cs similarity index 96% rename from NzbDrone.Core.Test/MediaCoverTests/CoverExistsSpecificationFixture.cs rename to src/NzbDrone.Core.Test/MediaCoverTests/CoverExistsSpecificationFixture.cs index 0667832f4..b720e5516 100644 --- a/NzbDrone.Core.Test/MediaCoverTests/CoverExistsSpecificationFixture.cs +++ b/src/NzbDrone.Core.Test/MediaCoverTests/CoverExistsSpecificationFixture.cs @@ -1,75 +1,75 @@ -using System.Collections.Generic; -using FluentAssertions; -using Moq; -using NUnit.Framework; -using NzbDrone.Common; -using NzbDrone.Core.MediaCover; -using NzbDrone.Core.Test.Framework; -using NzbDrone.Test.Common; - -namespace NzbDrone.Core.Test.MediaCoverTests -{ - [TestFixture] - public class CoverAlreadyExistsSpecificationFixture : CoreTest - { - private Dictionary _headers; - - [SetUp] - public void Setup() - { - _headers = new Dictionary(); - Mocker.GetMock().Setup(c => c.GetFileSize(It.IsAny())).Returns(100); - Mocker.GetMock().Setup(c => c.GetHeader(It.IsAny())).Returns(_headers); - - } - - - private void GivenFileExistsOnDisk() - { - Mocker.GetMock().Setup(c => c.FileExists(It.IsAny())).Returns(true); - } - - - private void GivenExistingFileSize(long bytes) - { - GivenFileExistsOnDisk(); - Mocker.GetMock().Setup(c => c.GetFileSize(It.IsAny())).Returns(bytes); - - } - - - [Test] - public void should_return_false_if_file_not_exists() - { - Subject.AlreadyExists("http://url", "c:\\file.exe").Should().BeFalse(); - } - - [Test] - public void should_return_false_if_file_exists_but_diffrent_size() - { - GivenExistingFileSize(100); - _headers.Add(HttpProvider.CONTENT_LENGTH_HEADER, "200"); - - Subject.AlreadyExists("http://url", "c:\\file.exe").Should().BeFalse(); - } - - - [Test] - public void should_return_ture_if_file_exists_and_same_size() - { - GivenExistingFileSize(100); - _headers.Add(HttpProvider.CONTENT_LENGTH_HEADER, "100"); - - Subject.AlreadyExists("http://url", "c:\\file.exe").Should().BeTrue(); - } - - [Test] - public void should_return_true_if_there_is_no_size_header_and_file_exist() - { - GivenExistingFileSize(100); - Subject.AlreadyExists("http://url", "c:\\file.exe").Should().BeFalse(); - - ExceptionVerification.ExpectedWarns(1); - } - } +using System.Collections.Generic; +using FluentAssertions; +using Moq; +using NUnit.Framework; +using NzbDrone.Common; +using NzbDrone.Core.MediaCover; +using NzbDrone.Core.Test.Framework; +using NzbDrone.Test.Common; + +namespace NzbDrone.Core.Test.MediaCoverTests +{ + [TestFixture] + public class CoverAlreadyExistsSpecificationFixture : CoreTest + { + private Dictionary _headers; + + [SetUp] + public void Setup() + { + _headers = new Dictionary(); + Mocker.GetMock().Setup(c => c.GetFileSize(It.IsAny())).Returns(100); + Mocker.GetMock().Setup(c => c.GetHeader(It.IsAny())).Returns(_headers); + + } + + + private void GivenFileExistsOnDisk() + { + Mocker.GetMock().Setup(c => c.FileExists(It.IsAny())).Returns(true); + } + + + private void GivenExistingFileSize(long bytes) + { + GivenFileExistsOnDisk(); + Mocker.GetMock().Setup(c => c.GetFileSize(It.IsAny())).Returns(bytes); + + } + + + [Test] + public void should_return_false_if_file_not_exists() + { + Subject.AlreadyExists("http://url", "c:\\file.exe").Should().BeFalse(); + } + + [Test] + public void should_return_false_if_file_exists_but_diffrent_size() + { + GivenExistingFileSize(100); + _headers.Add(HttpProvider.CONTENT_LENGTH_HEADER, "200"); + + Subject.AlreadyExists("http://url", "c:\\file.exe").Should().BeFalse(); + } + + + [Test] + public void should_return_ture_if_file_exists_and_same_size() + { + GivenExistingFileSize(100); + _headers.Add(HttpProvider.CONTENT_LENGTH_HEADER, "100"); + + Subject.AlreadyExists("http://url", "c:\\file.exe").Should().BeTrue(); + } + + [Test] + public void should_return_true_if_there_is_no_size_header_and_file_exist() + { + GivenExistingFileSize(100); + Subject.AlreadyExists("http://url", "c:\\file.exe").Should().BeFalse(); + + ExceptionVerification.ExpectedWarns(1); + } + } } \ No newline at end of file diff --git a/NzbDrone.Core.Test/MediaCoverTests/MediaCoverServiceFixture.cs b/src/NzbDrone.Core.Test/MediaCoverTests/MediaCoverServiceFixture.cs similarity index 100% rename from NzbDrone.Core.Test/MediaCoverTests/MediaCoverServiceFixture.cs rename to src/NzbDrone.Core.Test/MediaCoverTests/MediaCoverServiceFixture.cs diff --git a/NzbDrone.Core.Test/MediaFiles/DownloadedEpisodesImportServiceFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/DownloadedEpisodesImportServiceFixture.cs similarity index 100% rename from NzbDrone.Core.Test/MediaFiles/DownloadedEpisodesImportServiceFixture.cs rename to src/NzbDrone.Core.Test/MediaFiles/DownloadedEpisodesImportServiceFixture.cs diff --git a/NzbDrone.Core.Test/MediaFiles/EpisodeImport/ImportDecisionMakerFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/EpisodeImport/ImportDecisionMakerFixture.cs similarity index 100% rename from NzbDrone.Core.Test/MediaFiles/EpisodeImport/ImportDecisionMakerFixture.cs rename to src/NzbDrone.Core.Test/MediaFiles/EpisodeImport/ImportDecisionMakerFixture.cs diff --git a/NzbDrone.Core.Test/MediaFiles/EpisodeImport/Specifications/FreeSpaceSpecificationFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/EpisodeImport/Specifications/FreeSpaceSpecificationFixture.cs similarity index 100% rename from NzbDrone.Core.Test/MediaFiles/EpisodeImport/Specifications/FreeSpaceSpecificationFixture.cs rename to src/NzbDrone.Core.Test/MediaFiles/EpisodeImport/Specifications/FreeSpaceSpecificationFixture.cs diff --git a/NzbDrone.Core.Test/MediaFiles/EpisodeImport/Specifications/NotInUseSpecificationFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/EpisodeImport/Specifications/NotInUseSpecificationFixture.cs similarity index 100% rename from NzbDrone.Core.Test/MediaFiles/EpisodeImport/Specifications/NotInUseSpecificationFixture.cs rename to src/NzbDrone.Core.Test/MediaFiles/EpisodeImport/Specifications/NotInUseSpecificationFixture.cs diff --git a/NzbDrone.Core.Test/MediaFiles/EpisodeImport/Specifications/NotSampleSpecificationFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/EpisodeImport/Specifications/NotSampleSpecificationFixture.cs similarity index 100% rename from NzbDrone.Core.Test/MediaFiles/EpisodeImport/Specifications/NotSampleSpecificationFixture.cs rename to src/NzbDrone.Core.Test/MediaFiles/EpisodeImport/Specifications/NotSampleSpecificationFixture.cs diff --git a/NzbDrone.Core.Test/MediaFiles/EpisodeImport/Specifications/NotUnpackingSpecificationFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/EpisodeImport/Specifications/NotUnpackingSpecificationFixture.cs similarity index 100% rename from NzbDrone.Core.Test/MediaFiles/EpisodeImport/Specifications/NotUnpackingSpecificationFixture.cs rename to src/NzbDrone.Core.Test/MediaFiles/EpisodeImport/Specifications/NotUnpackingSpecificationFixture.cs diff --git a/NzbDrone.Core.Test/MediaFiles/EpisodeImport/Specifications/UpgradeSpecificationFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/EpisodeImport/Specifications/UpgradeSpecificationFixture.cs similarity index 100% rename from NzbDrone.Core.Test/MediaFiles/EpisodeImport/Specifications/UpgradeSpecificationFixture.cs rename to src/NzbDrone.Core.Test/MediaFiles/EpisodeImport/Specifications/UpgradeSpecificationFixture.cs diff --git a/NzbDrone.Core.Test/MediaFiles/ImportApprovedEpisodesFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/ImportApprovedEpisodesFixture.cs similarity index 100% rename from NzbDrone.Core.Test/MediaFiles/ImportApprovedEpisodesFixture.cs rename to src/NzbDrone.Core.Test/MediaFiles/ImportApprovedEpisodesFixture.cs diff --git a/NzbDrone.Core.Test/MediaFiles/MediaFileRepositoryFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/MediaFileRepositoryFixture.cs similarity index 100% rename from NzbDrone.Core.Test/MediaFiles/MediaFileRepositoryFixture.cs rename to src/NzbDrone.Core.Test/MediaFiles/MediaFileRepositoryFixture.cs diff --git a/NzbDrone.Core.Test/MediaFiles/MediaFileServiceTest.cs b/src/NzbDrone.Core.Test/MediaFiles/MediaFileServiceTest.cs similarity index 100% rename from NzbDrone.Core.Test/MediaFiles/MediaFileServiceTest.cs rename to src/NzbDrone.Core.Test/MediaFiles/MediaFileServiceTest.cs diff --git a/NzbDrone.Core.Test/MediaFiles/MediaFileTableCleanupServiceFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/MediaFileTableCleanupServiceFixture.cs similarity index 100% rename from NzbDrone.Core.Test/MediaFiles/MediaFileTableCleanupServiceFixture.cs rename to src/NzbDrone.Core.Test/MediaFiles/MediaFileTableCleanupServiceFixture.cs diff --git a/NzbDrone.Core.Test/MediaFiles/MediaInfo/VideoFileInfoReaderFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/MediaInfo/VideoFileInfoReaderFixture.cs similarity index 100% rename from NzbDrone.Core.Test/MediaFiles/MediaInfo/VideoFileInfoReaderFixture.cs rename to src/NzbDrone.Core.Test/MediaFiles/MediaInfo/VideoFileInfoReaderFixture.cs diff --git a/NzbDrone.Core.Test/MediaFiles/RenameEpisodeFileServiceFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/RenameEpisodeFileServiceFixture.cs similarity index 100% rename from NzbDrone.Core.Test/MediaFiles/RenameEpisodeFileServiceFixture.cs rename to src/NzbDrone.Core.Test/MediaFiles/RenameEpisodeFileServiceFixture.cs diff --git a/NzbDrone.Core.Test/MediaFiles/UpgradeMediaFileServiceFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/UpgradeMediaFileServiceFixture.cs similarity index 100% rename from NzbDrone.Core.Test/MediaFiles/UpgradeMediaFileServiceFixture.cs rename to src/NzbDrone.Core.Test/MediaFiles/UpgradeMediaFileServiceFixture.cs diff --git a/NzbDrone.Core.Test/Messaging/Commands/CommandEqualityComparerFixture.cs b/src/NzbDrone.Core.Test/Messaging/Commands/CommandEqualityComparerFixture.cs similarity index 100% rename from NzbDrone.Core.Test/Messaging/Commands/CommandEqualityComparerFixture.cs rename to src/NzbDrone.Core.Test/Messaging/Commands/CommandEqualityComparerFixture.cs diff --git a/NzbDrone.Core.Test/Messaging/Commands/CommandExecutorFixture.cs b/src/NzbDrone.Core.Test/Messaging/Commands/CommandExecutorFixture.cs similarity index 100% rename from NzbDrone.Core.Test/Messaging/Commands/CommandExecutorFixture.cs rename to src/NzbDrone.Core.Test/Messaging/Commands/CommandExecutorFixture.cs diff --git a/NzbDrone.Core.Test/Messaging/Commands/CommandFixture.cs b/src/NzbDrone.Core.Test/Messaging/Commands/CommandFixture.cs similarity index 100% rename from NzbDrone.Core.Test/Messaging/Commands/CommandFixture.cs rename to src/NzbDrone.Core.Test/Messaging/Commands/CommandFixture.cs diff --git a/NzbDrone.Core.Test/Messaging/Events/EventAggregatorFixture.cs b/src/NzbDrone.Core.Test/Messaging/Events/EventAggregatorFixture.cs similarity index 100% rename from NzbDrone.Core.Test/Messaging/Events/EventAggregatorFixture.cs rename to src/NzbDrone.Core.Test/Messaging/Events/EventAggregatorFixture.cs diff --git a/NzbDrone.Core.Test/MetadataSourceTests/TraktProxyFixture.cs b/src/NzbDrone.Core.Test/MetadataSourceTests/TraktProxyFixture.cs similarity index 100% rename from NzbDrone.Core.Test/MetadataSourceTests/TraktProxyFixture.cs rename to src/NzbDrone.Core.Test/MetadataSourceTests/TraktProxyFixture.cs diff --git a/NzbDrone.Core.Test/NotificationTests/GrowlProviderTest.cs b/src/NzbDrone.Core.Test/NotificationTests/GrowlProviderTest.cs similarity index 100% rename from NzbDrone.Core.Test/NotificationTests/GrowlProviderTest.cs rename to src/NzbDrone.Core.Test/NotificationTests/GrowlProviderTest.cs diff --git a/NzbDrone.Core.Test/NotificationTests/NotificationServiceFixture.cs b/src/NzbDrone.Core.Test/NotificationTests/NotificationServiceFixture.cs similarity index 100% rename from NzbDrone.Core.Test/NotificationTests/NotificationServiceFixture.cs rename to src/NzbDrone.Core.Test/NotificationTests/NotificationServiceFixture.cs diff --git a/NzbDrone.Core.Test/NotificationTests/PlexProviderTest.cs b/src/NzbDrone.Core.Test/NotificationTests/PlexProviderTest.cs similarity index 100% rename from NzbDrone.Core.Test/NotificationTests/PlexProviderTest.cs rename to src/NzbDrone.Core.Test/NotificationTests/PlexProviderTest.cs diff --git a/NzbDrone.Core.Test/NotificationTests/ProwlProviderTest.cs b/src/NzbDrone.Core.Test/NotificationTests/ProwlProviderTest.cs similarity index 100% rename from NzbDrone.Core.Test/NotificationTests/ProwlProviderTest.cs rename to src/NzbDrone.Core.Test/NotificationTests/ProwlProviderTest.cs diff --git a/NzbDrone.Core.Test/NotificationTests/Xbmc/GetJsonVersionFixture.cs b/src/NzbDrone.Core.Test/NotificationTests/Xbmc/GetJsonVersionFixture.cs similarity index 100% rename from NzbDrone.Core.Test/NotificationTests/Xbmc/GetJsonVersionFixture.cs rename to src/NzbDrone.Core.Test/NotificationTests/Xbmc/GetJsonVersionFixture.cs diff --git a/NzbDrone.Core.Test/NotificationTests/Xbmc/Http/ActivePlayersFixture.cs b/src/NzbDrone.Core.Test/NotificationTests/Xbmc/Http/ActivePlayersFixture.cs similarity index 100% rename from NzbDrone.Core.Test/NotificationTests/Xbmc/Http/ActivePlayersFixture.cs rename to src/NzbDrone.Core.Test/NotificationTests/Xbmc/Http/ActivePlayersFixture.cs diff --git a/NzbDrone.Core.Test/NotificationTests/Xbmc/Http/CheckForErrorFixture.cs b/src/NzbDrone.Core.Test/NotificationTests/Xbmc/Http/CheckForErrorFixture.cs similarity index 100% rename from NzbDrone.Core.Test/NotificationTests/Xbmc/Http/CheckForErrorFixture.cs rename to src/NzbDrone.Core.Test/NotificationTests/Xbmc/Http/CheckForErrorFixture.cs diff --git a/NzbDrone.Core.Test/NotificationTests/Xbmc/Http/GetSeriesPathFixture.cs b/src/NzbDrone.Core.Test/NotificationTests/Xbmc/Http/GetSeriesPathFixture.cs similarity index 100% rename from NzbDrone.Core.Test/NotificationTests/Xbmc/Http/GetSeriesPathFixture.cs rename to src/NzbDrone.Core.Test/NotificationTests/Xbmc/Http/GetSeriesPathFixture.cs diff --git a/NzbDrone.Core.Test/NotificationTests/Xbmc/Http/UpdateFixture.cs b/src/NzbDrone.Core.Test/NotificationTests/Xbmc/Http/UpdateFixture.cs similarity index 100% rename from NzbDrone.Core.Test/NotificationTests/Xbmc/Http/UpdateFixture.cs rename to src/NzbDrone.Core.Test/NotificationTests/Xbmc/Http/UpdateFixture.cs diff --git a/NzbDrone.Core.Test/NotificationTests/Xbmc/Json/ActivePlayersFixture.cs b/src/NzbDrone.Core.Test/NotificationTests/Xbmc/Json/ActivePlayersFixture.cs similarity index 100% rename from NzbDrone.Core.Test/NotificationTests/Xbmc/Json/ActivePlayersFixture.cs rename to src/NzbDrone.Core.Test/NotificationTests/Xbmc/Json/ActivePlayersFixture.cs diff --git a/NzbDrone.Core.Test/NotificationTests/Xbmc/Json/CheckForErrorFixture.cs b/src/NzbDrone.Core.Test/NotificationTests/Xbmc/Json/CheckForErrorFixture.cs similarity index 100% rename from NzbDrone.Core.Test/NotificationTests/Xbmc/Json/CheckForErrorFixture.cs rename to src/NzbDrone.Core.Test/NotificationTests/Xbmc/Json/CheckForErrorFixture.cs diff --git a/NzbDrone.Core.Test/NotificationTests/Xbmc/Json/GetSeriesPathFixture.cs b/src/NzbDrone.Core.Test/NotificationTests/Xbmc/Json/GetSeriesPathFixture.cs similarity index 100% rename from NzbDrone.Core.Test/NotificationTests/Xbmc/Json/GetSeriesPathFixture.cs rename to src/NzbDrone.Core.Test/NotificationTests/Xbmc/Json/GetSeriesPathFixture.cs diff --git a/NzbDrone.Core.Test/NotificationTests/Xbmc/Json/UpdateFixture.cs b/src/NzbDrone.Core.Test/NotificationTests/Xbmc/Json/UpdateFixture.cs similarity index 100% rename from NzbDrone.Core.Test/NotificationTests/Xbmc/Json/UpdateFixture.cs rename to src/NzbDrone.Core.Test/NotificationTests/Xbmc/Json/UpdateFixture.cs diff --git a/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj b/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj similarity index 100% rename from NzbDrone.Core.Test/NzbDrone.Core.Test.csproj rename to src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj diff --git a/NzbDrone.Core.Test/OrganizerTests/BuildFilePathFixture.cs b/src/NzbDrone.Core.Test/OrganizerTests/BuildFilePathFixture.cs similarity index 100% rename from NzbDrone.Core.Test/OrganizerTests/BuildFilePathFixture.cs rename to src/NzbDrone.Core.Test/OrganizerTests/BuildFilePathFixture.cs diff --git a/NzbDrone.Core.Test/OrganizerTests/GetNewFilenameFixture.cs b/src/NzbDrone.Core.Test/OrganizerTests/GetNewFilenameFixture.cs similarity index 100% rename from NzbDrone.Core.Test/OrganizerTests/GetNewFilenameFixture.cs rename to src/NzbDrone.Core.Test/OrganizerTests/GetNewFilenameFixture.cs diff --git a/NzbDrone.Core.Test/ParserTests/ParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/ParserFixture.cs similarity index 100% rename from NzbDrone.Core.Test/ParserTests/ParserFixture.cs rename to src/NzbDrone.Core.Test/ParserTests/ParserFixture.cs diff --git a/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/GetEpisodesFixture.cs b/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/GetEpisodesFixture.cs similarity index 100% rename from NzbDrone.Core.Test/ParserTests/ParsingServiceTests/GetEpisodesFixture.cs rename to src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/GetEpisodesFixture.cs diff --git a/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/MapFixture.cs b/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/MapFixture.cs similarity index 100% rename from NzbDrone.Core.Test/ParserTests/ParsingServiceTests/MapFixture.cs rename to src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/MapFixture.cs diff --git a/NzbDrone.Core.Test/ParserTests/QualityParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/QualityParserFixture.cs similarity index 100% rename from NzbDrone.Core.Test/ParserTests/QualityParserFixture.cs rename to src/NzbDrone.Core.Test/ParserTests/QualityParserFixture.cs diff --git a/NzbDrone.Core.Test/Properties/AssemblyInfo.cs b/src/NzbDrone.Core.Test/Properties/AssemblyInfo.cs similarity index 100% rename from NzbDrone.Core.Test/Properties/AssemblyInfo.cs rename to src/NzbDrone.Core.Test/Properties/AssemblyInfo.cs diff --git a/NzbDrone.Core.Test/ProviderTests/DiskProviderTests/ArchiveProviderFixture.cs b/src/NzbDrone.Core.Test/ProviderTests/DiskProviderTests/ArchiveProviderFixture.cs similarity index 100% rename from NzbDrone.Core.Test/ProviderTests/DiskProviderTests/ArchiveProviderFixture.cs rename to src/NzbDrone.Core.Test/ProviderTests/DiskProviderTests/ArchiveProviderFixture.cs diff --git a/NzbDrone.Core.Test/ProviderTests/DiskProviderTests/FreeDiskSpaceFixture.cs b/src/NzbDrone.Core.Test/ProviderTests/DiskProviderTests/FreeDiskSpaceFixture.cs similarity index 100% rename from NzbDrone.Core.Test/ProviderTests/DiskProviderTests/FreeDiskSpaceFixture.cs rename to src/NzbDrone.Core.Test/ProviderTests/DiskProviderTests/FreeDiskSpaceFixture.cs diff --git a/NzbDrone.Core.Test/ProviderTests/DiskScanProviderTests/GetVideoFilesFixture.cs b/src/NzbDrone.Core.Test/ProviderTests/DiskScanProviderTests/GetVideoFilesFixture.cs similarity index 100% rename from NzbDrone.Core.Test/ProviderTests/DiskScanProviderTests/GetVideoFilesFixture.cs rename to src/NzbDrone.Core.Test/ProviderTests/DiskScanProviderTests/GetVideoFilesFixture.cs diff --git a/NzbDrone.Core.Test/ProviderTests/RecycleBinProviderTests/CleanupFixture.cs b/src/NzbDrone.Core.Test/ProviderTests/RecycleBinProviderTests/CleanupFixture.cs similarity index 100% rename from NzbDrone.Core.Test/ProviderTests/RecycleBinProviderTests/CleanupFixture.cs rename to src/NzbDrone.Core.Test/ProviderTests/RecycleBinProviderTests/CleanupFixture.cs diff --git a/NzbDrone.Core.Test/ProviderTests/RecycleBinProviderTests/DeleteDirectoryFixture.cs b/src/NzbDrone.Core.Test/ProviderTests/RecycleBinProviderTests/DeleteDirectoryFixture.cs similarity index 100% rename from NzbDrone.Core.Test/ProviderTests/RecycleBinProviderTests/DeleteDirectoryFixture.cs rename to src/NzbDrone.Core.Test/ProviderTests/RecycleBinProviderTests/DeleteDirectoryFixture.cs diff --git a/NzbDrone.Core.Test/ProviderTests/RecycleBinProviderTests/DeleteFileFixture.cs b/src/NzbDrone.Core.Test/ProviderTests/RecycleBinProviderTests/DeleteFileFixture.cs similarity index 100% rename from NzbDrone.Core.Test/ProviderTests/RecycleBinProviderTests/DeleteFileFixture.cs rename to src/NzbDrone.Core.Test/ProviderTests/RecycleBinProviderTests/DeleteFileFixture.cs diff --git a/NzbDrone.Core.Test/ProviderTests/RecycleBinProviderTests/EmptyFixture.cs b/src/NzbDrone.Core.Test/ProviderTests/RecycleBinProviderTests/EmptyFixture.cs similarity index 100% rename from NzbDrone.Core.Test/ProviderTests/RecycleBinProviderTests/EmptyFixture.cs rename to src/NzbDrone.Core.Test/ProviderTests/RecycleBinProviderTests/EmptyFixture.cs diff --git a/NzbDrone.Core.Test/Providers/XemProxyFixture.cs b/src/NzbDrone.Core.Test/Providers/XemProxyFixture.cs similarity index 100% rename from NzbDrone.Core.Test/Providers/XemProxyFixture.cs rename to src/NzbDrone.Core.Test/Providers/XemProxyFixture.cs diff --git a/NzbDrone.Core.Test/Qualities/QualityFixture.cs b/src/NzbDrone.Core.Test/Qualities/QualityFixture.cs similarity index 100% rename from NzbDrone.Core.Test/Qualities/QualityFixture.cs rename to src/NzbDrone.Core.Test/Qualities/QualityFixture.cs diff --git a/NzbDrone.Core.Test/Qualities/QualityProfileRepositoryFixture.cs b/src/NzbDrone.Core.Test/Qualities/QualityProfileRepositoryFixture.cs similarity index 100% rename from NzbDrone.Core.Test/Qualities/QualityProfileRepositoryFixture.cs rename to src/NzbDrone.Core.Test/Qualities/QualityProfileRepositoryFixture.cs diff --git a/NzbDrone.Core.Test/Qualities/QualityProfileServiceFixture.cs b/src/NzbDrone.Core.Test/Qualities/QualityProfileServiceFixture.cs similarity index 100% rename from NzbDrone.Core.Test/Qualities/QualityProfileServiceFixture.cs rename to src/NzbDrone.Core.Test/Qualities/QualityProfileServiceFixture.cs diff --git a/NzbDrone.Core.Test/Qualities/QualitySizeRepositoryFixture.cs b/src/NzbDrone.Core.Test/Qualities/QualitySizeRepositoryFixture.cs similarity index 100% rename from NzbDrone.Core.Test/Qualities/QualitySizeRepositoryFixture.cs rename to src/NzbDrone.Core.Test/Qualities/QualitySizeRepositoryFixture.cs diff --git a/NzbDrone.Core.Test/Qualities/QualitySizeServiceFixture.cs b/src/NzbDrone.Core.Test/Qualities/QualitySizeServiceFixture.cs similarity index 100% rename from NzbDrone.Core.Test/Qualities/QualitySizeServiceFixture.cs rename to src/NzbDrone.Core.Test/Qualities/QualitySizeServiceFixture.cs diff --git a/NzbDrone.Core.Test/RootFolderTests/FreeSpaceOnDrivesFixture.cs b/src/NzbDrone.Core.Test/RootFolderTests/FreeSpaceOnDrivesFixture.cs similarity index 100% rename from NzbDrone.Core.Test/RootFolderTests/FreeSpaceOnDrivesFixture.cs rename to src/NzbDrone.Core.Test/RootFolderTests/FreeSpaceOnDrivesFixture.cs diff --git a/NzbDrone.Core.Test/RootFolderTests/RootFolderServiceFixture.cs b/src/NzbDrone.Core.Test/RootFolderTests/RootFolderServiceFixture.cs similarity index 100% rename from NzbDrone.Core.Test/RootFolderTests/RootFolderServiceFixture.cs rename to src/NzbDrone.Core.Test/RootFolderTests/RootFolderServiceFixture.cs diff --git a/NzbDrone.Core.Test/SeriesStatsTests/SeriesStatisticsFixture.cs b/src/NzbDrone.Core.Test/SeriesStatsTests/SeriesStatisticsFixture.cs similarity index 100% rename from NzbDrone.Core.Test/SeriesStatsTests/SeriesStatisticsFixture.cs rename to src/NzbDrone.Core.Test/SeriesStatsTests/SeriesStatisticsFixture.cs diff --git a/NzbDrone.Core.Test/ThingiProvider/ProviderBaseFixture.cs b/src/NzbDrone.Core.Test/ThingiProvider/ProviderBaseFixture.cs similarity index 100% rename from NzbDrone.Core.Test/ThingiProvider/ProviderBaseFixture.cs rename to src/NzbDrone.Core.Test/ThingiProvider/ProviderBaseFixture.cs diff --git a/NzbDrone.Core.Test/ThingiProviderTests/NullConfigFixture.cs b/src/NzbDrone.Core.Test/ThingiProviderTests/NullConfigFixture.cs similarity index 100% rename from NzbDrone.Core.Test/ThingiProviderTests/NullConfigFixture.cs rename to src/NzbDrone.Core.Test/ThingiProviderTests/NullConfigFixture.cs diff --git a/NzbDrone.Core.Test/TvTests/EpisodeProviderTests/EpisodeProviderTest.cs b/src/NzbDrone.Core.Test/TvTests/EpisodeProviderTests/EpisodeProviderTest.cs similarity index 100% rename from NzbDrone.Core.Test/TvTests/EpisodeProviderTests/EpisodeProviderTest.cs rename to src/NzbDrone.Core.Test/TvTests/EpisodeProviderTests/EpisodeProviderTest.cs diff --git a/NzbDrone.Core.Test/TvTests/EpisodeProviderTests/EpisodeProviderTest_GetEpisodesByParseResult.cs b/src/NzbDrone.Core.Test/TvTests/EpisodeProviderTests/EpisodeProviderTest_GetEpisodesByParseResult.cs similarity index 100% rename from NzbDrone.Core.Test/TvTests/EpisodeProviderTests/EpisodeProviderTest_GetEpisodesByParseResult.cs rename to src/NzbDrone.Core.Test/TvTests/EpisodeProviderTests/EpisodeProviderTest_GetEpisodesByParseResult.cs diff --git a/NzbDrone.Core.Test/TvTests/EpisodeProviderTests/HandleEpisodeFileDeletedFixture.cs b/src/NzbDrone.Core.Test/TvTests/EpisodeProviderTests/HandleEpisodeFileDeletedFixture.cs similarity index 100% rename from NzbDrone.Core.Test/TvTests/EpisodeProviderTests/HandleEpisodeFileDeletedFixture.cs rename to src/NzbDrone.Core.Test/TvTests/EpisodeProviderTests/HandleEpisodeFileDeletedFixture.cs diff --git a/NzbDrone.Core.Test/TvTests/EpisodeRepositoryTests/EpisodesBetweenDatesFixture.cs b/src/NzbDrone.Core.Test/TvTests/EpisodeRepositoryTests/EpisodesBetweenDatesFixture.cs similarity index 100% rename from NzbDrone.Core.Test/TvTests/EpisodeRepositoryTests/EpisodesBetweenDatesFixture.cs rename to src/NzbDrone.Core.Test/TvTests/EpisodeRepositoryTests/EpisodesBetweenDatesFixture.cs diff --git a/NzbDrone.Core.Test/TvTests/EpisodeRepositoryTests/EpisodesRepositoryReadFixture.cs b/src/NzbDrone.Core.Test/TvTests/EpisodeRepositoryTests/EpisodesRepositoryReadFixture.cs similarity index 100% rename from NzbDrone.Core.Test/TvTests/EpisodeRepositoryTests/EpisodesRepositoryReadFixture.cs rename to src/NzbDrone.Core.Test/TvTests/EpisodeRepositoryTests/EpisodesRepositoryReadFixture.cs diff --git a/NzbDrone.Core.Test/TvTests/EpisodeRepositoryTests/EpisodesWithoutFilesFixture.cs b/src/NzbDrone.Core.Test/TvTests/EpisodeRepositoryTests/EpisodesWithoutFilesFixture.cs similarity index 100% rename from NzbDrone.Core.Test/TvTests/EpisodeRepositoryTests/EpisodesWithoutFilesFixture.cs rename to src/NzbDrone.Core.Test/TvTests/EpisodeRepositoryTests/EpisodesWithoutFilesFixture.cs diff --git a/NzbDrone.Core.Test/TvTests/EpisodeRepositoryTests/FindEpisodeFixture.cs b/src/NzbDrone.Core.Test/TvTests/EpisodeRepositoryTests/FindEpisodeFixture.cs similarity index 100% rename from NzbDrone.Core.Test/TvTests/EpisodeRepositoryTests/FindEpisodeFixture.cs rename to src/NzbDrone.Core.Test/TvTests/EpisodeRepositoryTests/FindEpisodeFixture.cs diff --git a/NzbDrone.Core.Test/TvTests/QualityModelFixture.cs b/src/NzbDrone.Core.Test/TvTests/QualityModelFixture.cs similarity index 100% rename from NzbDrone.Core.Test/TvTests/QualityModelFixture.cs rename to src/NzbDrone.Core.Test/TvTests/QualityModelFixture.cs diff --git a/NzbDrone.Core.Test/TvTests/RefreshEpisodeServiceFixture.cs b/src/NzbDrone.Core.Test/TvTests/RefreshEpisodeServiceFixture.cs similarity index 100% rename from NzbDrone.Core.Test/TvTests/RefreshEpisodeServiceFixture.cs rename to src/NzbDrone.Core.Test/TvTests/RefreshEpisodeServiceFixture.cs diff --git a/NzbDrone.Core.Test/TvTests/SeriesRepositoryTests/QualityProfileRepositoryFixture.cs b/src/NzbDrone.Core.Test/TvTests/SeriesRepositoryTests/QualityProfileRepositoryFixture.cs similarity index 100% rename from NzbDrone.Core.Test/TvTests/SeriesRepositoryTests/QualityProfileRepositoryFixture.cs rename to src/NzbDrone.Core.Test/TvTests/SeriesRepositoryTests/QualityProfileRepositoryFixture.cs diff --git a/NzbDrone.Core.Test/TvTests/SeriesServiceTests/AddSeriesFixture.cs b/src/NzbDrone.Core.Test/TvTests/SeriesServiceTests/AddSeriesFixture.cs similarity index 100% rename from NzbDrone.Core.Test/TvTests/SeriesServiceTests/AddSeriesFixture.cs rename to src/NzbDrone.Core.Test/TvTests/SeriesServiceTests/AddSeriesFixture.cs diff --git a/NzbDrone.Core.Test/TvTests/SeriesServiceTests/UpdateSeriesFixture.cs b/src/NzbDrone.Core.Test/TvTests/SeriesServiceTests/UpdateSeriesFixture.cs similarity index 100% rename from NzbDrone.Core.Test/TvTests/SeriesServiceTests/UpdateSeriesFixture.cs rename to src/NzbDrone.Core.Test/TvTests/SeriesServiceTests/UpdateSeriesFixture.cs diff --git a/NzbDrone.Core.Test/UpdateTests/UpdatePackageProviderFixture.cs b/src/NzbDrone.Core.Test/UpdateTests/UpdatePackageProviderFixture.cs similarity index 100% rename from NzbDrone.Core.Test/UpdateTests/UpdatePackageProviderFixture.cs rename to src/NzbDrone.Core.Test/UpdateTests/UpdatePackageProviderFixture.cs diff --git a/NzbDrone.Core.Test/UpdateTests/UpdateServiceFixture.cs b/src/NzbDrone.Core.Test/UpdateTests/UpdateServiceFixture.cs similarity index 100% rename from NzbDrone.Core.Test/UpdateTests/UpdateServiceFixture.cs rename to src/NzbDrone.Core.Test/UpdateTests/UpdateServiceFixture.cs diff --git a/NzbDrone.Core.Test/XbmcVersionTests.cs b/src/NzbDrone.Core.Test/XbmcVersionTests.cs similarity index 100% rename from NzbDrone.Core.Test/XbmcVersionTests.cs rename to src/NzbDrone.Core.Test/XbmcVersionTests.cs diff --git a/NzbDrone.Core.Test/packages.config b/src/NzbDrone.Core.Test/packages.config similarity index 100% rename from NzbDrone.Core.Test/packages.config rename to src/NzbDrone.Core.Test/packages.config diff --git a/NzbDrone.Core/Annotations/FieldDefinitionAttribute.cs b/src/NzbDrone.Core/Annotations/FieldDefinitionAttribute.cs similarity index 100% rename from NzbDrone.Core/Annotations/FieldDefinitionAttribute.cs rename to src/NzbDrone.Core/Annotations/FieldDefinitionAttribute.cs diff --git a/NzbDrone.Core/App.config b/src/NzbDrone.Core/App.config similarity index 100% rename from NzbDrone.Core/App.config rename to src/NzbDrone.Core/App.config diff --git a/NzbDrone.Core/Configuration/Config.cs b/src/NzbDrone.Core/Configuration/Config.cs similarity index 100% rename from NzbDrone.Core/Configuration/Config.cs rename to src/NzbDrone.Core/Configuration/Config.cs diff --git a/NzbDrone.Core/Configuration/ConfigFileProvider.cs b/src/NzbDrone.Core/Configuration/ConfigFileProvider.cs similarity index 100% rename from NzbDrone.Core/Configuration/ConfigFileProvider.cs rename to src/NzbDrone.Core/Configuration/ConfigFileProvider.cs diff --git a/NzbDrone.Core/Configuration/ConfigRepository.cs b/src/NzbDrone.Core/Configuration/ConfigRepository.cs similarity index 100% rename from NzbDrone.Core/Configuration/ConfigRepository.cs rename to src/NzbDrone.Core/Configuration/ConfigRepository.cs diff --git a/NzbDrone.Core/Configuration/ConfigService.cs b/src/NzbDrone.Core/Configuration/ConfigService.cs similarity index 100% rename from NzbDrone.Core/Configuration/ConfigService.cs rename to src/NzbDrone.Core/Configuration/ConfigService.cs diff --git a/NzbDrone.Core/Configuration/Events/ConfigFileSavedEvent.cs b/src/NzbDrone.Core/Configuration/Events/ConfigFileSavedEvent.cs similarity index 100% rename from NzbDrone.Core/Configuration/Events/ConfigFileSavedEvent.cs rename to src/NzbDrone.Core/Configuration/Events/ConfigFileSavedEvent.cs diff --git a/NzbDrone.Core/Configuration/Events/ConfigSavedEvent.cs b/src/NzbDrone.Core/Configuration/Events/ConfigSavedEvent.cs similarity index 100% rename from NzbDrone.Core/Configuration/Events/ConfigSavedEvent.cs rename to src/NzbDrone.Core/Configuration/Events/ConfigSavedEvent.cs diff --git a/NzbDrone.Core/Configuration/IConfigService.cs b/src/NzbDrone.Core/Configuration/IConfigService.cs similarity index 100% rename from NzbDrone.Core/Configuration/IConfigService.cs rename to src/NzbDrone.Core/Configuration/IConfigService.cs diff --git a/NzbDrone.Core/Configuration/InvalidConfigFileException.cs b/src/NzbDrone.Core/Configuration/InvalidConfigFileException.cs similarity index 100% rename from NzbDrone.Core/Configuration/InvalidConfigFileException.cs rename to src/NzbDrone.Core/Configuration/InvalidConfigFileException.cs diff --git a/NzbDrone.Core/DataAugmentation/DailySeries/DailySeriesDataProxy.cs b/src/NzbDrone.Core/DataAugmentation/DailySeries/DailySeriesDataProxy.cs similarity index 100% rename from NzbDrone.Core/DataAugmentation/DailySeries/DailySeriesDataProxy.cs rename to src/NzbDrone.Core/DataAugmentation/DailySeries/DailySeriesDataProxy.cs diff --git a/NzbDrone.Core/DataAugmentation/DailySeries/DailySeriesService.cs b/src/NzbDrone.Core/DataAugmentation/DailySeries/DailySeriesService.cs similarity index 100% rename from NzbDrone.Core/DataAugmentation/DailySeries/DailySeriesService.cs rename to src/NzbDrone.Core/DataAugmentation/DailySeries/DailySeriesService.cs diff --git a/NzbDrone.Core/DataAugmentation/Scene/SceneMapping.cs b/src/NzbDrone.Core/DataAugmentation/Scene/SceneMapping.cs similarity index 100% rename from NzbDrone.Core/DataAugmentation/Scene/SceneMapping.cs rename to src/NzbDrone.Core/DataAugmentation/Scene/SceneMapping.cs diff --git a/NzbDrone.Core/DataAugmentation/Scene/SceneMappingProxy.cs b/src/NzbDrone.Core/DataAugmentation/Scene/SceneMappingProxy.cs similarity index 100% rename from NzbDrone.Core/DataAugmentation/Scene/SceneMappingProxy.cs rename to src/NzbDrone.Core/DataAugmentation/Scene/SceneMappingProxy.cs diff --git a/NzbDrone.Core/DataAugmentation/Scene/SceneMappingRepository.cs b/src/NzbDrone.Core/DataAugmentation/Scene/SceneMappingRepository.cs similarity index 100% rename from NzbDrone.Core/DataAugmentation/Scene/SceneMappingRepository.cs rename to src/NzbDrone.Core/DataAugmentation/Scene/SceneMappingRepository.cs diff --git a/NzbDrone.Core/DataAugmentation/Scene/SceneMappingService.cs b/src/NzbDrone.Core/DataAugmentation/Scene/SceneMappingService.cs similarity index 100% rename from NzbDrone.Core/DataAugmentation/Scene/SceneMappingService.cs rename to src/NzbDrone.Core/DataAugmentation/Scene/SceneMappingService.cs diff --git a/NzbDrone.Core/DataAugmentation/Scene/UpdateSceneMappingCommand.cs b/src/NzbDrone.Core/DataAugmentation/Scene/UpdateSceneMappingCommand.cs similarity index 100% rename from NzbDrone.Core/DataAugmentation/Scene/UpdateSceneMappingCommand.cs rename to src/NzbDrone.Core/DataAugmentation/Scene/UpdateSceneMappingCommand.cs diff --git a/NzbDrone.Core/DataAugmentation/Xem/Model/XemResult.cs b/src/NzbDrone.Core/DataAugmentation/Xem/Model/XemResult.cs similarity index 100% rename from NzbDrone.Core/DataAugmentation/Xem/Model/XemResult.cs rename to src/NzbDrone.Core/DataAugmentation/Xem/Model/XemResult.cs diff --git a/NzbDrone.Core/DataAugmentation/Xem/Model/XemSceneTvdbMapping.cs b/src/NzbDrone.Core/DataAugmentation/Xem/Model/XemSceneTvdbMapping.cs similarity index 100% rename from NzbDrone.Core/DataAugmentation/Xem/Model/XemSceneTvdbMapping.cs rename to src/NzbDrone.Core/DataAugmentation/Xem/Model/XemSceneTvdbMapping.cs diff --git a/NzbDrone.Core/DataAugmentation/Xem/Model/XemValues.cs b/src/NzbDrone.Core/DataAugmentation/Xem/Model/XemValues.cs similarity index 100% rename from NzbDrone.Core/DataAugmentation/Xem/Model/XemValues.cs rename to src/NzbDrone.Core/DataAugmentation/Xem/Model/XemValues.cs diff --git a/NzbDrone.Core/DataAugmentation/Xem/UpdateXemMappingsCommand.cs b/src/NzbDrone.Core/DataAugmentation/Xem/UpdateXemMappingsCommand.cs similarity index 100% rename from NzbDrone.Core/DataAugmentation/Xem/UpdateXemMappingsCommand.cs rename to src/NzbDrone.Core/DataAugmentation/Xem/UpdateXemMappingsCommand.cs diff --git a/NzbDrone.Core/DataAugmentation/Xem/XemProxy.cs b/src/NzbDrone.Core/DataAugmentation/Xem/XemProxy.cs similarity index 100% rename from NzbDrone.Core/DataAugmentation/Xem/XemProxy.cs rename to src/NzbDrone.Core/DataAugmentation/Xem/XemProxy.cs diff --git a/NzbDrone.Core/DataAugmentation/Xem/XemService.cs b/src/NzbDrone.Core/DataAugmentation/Xem/XemService.cs similarity index 100% rename from NzbDrone.Core/DataAugmentation/Xem/XemService.cs rename to src/NzbDrone.Core/DataAugmentation/Xem/XemService.cs diff --git a/NzbDrone.Core/Datastore/BasicRepository.cs b/src/NzbDrone.Core/Datastore/BasicRepository.cs similarity index 100% rename from NzbDrone.Core/Datastore/BasicRepository.cs rename to src/NzbDrone.Core/Datastore/BasicRepository.cs diff --git a/NzbDrone.Core/Datastore/ConnectionStringFactory.cs b/src/NzbDrone.Core/Datastore/ConnectionStringFactory.cs similarity index 100% rename from NzbDrone.Core/Datastore/ConnectionStringFactory.cs rename to src/NzbDrone.Core/Datastore/ConnectionStringFactory.cs diff --git a/NzbDrone.Core/Datastore/Converters/BooleanIntConverter.cs b/src/NzbDrone.Core/Datastore/Converters/BooleanIntConverter.cs similarity index 100% rename from NzbDrone.Core/Datastore/Converters/BooleanIntConverter.cs rename to src/NzbDrone.Core/Datastore/Converters/BooleanIntConverter.cs diff --git a/NzbDrone.Core/Datastore/Converters/EmbeddedDocumentConverter.cs b/src/NzbDrone.Core/Datastore/Converters/EmbeddedDocumentConverter.cs similarity index 100% rename from NzbDrone.Core/Datastore/Converters/EmbeddedDocumentConverter.cs rename to src/NzbDrone.Core/Datastore/Converters/EmbeddedDocumentConverter.cs diff --git a/NzbDrone.Core/Datastore/Converters/EnumIntConverter.cs b/src/NzbDrone.Core/Datastore/Converters/EnumIntConverter.cs similarity index 100% rename from NzbDrone.Core/Datastore/Converters/EnumIntConverter.cs rename to src/NzbDrone.Core/Datastore/Converters/EnumIntConverter.cs diff --git a/NzbDrone.Core/Datastore/Converters/Int32Converter.cs b/src/NzbDrone.Core/Datastore/Converters/Int32Converter.cs similarity index 100% rename from NzbDrone.Core/Datastore/Converters/Int32Converter.cs rename to src/NzbDrone.Core/Datastore/Converters/Int32Converter.cs diff --git a/NzbDrone.Core/Datastore/Converters/ProviderSettingConverter.cs b/src/NzbDrone.Core/Datastore/Converters/ProviderSettingConverter.cs similarity index 100% rename from NzbDrone.Core/Datastore/Converters/ProviderSettingConverter.cs rename to src/NzbDrone.Core/Datastore/Converters/ProviderSettingConverter.cs diff --git a/NzbDrone.Core/Datastore/Converters/QualityIntConverter.cs b/src/NzbDrone.Core/Datastore/Converters/QualityIntConverter.cs similarity index 100% rename from NzbDrone.Core/Datastore/Converters/QualityIntConverter.cs rename to src/NzbDrone.Core/Datastore/Converters/QualityIntConverter.cs diff --git a/NzbDrone.Core/Datastore/Converters/UtcConverter.cs b/src/NzbDrone.Core/Datastore/Converters/UtcConverter.cs similarity index 100% rename from NzbDrone.Core/Datastore/Converters/UtcConverter.cs rename to src/NzbDrone.Core/Datastore/Converters/UtcConverter.cs diff --git a/NzbDrone.Core/Datastore/Database.cs b/src/NzbDrone.Core/Datastore/Database.cs similarity index 100% rename from NzbDrone.Core/Datastore/Database.cs rename to src/NzbDrone.Core/Datastore/Database.cs diff --git a/NzbDrone.Core/Datastore/DbFactory.cs b/src/NzbDrone.Core/Datastore/DbFactory.cs similarity index 100% rename from NzbDrone.Core/Datastore/DbFactory.cs rename to src/NzbDrone.Core/Datastore/DbFactory.cs diff --git a/NzbDrone.Core/Datastore/Events/ModelEvent.cs b/src/NzbDrone.Core/Datastore/Events/ModelEvent.cs similarity index 100% rename from NzbDrone.Core/Datastore/Events/ModelEvent.cs rename to src/NzbDrone.Core/Datastore/Events/ModelEvent.cs diff --git a/NzbDrone.Core/Datastore/IEmbeddedDocument.cs b/src/NzbDrone.Core/Datastore/IEmbeddedDocument.cs similarity index 100% rename from NzbDrone.Core/Datastore/IEmbeddedDocument.cs rename to src/NzbDrone.Core/Datastore/IEmbeddedDocument.cs diff --git a/NzbDrone.Core/Datastore/LazyList.cs b/src/NzbDrone.Core/Datastore/LazyList.cs similarity index 100% rename from NzbDrone.Core/Datastore/LazyList.cs rename to src/NzbDrone.Core/Datastore/LazyList.cs diff --git a/NzbDrone.Core/Datastore/MappingExtensions.cs b/src/NzbDrone.Core/Datastore/MappingExtensions.cs similarity index 97% rename from NzbDrone.Core/Datastore/MappingExtensions.cs rename to src/NzbDrone.Core/Datastore/MappingExtensions.cs index bbaf838f2..509d81bca 100644 --- a/NzbDrone.Core/Datastore/MappingExtensions.cs +++ b/src/NzbDrone.Core/Datastore/MappingExtensions.cs @@ -1,61 +1,61 @@ -using System; -using System.Reflection; -using Marr.Data; -using Marr.Data.Mapping; -using NzbDrone.Common.Reflection; - -namespace NzbDrone.Core.Datastore -{ - public static class MappingExtensions - { - - public static ColumnMapBuilder MapResultSet(this FluentMappings.MappingsFluentEntity mapBuilder) where T : ResultSet, new() - { - return mapBuilder - .Columns - .AutoMapPropertiesWhere(IsMappableProperty); - } - - - public static ColumnMapBuilder RegisterModel(this FluentMappings.MappingsFluentEntity mapBuilder, string tableName = null) where T : ModelBase, new() - { - return mapBuilder.Table.MapTable(tableName) - .Columns - .AutoMapPropertiesWhere(IsMappableProperty) - .PrefixAltNames(String.Format("{0}_", typeof(T).Name)) - .For(c => c.Id) - .SetPrimaryKey() - .SetReturnValue() - .SetAutoIncrement(); - } - - public static RelationshipBuilder AutoMapChildModels(this ColumnMapBuilder mapBuilder) - { - return mapBuilder.Relationships.AutoMapPropertiesWhere(m => - m.MemberType == MemberTypes.Property && - typeof(ModelBase).IsAssignableFrom(((PropertyInfo) m).PropertyType)); - } - - public static bool IsMappableProperty(MemberInfo memberInfo) - { - var propertyInfo = memberInfo as PropertyInfo; - - if (propertyInfo == null) return false; - - - if (!propertyInfo.IsReadable() || !propertyInfo.IsWritable()) - { - return false; - } - - if (propertyInfo.PropertyType.IsSimpleType() || MapRepository.Instance.TypeConverters.ContainsKey(propertyInfo.PropertyType)) - { - return true; - } - - return false; - } - - - } +using System; +using System.Reflection; +using Marr.Data; +using Marr.Data.Mapping; +using NzbDrone.Common.Reflection; + +namespace NzbDrone.Core.Datastore +{ + public static class MappingExtensions + { + + public static ColumnMapBuilder MapResultSet(this FluentMappings.MappingsFluentEntity mapBuilder) where T : ResultSet, new() + { + return mapBuilder + .Columns + .AutoMapPropertiesWhere(IsMappableProperty); + } + + + public static ColumnMapBuilder RegisterModel(this FluentMappings.MappingsFluentEntity mapBuilder, string tableName = null) where T : ModelBase, new() + { + return mapBuilder.Table.MapTable(tableName) + .Columns + .AutoMapPropertiesWhere(IsMappableProperty) + .PrefixAltNames(String.Format("{0}_", typeof(T).Name)) + .For(c => c.Id) + .SetPrimaryKey() + .SetReturnValue() + .SetAutoIncrement(); + } + + public static RelationshipBuilder AutoMapChildModels(this ColumnMapBuilder mapBuilder) + { + return mapBuilder.Relationships.AutoMapPropertiesWhere(m => + m.MemberType == MemberTypes.Property && + typeof(ModelBase).IsAssignableFrom(((PropertyInfo) m).PropertyType)); + } + + public static bool IsMappableProperty(MemberInfo memberInfo) + { + var propertyInfo = memberInfo as PropertyInfo; + + if (propertyInfo == null) return false; + + + if (!propertyInfo.IsReadable() || !propertyInfo.IsWritable()) + { + return false; + } + + if (propertyInfo.PropertyType.IsSimpleType() || MapRepository.Instance.TypeConverters.ContainsKey(propertyInfo.PropertyType)) + { + return true; + } + + return false; + } + + + } } \ No newline at end of file diff --git a/NzbDrone.Core/Datastore/Migration/001_InitialSetup.cs b/src/NzbDrone.Core/Datastore/Migration/001_InitialSetup.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/001_InitialSetup.cs rename to src/NzbDrone.Core/Datastore/Migration/001_InitialSetup.cs diff --git a/NzbDrone.Core/Datastore/Migration/002_Remove_tvrage_imdb_unique_constraint.cs b/src/NzbDrone.Core/Datastore/Migration/002_Remove_tvrage_imdb_unique_constraint.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/002_Remove_tvrage_imdb_unique_constraint.cs rename to src/NzbDrone.Core/Datastore/Migration/002_Remove_tvrage_imdb_unique_constraint.cs diff --git a/NzbDrone.Core/Datastore/Migration/003_remove_clean_title_from_scene_mapping.cs b/src/NzbDrone.Core/Datastore/Migration/003_remove_clean_title_from_scene_mapping.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/003_remove_clean_title_from_scene_mapping.cs rename to src/NzbDrone.Core/Datastore/Migration/003_remove_clean_title_from_scene_mapping.cs diff --git a/NzbDrone.Core/Datastore/Migration/004_updated_history.cs b/src/NzbDrone.Core/Datastore/Migration/004_updated_history.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/004_updated_history.cs rename to src/NzbDrone.Core/Datastore/Migration/004_updated_history.cs diff --git a/NzbDrone.Core/Datastore/Migration/005_added_eventtype_to_history.cs b/src/NzbDrone.Core/Datastore/Migration/005_added_eventtype_to_history.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/005_added_eventtype_to_history.cs rename to src/NzbDrone.Core/Datastore/Migration/005_added_eventtype_to_history.cs diff --git a/NzbDrone.Core/Datastore/Migration/006_add_index_to_log_time.cs b/src/NzbDrone.Core/Datastore/Migration/006_add_index_to_log_time.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/006_add_index_to_log_time.cs rename to src/NzbDrone.Core/Datastore/Migration/006_add_index_to_log_time.cs diff --git a/NzbDrone.Core/Datastore/Migration/007_add_renameEpisodes_to_naming.cs b/src/NzbDrone.Core/Datastore/Migration/007_add_renameEpisodes_to_naming.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/007_add_renameEpisodes_to_naming.cs rename to src/NzbDrone.Core/Datastore/Migration/007_add_renameEpisodes_to_naming.cs diff --git a/NzbDrone.Core/Datastore/Migration/008_remove_backlog.cs b/src/NzbDrone.Core/Datastore/Migration/008_remove_backlog.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/008_remove_backlog.cs rename to src/NzbDrone.Core/Datastore/Migration/008_remove_backlog.cs diff --git a/NzbDrone.Core/Datastore/Migration/009_fix_renameEpisodes.cs b/src/NzbDrone.Core/Datastore/Migration/009_fix_renameEpisodes.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/009_fix_renameEpisodes.cs rename to src/NzbDrone.Core/Datastore/Migration/009_fix_renameEpisodes.cs diff --git a/NzbDrone.Core/Datastore/Migration/010_add_monitored.cs b/src/NzbDrone.Core/Datastore/Migration/010_add_monitored.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/010_add_monitored.cs rename to src/NzbDrone.Core/Datastore/Migration/010_add_monitored.cs diff --git a/NzbDrone.Core/Datastore/Migration/011_remove_ignored.cs b/src/NzbDrone.Core/Datastore/Migration/011_remove_ignored.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/011_remove_ignored.cs rename to src/NzbDrone.Core/Datastore/Migration/011_remove_ignored.cs diff --git a/NzbDrone.Core/Datastore/Migration/012_remove_custom_start_date.cs b/src/NzbDrone.Core/Datastore/Migration/012_remove_custom_start_date.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/012_remove_custom_start_date.cs rename to src/NzbDrone.Core/Datastore/Migration/012_remove_custom_start_date.cs diff --git a/NzbDrone.Core/Datastore/Migration/013_add_air_date_utc.cs b/src/NzbDrone.Core/Datastore/Migration/013_add_air_date_utc.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/013_add_air_date_utc.cs rename to src/NzbDrone.Core/Datastore/Migration/013_add_air_date_utc.cs diff --git a/NzbDrone.Core/Datastore/Migration/014_drop_air_date.cs b/src/NzbDrone.Core/Datastore/Migration/014_drop_air_date.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/014_drop_air_date.cs rename to src/NzbDrone.Core/Datastore/Migration/014_drop_air_date.cs diff --git a/NzbDrone.Core/Datastore/Migration/015_add_air_date_as_string.cs b/src/NzbDrone.Core/Datastore/Migration/015_add_air_date_as_string.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/015_add_air_date_as_string.cs rename to src/NzbDrone.Core/Datastore/Migration/015_add_air_date_as_string.cs diff --git a/NzbDrone.Core/Datastore/Migration/016_updated_imported_history_item.cs b/src/NzbDrone.Core/Datastore/Migration/016_updated_imported_history_item.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/016_updated_imported_history_item.cs rename to src/NzbDrone.Core/Datastore/Migration/016_updated_imported_history_item.cs diff --git a/NzbDrone.Core/Datastore/Migration/017_reset_scene_names.cs b/src/NzbDrone.Core/Datastore/Migration/017_reset_scene_names.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/017_reset_scene_names.cs rename to src/NzbDrone.Core/Datastore/Migration/017_reset_scene_names.cs diff --git a/NzbDrone.Core/Datastore/Migration/018_remove_duplicates.cs b/src/NzbDrone.Core/Datastore/Migration/018_remove_duplicates.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/018_remove_duplicates.cs rename to src/NzbDrone.Core/Datastore/Migration/018_remove_duplicates.cs diff --git a/NzbDrone.Core/Datastore/Migration/019_restore_unique_constraints.cs b/src/NzbDrone.Core/Datastore/Migration/019_restore_unique_constraints.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/019_restore_unique_constraints.cs rename to src/NzbDrone.Core/Datastore/Migration/019_restore_unique_constraints.cs diff --git a/NzbDrone.Core/Datastore/Migration/020_add_year_and_seasons_to_series.cs b/src/NzbDrone.Core/Datastore/Migration/020_add_year_and_seasons_to_series.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/020_add_year_and_seasons_to_series.cs rename to src/NzbDrone.Core/Datastore/Migration/020_add_year_and_seasons_to_series.cs diff --git a/NzbDrone.Core/Datastore/Migration/021_drop_seasons_table.cs b/src/NzbDrone.Core/Datastore/Migration/021_drop_seasons_table.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/021_drop_seasons_table.cs rename to src/NzbDrone.Core/Datastore/Migration/021_drop_seasons_table.cs diff --git a/NzbDrone.Core/Datastore/Migration/022_move_notification_to_generic_provider.cs b/src/NzbDrone.Core/Datastore/Migration/022_move_notification_to_generic_provider.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/022_move_notification_to_generic_provider.cs rename to src/NzbDrone.Core/Datastore/Migration/022_move_notification_to_generic_provider.cs diff --git a/NzbDrone.Core/Datastore/Migration/023_add_config_contract_to_indexers.cs b/src/NzbDrone.Core/Datastore/Migration/023_add_config_contract_to_indexers.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/023_add_config_contract_to_indexers.cs rename to src/NzbDrone.Core/Datastore/Migration/023_add_config_contract_to_indexers.cs diff --git a/NzbDrone.Core/Datastore/Migration/Framework/MigrationContext.cs b/src/NzbDrone.Core/Datastore/Migration/Framework/MigrationContext.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/Framework/MigrationContext.cs rename to src/NzbDrone.Core/Datastore/Migration/Framework/MigrationContext.cs diff --git a/NzbDrone.Core/Datastore/Migration/Framework/MigrationController.cs b/src/NzbDrone.Core/Datastore/Migration/Framework/MigrationController.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/Framework/MigrationController.cs rename to src/NzbDrone.Core/Datastore/Migration/Framework/MigrationController.cs diff --git a/NzbDrone.Core/Datastore/Migration/Framework/MigrationExtension.cs b/src/NzbDrone.Core/Datastore/Migration/Framework/MigrationExtension.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/Framework/MigrationExtension.cs rename to src/NzbDrone.Core/Datastore/Migration/Framework/MigrationExtension.cs diff --git a/NzbDrone.Core/Datastore/Migration/Framework/MigrationLogger.cs b/src/NzbDrone.Core/Datastore/Migration/Framework/MigrationLogger.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/Framework/MigrationLogger.cs rename to src/NzbDrone.Core/Datastore/Migration/Framework/MigrationLogger.cs diff --git a/NzbDrone.Core/Datastore/Migration/Framework/MigrationOptions.cs b/src/NzbDrone.Core/Datastore/Migration/Framework/MigrationOptions.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/Framework/MigrationOptions.cs rename to src/NzbDrone.Core/Datastore/Migration/Framework/MigrationOptions.cs diff --git a/NzbDrone.Core/Datastore/Migration/Framework/NzbDroneMigrationBase.cs b/src/NzbDrone.Core/Datastore/Migration/Framework/NzbDroneMigrationBase.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/Framework/NzbDroneMigrationBase.cs rename to src/NzbDrone.Core/Datastore/Migration/Framework/NzbDroneMigrationBase.cs diff --git a/NzbDrone.Core/Datastore/Migration/Framework/SQLiteColumn.cs b/src/NzbDrone.Core/Datastore/Migration/Framework/SQLiteColumn.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/Framework/SQLiteColumn.cs rename to src/NzbDrone.Core/Datastore/Migration/Framework/SQLiteColumn.cs diff --git a/NzbDrone.Core/Datastore/Migration/Framework/SQLiteIndex.cs b/src/NzbDrone.Core/Datastore/Migration/Framework/SQLiteIndex.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/Framework/SQLiteIndex.cs rename to src/NzbDrone.Core/Datastore/Migration/Framework/SQLiteIndex.cs diff --git a/NzbDrone.Core/Datastore/Migration/Framework/SQLiteMigrationHelper (vaio's conflicted copy 2013-09-04).cs b/src/NzbDrone.Core/Datastore/Migration/Framework/SQLiteMigrationHelper (vaio's conflicted copy 2013-09-04).cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/Framework/SQLiteMigrationHelper (vaio's conflicted copy 2013-09-04).cs rename to src/NzbDrone.Core/Datastore/Migration/Framework/SQLiteMigrationHelper (vaio's conflicted copy 2013-09-04).cs diff --git a/NzbDrone.Core/Datastore/Migration/Framework/SQLiteMigrationHelper.cs b/src/NzbDrone.Core/Datastore/Migration/Framework/SQLiteMigrationHelper.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/Framework/SQLiteMigrationHelper.cs rename to src/NzbDrone.Core/Datastore/Migration/Framework/SQLiteMigrationHelper.cs diff --git a/NzbDrone.Core/Datastore/Migration/Framework/SqliteAlter.cs b/src/NzbDrone.Core/Datastore/Migration/Framework/SqliteAlter.cs similarity index 100% rename from NzbDrone.Core/Datastore/Migration/Framework/SqliteAlter.cs rename to src/NzbDrone.Core/Datastore/Migration/Framework/SqliteAlter.cs diff --git a/NzbDrone.Core/Datastore/MigrationType.cs b/src/NzbDrone.Core/Datastore/MigrationType.cs similarity index 100% rename from NzbDrone.Core/Datastore/MigrationType.cs rename to src/NzbDrone.Core/Datastore/MigrationType.cs diff --git a/NzbDrone.Core/Datastore/ModelBase.cs b/src/NzbDrone.Core/Datastore/ModelBase.cs similarity index 100% rename from NzbDrone.Core/Datastore/ModelBase.cs rename to src/NzbDrone.Core/Datastore/ModelBase.cs diff --git a/NzbDrone.Core/Datastore/ModelNotFoundException.cs b/src/NzbDrone.Core/Datastore/ModelNotFoundException.cs similarity index 100% rename from NzbDrone.Core/Datastore/ModelNotFoundException.cs rename to src/NzbDrone.Core/Datastore/ModelNotFoundException.cs diff --git a/NzbDrone.Core/Datastore/PagingSpec.cs b/src/NzbDrone.Core/Datastore/PagingSpec.cs similarity index 100% rename from NzbDrone.Core/Datastore/PagingSpec.cs rename to src/NzbDrone.Core/Datastore/PagingSpec.cs diff --git a/NzbDrone.Core/Datastore/PagingSpecExtensions.cs b/src/NzbDrone.Core/Datastore/PagingSpecExtensions.cs similarity index 100% rename from NzbDrone.Core/Datastore/PagingSpecExtensions.cs rename to src/NzbDrone.Core/Datastore/PagingSpecExtensions.cs diff --git a/NzbDrone.Core/Datastore/RelationshipExtensions.cs b/src/NzbDrone.Core/Datastore/RelationshipExtensions.cs similarity index 100% rename from NzbDrone.Core/Datastore/RelationshipExtensions.cs rename to src/NzbDrone.Core/Datastore/RelationshipExtensions.cs diff --git a/NzbDrone.Core/Datastore/ResultSet.cs b/src/NzbDrone.Core/Datastore/ResultSet.cs similarity index 100% rename from NzbDrone.Core/Datastore/ResultSet.cs rename to src/NzbDrone.Core/Datastore/ResultSet.cs diff --git a/NzbDrone.Core/Datastore/TableMapping.cs b/src/NzbDrone.Core/Datastore/TableMapping.cs similarity index 100% rename from NzbDrone.Core/Datastore/TableMapping.cs rename to src/NzbDrone.Core/Datastore/TableMapping.cs diff --git a/NzbDrone.Core/DecisionEngine/DownloadDecisionMaker.cs b/src/NzbDrone.Core/DecisionEngine/DownloadDecisionMaker.cs similarity index 100% rename from NzbDrone.Core/DecisionEngine/DownloadDecisionMaker.cs rename to src/NzbDrone.Core/DecisionEngine/DownloadDecisionMaker.cs diff --git a/NzbDrone.Core/DecisionEngine/IDecisionEngineSpecification.cs b/src/NzbDrone.Core/DecisionEngine/IDecisionEngineSpecification.cs similarity index 100% rename from NzbDrone.Core/DecisionEngine/IDecisionEngineSpecification.cs rename to src/NzbDrone.Core/DecisionEngine/IDecisionEngineSpecification.cs diff --git a/NzbDrone.Core/DecisionEngine/IRejectWithReason.cs b/src/NzbDrone.Core/DecisionEngine/IRejectWithReason.cs similarity index 100% rename from NzbDrone.Core/DecisionEngine/IRejectWithReason.cs rename to src/NzbDrone.Core/DecisionEngine/IRejectWithReason.cs diff --git a/NzbDrone.Core/DecisionEngine/QualityUpgradableSpecification.cs b/src/NzbDrone.Core/DecisionEngine/QualityUpgradableSpecification.cs similarity index 100% rename from NzbDrone.Core/DecisionEngine/QualityUpgradableSpecification.cs rename to src/NzbDrone.Core/DecisionEngine/QualityUpgradableSpecification.cs diff --git a/NzbDrone.Core/DecisionEngine/Specifications/AcceptableSizeSpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/AcceptableSizeSpecification.cs similarity index 100% rename from NzbDrone.Core/DecisionEngine/Specifications/AcceptableSizeSpecification.cs rename to src/NzbDrone.Core/DecisionEngine/Specifications/AcceptableSizeSpecification.cs diff --git a/NzbDrone.Core/DecisionEngine/Specifications/CutoffSpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/CutoffSpecification.cs similarity index 100% rename from NzbDrone.Core/DecisionEngine/Specifications/CutoffSpecification.cs rename to src/NzbDrone.Core/DecisionEngine/Specifications/CutoffSpecification.cs diff --git a/NzbDrone.Core/DecisionEngine/Specifications/DownloadDecision.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/DownloadDecision.cs similarity index 100% rename from NzbDrone.Core/DecisionEngine/Specifications/DownloadDecision.cs rename to src/NzbDrone.Core/DecisionEngine/Specifications/DownloadDecision.cs diff --git a/NzbDrone.Core/DecisionEngine/Specifications/LanguageSpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/LanguageSpecification.cs similarity index 100% rename from NzbDrone.Core/DecisionEngine/Specifications/LanguageSpecification.cs rename to src/NzbDrone.Core/DecisionEngine/Specifications/LanguageSpecification.cs diff --git a/NzbDrone.Core/DecisionEngine/Specifications/NotInQueueSpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/NotInQueueSpecification.cs similarity index 100% rename from NzbDrone.Core/DecisionEngine/Specifications/NotInQueueSpecification.cs rename to src/NzbDrone.Core/DecisionEngine/Specifications/NotInQueueSpecification.cs diff --git a/NzbDrone.Core/DecisionEngine/Specifications/NotRestrictedReleaseSpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/NotRestrictedReleaseSpecification.cs similarity index 100% rename from NzbDrone.Core/DecisionEngine/Specifications/NotRestrictedReleaseSpecification.cs rename to src/NzbDrone.Core/DecisionEngine/Specifications/NotRestrictedReleaseSpecification.cs diff --git a/NzbDrone.Core/DecisionEngine/Specifications/NotSampleSpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/NotSampleSpecification.cs similarity index 100% rename from NzbDrone.Core/DecisionEngine/Specifications/NotSampleSpecification.cs rename to src/NzbDrone.Core/DecisionEngine/Specifications/NotSampleSpecification.cs diff --git a/NzbDrone.Core/DecisionEngine/Specifications/QualityAllowedByProfileSpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/QualityAllowedByProfileSpecification.cs similarity index 100% rename from NzbDrone.Core/DecisionEngine/Specifications/QualityAllowedByProfileSpecification.cs rename to src/NzbDrone.Core/DecisionEngine/Specifications/QualityAllowedByProfileSpecification.cs diff --git a/NzbDrone.Core/DecisionEngine/Specifications/RetentionSpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/RetentionSpecification.cs similarity index 100% rename from NzbDrone.Core/DecisionEngine/Specifications/RetentionSpecification.cs rename to src/NzbDrone.Core/DecisionEngine/Specifications/RetentionSpecification.cs diff --git a/NzbDrone.Core/DecisionEngine/Specifications/RssSync/MonitoredEpisodeSpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/RssSync/MonitoredEpisodeSpecification.cs similarity index 100% rename from NzbDrone.Core/DecisionEngine/Specifications/RssSync/MonitoredEpisodeSpecification.cs rename to src/NzbDrone.Core/DecisionEngine/Specifications/RssSync/MonitoredEpisodeSpecification.cs diff --git a/NzbDrone.Core/DecisionEngine/Specifications/RssSync/ProperSpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/RssSync/ProperSpecification.cs similarity index 100% rename from NzbDrone.Core/DecisionEngine/Specifications/RssSync/ProperSpecification.cs rename to src/NzbDrone.Core/DecisionEngine/Specifications/RssSync/ProperSpecification.cs diff --git a/NzbDrone.Core/DecisionEngine/Specifications/RssSync/UpgradeHistorySpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/RssSync/UpgradeHistorySpecification.cs similarity index 100% rename from NzbDrone.Core/DecisionEngine/Specifications/RssSync/UpgradeHistorySpecification.cs rename to src/NzbDrone.Core/DecisionEngine/Specifications/RssSync/UpgradeHistorySpecification.cs diff --git a/NzbDrone.Core/DecisionEngine/Specifications/Search/DailyEpisodeMatchSpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/Search/DailyEpisodeMatchSpecification.cs similarity index 100% rename from NzbDrone.Core/DecisionEngine/Specifications/Search/DailyEpisodeMatchSpecification.cs rename to src/NzbDrone.Core/DecisionEngine/Specifications/Search/DailyEpisodeMatchSpecification.cs diff --git a/NzbDrone.Core/DecisionEngine/Specifications/Search/SeasonMatchSpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/Search/SeasonMatchSpecification.cs similarity index 100% rename from NzbDrone.Core/DecisionEngine/Specifications/Search/SeasonMatchSpecification.cs rename to src/NzbDrone.Core/DecisionEngine/Specifications/Search/SeasonMatchSpecification.cs diff --git a/NzbDrone.Core/DecisionEngine/Specifications/Search/SingleEpisodeMatchSpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/Search/SingleEpisodeMatchSpecification.cs similarity index 100% rename from NzbDrone.Core/DecisionEngine/Specifications/Search/SingleEpisodeMatchSpecification.cs rename to src/NzbDrone.Core/DecisionEngine/Specifications/Search/SingleEpisodeMatchSpecification.cs diff --git a/NzbDrone.Core/DecisionEngine/Specifications/Search/SingleEpisodeSearchMatchSpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/Search/SingleEpisodeSearchMatchSpecification.cs similarity index 100% rename from NzbDrone.Core/DecisionEngine/Specifications/Search/SingleEpisodeSearchMatchSpecification.cs rename to src/NzbDrone.Core/DecisionEngine/Specifications/Search/SingleEpisodeSearchMatchSpecification.cs diff --git a/NzbDrone.Core/DecisionEngine/Specifications/UpgradeDiskSpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/UpgradeDiskSpecification.cs similarity index 100% rename from NzbDrone.Core/DecisionEngine/Specifications/UpgradeDiskSpecification.cs rename to src/NzbDrone.Core/DecisionEngine/Specifications/UpgradeDiskSpecification.cs diff --git a/NzbDrone.Core/Download/Clients/BlackholeProvider.cs b/src/NzbDrone.Core/Download/Clients/BlackholeProvider.cs similarity index 100% rename from NzbDrone.Core/Download/Clients/BlackholeProvider.cs rename to src/NzbDrone.Core/Download/Clients/BlackholeProvider.cs diff --git a/NzbDrone.Core/Download/Clients/Nzbget/EnqueueResponse.cs b/src/NzbDrone.Core/Download/Clients/Nzbget/EnqueueResponse.cs similarity index 100% rename from NzbDrone.Core/Download/Clients/Nzbget/EnqueueResponse.cs rename to src/NzbDrone.Core/Download/Clients/Nzbget/EnqueueResponse.cs diff --git a/NzbDrone.Core/Download/Clients/Nzbget/ErrorModel.cs b/src/NzbDrone.Core/Download/Clients/Nzbget/ErrorModel.cs similarity index 100% rename from NzbDrone.Core/Download/Clients/Nzbget/ErrorModel.cs rename to src/NzbDrone.Core/Download/Clients/Nzbget/ErrorModel.cs diff --git a/NzbDrone.Core/Download/Clients/Nzbget/JsonError.cs b/src/NzbDrone.Core/Download/Clients/Nzbget/JsonError.cs similarity index 100% rename from NzbDrone.Core/Download/Clients/Nzbget/JsonError.cs rename to src/NzbDrone.Core/Download/Clients/Nzbget/JsonError.cs diff --git a/NzbDrone.Core/Download/Clients/Nzbget/JsonRequest.cs b/src/NzbDrone.Core/Download/Clients/Nzbget/JsonRequest.cs similarity index 100% rename from NzbDrone.Core/Download/Clients/Nzbget/JsonRequest.cs rename to src/NzbDrone.Core/Download/Clients/Nzbget/JsonRequest.cs diff --git a/NzbDrone.Core/Download/Clients/Nzbget/NzbGetQueue.cs b/src/NzbDrone.Core/Download/Clients/Nzbget/NzbGetQueue.cs similarity index 100% rename from NzbDrone.Core/Download/Clients/Nzbget/NzbGetQueue.cs rename to src/NzbDrone.Core/Download/Clients/Nzbget/NzbGetQueue.cs diff --git a/NzbDrone.Core/Download/Clients/Nzbget/NzbGetQueueItem.cs b/src/NzbDrone.Core/Download/Clients/Nzbget/NzbGetQueueItem.cs similarity index 100% rename from NzbDrone.Core/Download/Clients/Nzbget/NzbGetQueueItem.cs rename to src/NzbDrone.Core/Download/Clients/Nzbget/NzbGetQueueItem.cs diff --git a/NzbDrone.Core/Download/Clients/Nzbget/NzbgetClient.cs b/src/NzbDrone.Core/Download/Clients/Nzbget/NzbgetClient.cs similarity index 100% rename from NzbDrone.Core/Download/Clients/Nzbget/NzbgetClient.cs rename to src/NzbDrone.Core/Download/Clients/Nzbget/NzbgetClient.cs diff --git a/NzbDrone.Core/Download/Clients/Nzbget/PriorityType.cs b/src/NzbDrone.Core/Download/Clients/Nzbget/PriorityType.cs similarity index 100% rename from NzbDrone.Core/Download/Clients/Nzbget/PriorityType.cs rename to src/NzbDrone.Core/Download/Clients/Nzbget/PriorityType.cs diff --git a/NzbDrone.Core/Download/Clients/Nzbget/VersionModel.cs b/src/NzbDrone.Core/Download/Clients/Nzbget/VersionModel.cs similarity index 100% rename from NzbDrone.Core/Download/Clients/Nzbget/VersionModel.cs rename to src/NzbDrone.Core/Download/Clients/Nzbget/VersionModel.cs diff --git a/NzbDrone.Core/Download/Clients/PneumaticClient.cs b/src/NzbDrone.Core/Download/Clients/PneumaticClient.cs similarity index 100% rename from NzbDrone.Core/Download/Clients/PneumaticClient.cs rename to src/NzbDrone.Core/Download/Clients/PneumaticClient.cs diff --git a/NzbDrone.Core/Download/Clients/Sabnzbd/ConnectionInfoModel.cs b/src/NzbDrone.Core/Download/Clients/Sabnzbd/ConnectionInfoModel.cs similarity index 100% rename from NzbDrone.Core/Download/Clients/Sabnzbd/ConnectionInfoModel.cs rename to src/NzbDrone.Core/Download/Clients/Sabnzbd/ConnectionInfoModel.cs diff --git a/NzbDrone.Core/Download/Clients/Sabnzbd/JsonConverters/SabnzbdPriorityTypeConverter.cs b/src/NzbDrone.Core/Download/Clients/Sabnzbd/JsonConverters/SabnzbdPriorityTypeConverter.cs similarity index 100% rename from NzbDrone.Core/Download/Clients/Sabnzbd/JsonConverters/SabnzbdPriorityTypeConverter.cs rename to src/NzbDrone.Core/Download/Clients/Sabnzbd/JsonConverters/SabnzbdPriorityTypeConverter.cs diff --git a/NzbDrone.Core/Download/Clients/Sabnzbd/JsonConverters/SabnzbdQueueTimeConverter.cs b/src/NzbDrone.Core/Download/Clients/Sabnzbd/JsonConverters/SabnzbdQueueTimeConverter.cs similarity index 100% rename from NzbDrone.Core/Download/Clients/Sabnzbd/JsonConverters/SabnzbdQueueTimeConverter.cs rename to src/NzbDrone.Core/Download/Clients/Sabnzbd/JsonConverters/SabnzbdQueueTimeConverter.cs diff --git a/NzbDrone.Core/Download/Clients/Sabnzbd/SabAddResponse.cs b/src/NzbDrone.Core/Download/Clients/Sabnzbd/SabAddResponse.cs similarity index 100% rename from NzbDrone.Core/Download/Clients/Sabnzbd/SabAddResponse.cs rename to src/NzbDrone.Core/Download/Clients/Sabnzbd/SabAddResponse.cs diff --git a/NzbDrone.Core/Download/Clients/Sabnzbd/SabAutoConfigureService.cs b/src/NzbDrone.Core/Download/Clients/Sabnzbd/SabAutoConfigureService.cs similarity index 100% rename from NzbDrone.Core/Download/Clients/Sabnzbd/SabAutoConfigureService.cs rename to src/NzbDrone.Core/Download/Clients/Sabnzbd/SabAutoConfigureService.cs diff --git a/NzbDrone.Core/Download/Clients/Sabnzbd/SabCategoryModel.cs b/src/NzbDrone.Core/Download/Clients/Sabnzbd/SabCategoryModel.cs similarity index 100% rename from NzbDrone.Core/Download/Clients/Sabnzbd/SabCategoryModel.cs rename to src/NzbDrone.Core/Download/Clients/Sabnzbd/SabCategoryModel.cs diff --git a/NzbDrone.Core/Download/Clients/Sabnzbd/SabHistory.cs b/src/NzbDrone.Core/Download/Clients/Sabnzbd/SabHistory.cs similarity index 100% rename from NzbDrone.Core/Download/Clients/Sabnzbd/SabHistory.cs rename to src/NzbDrone.Core/Download/Clients/Sabnzbd/SabHistory.cs diff --git a/NzbDrone.Core/Download/Clients/Sabnzbd/SabHistoryItem.cs b/src/NzbDrone.Core/Download/Clients/Sabnzbd/SabHistoryItem.cs similarity index 100% rename from NzbDrone.Core/Download/Clients/Sabnzbd/SabHistoryItem.cs rename to src/NzbDrone.Core/Download/Clients/Sabnzbd/SabHistoryItem.cs diff --git a/NzbDrone.Core/Download/Clients/Sabnzbd/SabJsonError.cs b/src/NzbDrone.Core/Download/Clients/Sabnzbd/SabJsonError.cs similarity index 100% rename from NzbDrone.Core/Download/Clients/Sabnzbd/SabJsonError.cs rename to src/NzbDrone.Core/Download/Clients/Sabnzbd/SabJsonError.cs diff --git a/NzbDrone.Core/Download/Clients/Sabnzbd/SabModel.cs b/src/NzbDrone.Core/Download/Clients/Sabnzbd/SabModel.cs similarity index 100% rename from NzbDrone.Core/Download/Clients/Sabnzbd/SabModel.cs rename to src/NzbDrone.Core/Download/Clients/Sabnzbd/SabModel.cs diff --git a/NzbDrone.Core/Download/Clients/Sabnzbd/SabPriorityType.cs b/src/NzbDrone.Core/Download/Clients/Sabnzbd/SabPriorityType.cs similarity index 100% rename from NzbDrone.Core/Download/Clients/Sabnzbd/SabPriorityType.cs rename to src/NzbDrone.Core/Download/Clients/Sabnzbd/SabPriorityType.cs diff --git a/NzbDrone.Core/Download/Clients/Sabnzbd/SabQueue.cs b/src/NzbDrone.Core/Download/Clients/Sabnzbd/SabQueue.cs similarity index 100% rename from NzbDrone.Core/Download/Clients/Sabnzbd/SabQueue.cs rename to src/NzbDrone.Core/Download/Clients/Sabnzbd/SabQueue.cs diff --git a/NzbDrone.Core/Download/Clients/Sabnzbd/SabQueueItem.cs b/src/NzbDrone.Core/Download/Clients/Sabnzbd/SabQueueItem.cs similarity index 100% rename from NzbDrone.Core/Download/Clients/Sabnzbd/SabQueueItem.cs rename to src/NzbDrone.Core/Download/Clients/Sabnzbd/SabQueueItem.cs diff --git a/NzbDrone.Core/Download/Clients/Sabnzbd/SabVersionModel.cs b/src/NzbDrone.Core/Download/Clients/Sabnzbd/SabVersionModel.cs similarity index 100% rename from NzbDrone.Core/Download/Clients/Sabnzbd/SabVersionModel.cs rename to src/NzbDrone.Core/Download/Clients/Sabnzbd/SabVersionModel.cs diff --git a/NzbDrone.Core/Download/Clients/Sabnzbd/SabnzbdClient.cs b/src/NzbDrone.Core/Download/Clients/Sabnzbd/SabnzbdClient.cs similarity index 100% rename from NzbDrone.Core/Download/Clients/Sabnzbd/SabnzbdClient.cs rename to src/NzbDrone.Core/Download/Clients/Sabnzbd/SabnzbdClient.cs diff --git a/NzbDrone.Core/Download/DownloadApprovedReports.cs b/src/NzbDrone.Core/Download/DownloadApprovedReports.cs similarity index 100% rename from NzbDrone.Core/Download/DownloadApprovedReports.cs rename to src/NzbDrone.Core/Download/DownloadApprovedReports.cs diff --git a/NzbDrone.Core/Download/DownloadClientProvider.cs b/src/NzbDrone.Core/Download/DownloadClientProvider.cs similarity index 100% rename from NzbDrone.Core/Download/DownloadClientProvider.cs rename to src/NzbDrone.Core/Download/DownloadClientProvider.cs diff --git a/NzbDrone.Core/Download/DownloadClientType.cs b/src/NzbDrone.Core/Download/DownloadClientType.cs similarity index 100% rename from NzbDrone.Core/Download/DownloadClientType.cs rename to src/NzbDrone.Core/Download/DownloadClientType.cs diff --git a/NzbDrone.Core/Download/DownloadService.cs b/src/NzbDrone.Core/Download/DownloadService.cs similarity index 100% rename from NzbDrone.Core/Download/DownloadService.cs rename to src/NzbDrone.Core/Download/DownloadService.cs diff --git a/NzbDrone.Core/Download/EpisodeGrabbedEvent.cs b/src/NzbDrone.Core/Download/EpisodeGrabbedEvent.cs similarity index 100% rename from NzbDrone.Core/Download/EpisodeGrabbedEvent.cs rename to src/NzbDrone.Core/Download/EpisodeGrabbedEvent.cs diff --git a/NzbDrone.Core/Download/IDownloadClient.cs b/src/NzbDrone.Core/Download/IDownloadClient.cs similarity index 100% rename from NzbDrone.Core/Download/IDownloadClient.cs rename to src/NzbDrone.Core/Download/IDownloadClient.cs diff --git a/NzbDrone.Core/Download/QueueItem.cs b/src/NzbDrone.Core/Download/QueueItem.cs similarity index 100% rename from NzbDrone.Core/Download/QueueItem.cs rename to src/NzbDrone.Core/Download/QueueItem.cs diff --git a/NzbDrone.Core/Exceptions/BadRequestException.cs b/src/NzbDrone.Core/Exceptions/BadRequestException.cs similarity index 100% rename from NzbDrone.Core/Exceptions/BadRequestException.cs rename to src/NzbDrone.Core/Exceptions/BadRequestException.cs diff --git a/NzbDrone.Core/Exceptions/DownstreamException.cs b/src/NzbDrone.Core/Exceptions/DownstreamException.cs similarity index 100% rename from NzbDrone.Core/Exceptions/DownstreamException.cs rename to src/NzbDrone.Core/Exceptions/DownstreamException.cs diff --git a/NzbDrone.Core/Exceptions/NzbDroneClientException.cs b/src/NzbDrone.Core/Exceptions/NzbDroneClientException.cs similarity index 100% rename from NzbDrone.Core/Exceptions/NzbDroneClientException.cs rename to src/NzbDrone.Core/Exceptions/NzbDroneClientException.cs diff --git a/NzbDrone.Core/Exceptions/StatusCodeToExceptions.cs b/src/NzbDrone.Core/Exceptions/StatusCodeToExceptions.cs similarity index 100% rename from NzbDrone.Core/Exceptions/StatusCodeToExceptions.cs rename to src/NzbDrone.Core/Exceptions/StatusCodeToExceptions.cs diff --git a/NzbDrone.Core/Fluent.cs b/src/NzbDrone.Core/Fluent.cs similarity index 100% rename from NzbDrone.Core/Fluent.cs rename to src/NzbDrone.Core/Fluent.cs diff --git a/NzbDrone.Core/History/History.cs b/src/NzbDrone.Core/History/History.cs similarity index 100% rename from NzbDrone.Core/History/History.cs rename to src/NzbDrone.Core/History/History.cs diff --git a/NzbDrone.Core/History/HistoryRepository.cs b/src/NzbDrone.Core/History/HistoryRepository.cs similarity index 100% rename from NzbDrone.Core/History/HistoryRepository.cs rename to src/NzbDrone.Core/History/HistoryRepository.cs diff --git a/NzbDrone.Core/History/HistoryService.cs b/src/NzbDrone.Core/History/HistoryService.cs similarity index 100% rename from NzbDrone.Core/History/HistoryService.cs rename to src/NzbDrone.Core/History/HistoryService.cs diff --git a/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedEpisodes.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedEpisodes.cs similarity index 100% rename from NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedEpisodes.cs rename to src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedEpisodes.cs diff --git a/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedHistoryItems.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedHistoryItems.cs similarity index 100% rename from NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedHistoryItems.cs rename to src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedHistoryItems.cs diff --git a/NzbDrone.Core/Housekeeping/HousekeepingCommand.cs b/src/NzbDrone.Core/Housekeeping/HousekeepingCommand.cs similarity index 100% rename from NzbDrone.Core/Housekeeping/HousekeepingCommand.cs rename to src/NzbDrone.Core/Housekeeping/HousekeepingCommand.cs diff --git a/NzbDrone.Core/Housekeeping/HousekeepingService.cs b/src/NzbDrone.Core/Housekeeping/HousekeepingService.cs similarity index 100% rename from NzbDrone.Core/Housekeeping/HousekeepingService.cs rename to src/NzbDrone.Core/Housekeeping/HousekeepingService.cs diff --git a/NzbDrone.Core/Housekeeping/IHousekeepingTask.cs b/src/NzbDrone.Core/Housekeeping/IHousekeepingTask.cs similarity index 100% rename from NzbDrone.Core/Housekeeping/IHousekeepingTask.cs rename to src/NzbDrone.Core/Housekeeping/IHousekeepingTask.cs diff --git a/NzbDrone.Core/IndexerSearch/Definitions/DailyEpisodeSearchCriteria.cs b/src/NzbDrone.Core/IndexerSearch/Definitions/DailyEpisodeSearchCriteria.cs similarity index 100% rename from NzbDrone.Core/IndexerSearch/Definitions/DailyEpisodeSearchCriteria.cs rename to src/NzbDrone.Core/IndexerSearch/Definitions/DailyEpisodeSearchCriteria.cs diff --git a/NzbDrone.Core/IndexerSearch/Definitions/SearchCriteriaBase.cs b/src/NzbDrone.Core/IndexerSearch/Definitions/SearchCriteriaBase.cs similarity index 100% rename from NzbDrone.Core/IndexerSearch/Definitions/SearchCriteriaBase.cs rename to src/NzbDrone.Core/IndexerSearch/Definitions/SearchCriteriaBase.cs diff --git a/NzbDrone.Core/IndexerSearch/Definitions/SeasonSearchCriteria.cs b/src/NzbDrone.Core/IndexerSearch/Definitions/SeasonSearchCriteria.cs similarity index 100% rename from NzbDrone.Core/IndexerSearch/Definitions/SeasonSearchCriteria.cs rename to src/NzbDrone.Core/IndexerSearch/Definitions/SeasonSearchCriteria.cs diff --git a/NzbDrone.Core/IndexerSearch/Definitions/SingleEpisodeSearchCriteria.cs b/src/NzbDrone.Core/IndexerSearch/Definitions/SingleEpisodeSearchCriteria.cs similarity index 100% rename from NzbDrone.Core/IndexerSearch/Definitions/SingleEpisodeSearchCriteria.cs rename to src/NzbDrone.Core/IndexerSearch/Definitions/SingleEpisodeSearchCriteria.cs diff --git a/NzbDrone.Core/IndexerSearch/EpisodeSearchCommand.cs b/src/NzbDrone.Core/IndexerSearch/EpisodeSearchCommand.cs similarity index 100% rename from NzbDrone.Core/IndexerSearch/EpisodeSearchCommand.cs rename to src/NzbDrone.Core/IndexerSearch/EpisodeSearchCommand.cs diff --git a/NzbDrone.Core/IndexerSearch/EpisodeSearchService.cs b/src/NzbDrone.Core/IndexerSearch/EpisodeSearchService.cs similarity index 100% rename from NzbDrone.Core/IndexerSearch/EpisodeSearchService.cs rename to src/NzbDrone.Core/IndexerSearch/EpisodeSearchService.cs diff --git a/NzbDrone.Core/IndexerSearch/NzbSearchService.cs b/src/NzbDrone.Core/IndexerSearch/NzbSearchService.cs similarity index 100% rename from NzbDrone.Core/IndexerSearch/NzbSearchService.cs rename to src/NzbDrone.Core/IndexerSearch/NzbSearchService.cs diff --git a/NzbDrone.Core/IndexerSearch/SearchAndDownloadService.cs b/src/NzbDrone.Core/IndexerSearch/SearchAndDownloadService.cs similarity index 100% rename from NzbDrone.Core/IndexerSearch/SearchAndDownloadService.cs rename to src/NzbDrone.Core/IndexerSearch/SearchAndDownloadService.cs diff --git a/NzbDrone.Core/IndexerSearch/SeasonSearchCommand.cs b/src/NzbDrone.Core/IndexerSearch/SeasonSearchCommand.cs similarity index 100% rename from NzbDrone.Core/IndexerSearch/SeasonSearchCommand.cs rename to src/NzbDrone.Core/IndexerSearch/SeasonSearchCommand.cs diff --git a/NzbDrone.Core/IndexerSearch/SeasonSearchService.cs b/src/NzbDrone.Core/IndexerSearch/SeasonSearchService.cs similarity index 100% rename from NzbDrone.Core/IndexerSearch/SeasonSearchService.cs rename to src/NzbDrone.Core/IndexerSearch/SeasonSearchService.cs diff --git a/NzbDrone.Core/IndexerSearch/SeriesSearchCommand.cs b/src/NzbDrone.Core/IndexerSearch/SeriesSearchCommand.cs similarity index 100% rename from NzbDrone.Core/IndexerSearch/SeriesSearchCommand.cs rename to src/NzbDrone.Core/IndexerSearch/SeriesSearchCommand.cs diff --git a/NzbDrone.Core/IndexerSearch/SeriesSearchService.cs b/src/NzbDrone.Core/IndexerSearch/SeriesSearchService.cs similarity index 100% rename from NzbDrone.Core/IndexerSearch/SeriesSearchService.cs rename to src/NzbDrone.Core/IndexerSearch/SeriesSearchService.cs diff --git a/NzbDrone.Core/Indexers/BasicTorrentRssParser.cs b/src/NzbDrone.Core/Indexers/BasicTorrentRssParser.cs similarity index 100% rename from NzbDrone.Core/Indexers/BasicTorrentRssParser.cs rename to src/NzbDrone.Core/Indexers/BasicTorrentRssParser.cs diff --git a/NzbDrone.Core/Indexers/DownloadProtocols.cs b/src/NzbDrone.Core/Indexers/DownloadProtocols.cs similarity index 100% rename from NzbDrone.Core/Indexers/DownloadProtocols.cs rename to src/NzbDrone.Core/Indexers/DownloadProtocols.cs diff --git a/NzbDrone.Core/Indexers/Exceptions/ApiKeyException.cs b/src/NzbDrone.Core/Indexers/Exceptions/ApiKeyException.cs similarity index 100% rename from NzbDrone.Core/Indexers/Exceptions/ApiKeyException.cs rename to src/NzbDrone.Core/Indexers/Exceptions/ApiKeyException.cs diff --git a/NzbDrone.Core/Indexers/Eztv/Eztv.cs b/src/NzbDrone.Core/Indexers/Eztv/Eztv.cs similarity index 100% rename from NzbDrone.Core/Indexers/Eztv/Eztv.cs rename to src/NzbDrone.Core/Indexers/Eztv/Eztv.cs diff --git a/NzbDrone.Core/Indexers/FetchAndParseRssService.cs b/src/NzbDrone.Core/Indexers/FetchAndParseRssService.cs similarity index 100% rename from NzbDrone.Core/Indexers/FetchAndParseRssService.cs rename to src/NzbDrone.Core/Indexers/FetchAndParseRssService.cs diff --git a/NzbDrone.Core/Indexers/IIndexer.cs b/src/NzbDrone.Core/Indexers/IIndexer.cs similarity index 100% rename from NzbDrone.Core/Indexers/IIndexer.cs rename to src/NzbDrone.Core/Indexers/IIndexer.cs diff --git a/NzbDrone.Core/Indexers/IParseFeed.cs b/src/NzbDrone.Core/Indexers/IParseFeed.cs similarity index 100% rename from NzbDrone.Core/Indexers/IParseFeed.cs rename to src/NzbDrone.Core/Indexers/IParseFeed.cs diff --git a/NzbDrone.Core/Indexers/IndexerBase.cs b/src/NzbDrone.Core/Indexers/IndexerBase.cs similarity index 100% rename from NzbDrone.Core/Indexers/IndexerBase.cs rename to src/NzbDrone.Core/Indexers/IndexerBase.cs diff --git a/NzbDrone.Core/Indexers/IndexerDefinition.cs b/src/NzbDrone.Core/Indexers/IndexerDefinition.cs similarity index 100% rename from NzbDrone.Core/Indexers/IndexerDefinition.cs rename to src/NzbDrone.Core/Indexers/IndexerDefinition.cs diff --git a/NzbDrone.Core/Indexers/IndexerFactory.cs b/src/NzbDrone.Core/Indexers/IndexerFactory.cs similarity index 100% rename from NzbDrone.Core/Indexers/IndexerFactory.cs rename to src/NzbDrone.Core/Indexers/IndexerFactory.cs diff --git a/NzbDrone.Core/Indexers/IndexerFetchService.cs b/src/NzbDrone.Core/Indexers/IndexerFetchService.cs similarity index 100% rename from NzbDrone.Core/Indexers/IndexerFetchService.cs rename to src/NzbDrone.Core/Indexers/IndexerFetchService.cs diff --git a/NzbDrone.Core/Indexers/IndexerRepository.cs b/src/NzbDrone.Core/Indexers/IndexerRepository.cs similarity index 100% rename from NzbDrone.Core/Indexers/IndexerRepository.cs rename to src/NzbDrone.Core/Indexers/IndexerRepository.cs diff --git a/NzbDrone.Core/Indexers/IndexerSettingUpdatedEvent.cs b/src/NzbDrone.Core/Indexers/IndexerSettingUpdatedEvent.cs similarity index 100% rename from NzbDrone.Core/Indexers/IndexerSettingUpdatedEvent.cs rename to src/NzbDrone.Core/Indexers/IndexerSettingUpdatedEvent.cs diff --git a/NzbDrone.Core/Indexers/Newznab/Newznab.cs b/src/NzbDrone.Core/Indexers/Newznab/Newznab.cs similarity index 100% rename from NzbDrone.Core/Indexers/Newznab/Newznab.cs rename to src/NzbDrone.Core/Indexers/Newznab/Newznab.cs diff --git a/NzbDrone.Core/Indexers/Newznab/NewznabException.cs b/src/NzbDrone.Core/Indexers/Newznab/NewznabException.cs similarity index 100% rename from NzbDrone.Core/Indexers/Newznab/NewznabException.cs rename to src/NzbDrone.Core/Indexers/Newznab/NewznabException.cs diff --git a/NzbDrone.Core/Indexers/Newznab/NewznabParser.cs b/src/NzbDrone.Core/Indexers/Newznab/NewznabParser.cs similarity index 100% rename from NzbDrone.Core/Indexers/Newznab/NewznabParser.cs rename to src/NzbDrone.Core/Indexers/Newznab/NewznabParser.cs diff --git a/NzbDrone.Core/Indexers/Newznab/NewznabPreProcessor.cs b/src/NzbDrone.Core/Indexers/Newznab/NewznabPreProcessor.cs similarity index 100% rename from NzbDrone.Core/Indexers/Newznab/NewznabPreProcessor.cs rename to src/NzbDrone.Core/Indexers/Newznab/NewznabPreProcessor.cs diff --git a/NzbDrone.Core/Indexers/Newznab/NewznabSettings.cs b/src/NzbDrone.Core/Indexers/Newznab/NewznabSettings.cs similarity index 100% rename from NzbDrone.Core/Indexers/Newznab/NewznabSettings.cs rename to src/NzbDrone.Core/Indexers/Newznab/NewznabSettings.cs diff --git a/NzbDrone.Core/Indexers/Newznab/SizeParsingException.cs b/src/NzbDrone.Core/Indexers/Newznab/SizeParsingException.cs similarity index 100% rename from NzbDrone.Core/Indexers/Newznab/SizeParsingException.cs rename to src/NzbDrone.Core/Indexers/Newznab/SizeParsingException.cs diff --git a/NzbDrone.Core/Indexers/NewznabTestService.cs b/src/NzbDrone.Core/Indexers/NewznabTestService.cs similarity index 100% rename from NzbDrone.Core/Indexers/NewznabTestService.cs rename to src/NzbDrone.Core/Indexers/NewznabTestService.cs diff --git a/NzbDrone.Core/Indexers/Omgwtfnzbs/Omgwtfnzbs.cs b/src/NzbDrone.Core/Indexers/Omgwtfnzbs/Omgwtfnzbs.cs similarity index 100% rename from NzbDrone.Core/Indexers/Omgwtfnzbs/Omgwtfnzbs.cs rename to src/NzbDrone.Core/Indexers/Omgwtfnzbs/Omgwtfnzbs.cs diff --git a/NzbDrone.Core/Indexers/Omgwtfnzbs/OmgwtfnzbsParser.cs b/src/NzbDrone.Core/Indexers/Omgwtfnzbs/OmgwtfnzbsParser.cs similarity index 100% rename from NzbDrone.Core/Indexers/Omgwtfnzbs/OmgwtfnzbsParser.cs rename to src/NzbDrone.Core/Indexers/Omgwtfnzbs/OmgwtfnzbsParser.cs diff --git a/NzbDrone.Core/Indexers/Omgwtfnzbs/OmgwtfnzbsSettings.cs b/src/NzbDrone.Core/Indexers/Omgwtfnzbs/OmgwtfnzbsSettings.cs similarity index 100% rename from NzbDrone.Core/Indexers/Omgwtfnzbs/OmgwtfnzbsSettings.cs rename to src/NzbDrone.Core/Indexers/Omgwtfnzbs/OmgwtfnzbsSettings.cs diff --git a/NzbDrone.Core/Indexers/RssParserBase.cs b/src/NzbDrone.Core/Indexers/RssParserBase.cs similarity index 100% rename from NzbDrone.Core/Indexers/RssParserBase.cs rename to src/NzbDrone.Core/Indexers/RssParserBase.cs diff --git a/NzbDrone.Core/Indexers/RssSyncCommand.cs b/src/NzbDrone.Core/Indexers/RssSyncCommand.cs similarity index 100% rename from NzbDrone.Core/Indexers/RssSyncCommand.cs rename to src/NzbDrone.Core/Indexers/RssSyncCommand.cs diff --git a/NzbDrone.Core/Indexers/RssSyncService.cs b/src/NzbDrone.Core/Indexers/RssSyncService.cs similarity index 100% rename from NzbDrone.Core/Indexers/RssSyncService.cs rename to src/NzbDrone.Core/Indexers/RssSyncService.cs diff --git a/NzbDrone.Core/Indexers/Wombles/Wombles.cs b/src/NzbDrone.Core/Indexers/Wombles/Wombles.cs similarity index 100% rename from NzbDrone.Core/Indexers/Wombles/Wombles.cs rename to src/NzbDrone.Core/Indexers/Wombles/Wombles.cs diff --git a/NzbDrone.Core/Indexers/Wombles/WomblesParser.cs b/src/NzbDrone.Core/Indexers/Wombles/WomblesParser.cs similarity index 100% rename from NzbDrone.Core/Indexers/Wombles/WomblesParser.cs rename to src/NzbDrone.Core/Indexers/Wombles/WomblesParser.cs diff --git a/NzbDrone.Core/Indexers/XElementExtensions.cs b/src/NzbDrone.Core/Indexers/XElementExtensions.cs similarity index 100% rename from NzbDrone.Core/Indexers/XElementExtensions.cs rename to src/NzbDrone.Core/Indexers/XElementExtensions.cs diff --git a/NzbDrone.Core/Instrumentation/Commands/ClearLogCommand.cs b/src/NzbDrone.Core/Instrumentation/Commands/ClearLogCommand.cs similarity index 100% rename from NzbDrone.Core/Instrumentation/Commands/ClearLogCommand.cs rename to src/NzbDrone.Core/Instrumentation/Commands/ClearLogCommand.cs diff --git a/NzbDrone.Core/Instrumentation/Commands/DeleteLogFilesCommand.cs b/src/NzbDrone.Core/Instrumentation/Commands/DeleteLogFilesCommand.cs similarity index 100% rename from NzbDrone.Core/Instrumentation/Commands/DeleteLogFilesCommand.cs rename to src/NzbDrone.Core/Instrumentation/Commands/DeleteLogFilesCommand.cs diff --git a/NzbDrone.Core/Instrumentation/Commands/TrimLogCommand.cs b/src/NzbDrone.Core/Instrumentation/Commands/TrimLogCommand.cs similarity index 100% rename from NzbDrone.Core/Instrumentation/Commands/TrimLogCommand.cs rename to src/NzbDrone.Core/Instrumentation/Commands/TrimLogCommand.cs diff --git a/NzbDrone.Core/Instrumentation/DatabaseTarget.cs b/src/NzbDrone.Core/Instrumentation/DatabaseTarget.cs similarity index 100% rename from NzbDrone.Core/Instrumentation/DatabaseTarget.cs rename to src/NzbDrone.Core/Instrumentation/DatabaseTarget.cs diff --git a/NzbDrone.Core/Instrumentation/DeleteLogFilesService.cs b/src/NzbDrone.Core/Instrumentation/DeleteLogFilesService.cs similarity index 100% rename from NzbDrone.Core/Instrumentation/DeleteLogFilesService.cs rename to src/NzbDrone.Core/Instrumentation/DeleteLogFilesService.cs diff --git a/NzbDrone.Core/Instrumentation/Log.cs b/src/NzbDrone.Core/Instrumentation/Log.cs similarity index 100% rename from NzbDrone.Core/Instrumentation/Log.cs rename to src/NzbDrone.Core/Instrumentation/Log.cs diff --git a/NzbDrone.Core/Instrumentation/LogRepository.cs b/src/NzbDrone.Core/Instrumentation/LogRepository.cs similarity index 100% rename from NzbDrone.Core/Instrumentation/LogRepository.cs rename to src/NzbDrone.Core/Instrumentation/LogRepository.cs diff --git a/NzbDrone.Core/Instrumentation/LogService.cs b/src/NzbDrone.Core/Instrumentation/LogService.cs similarity index 100% rename from NzbDrone.Core/Instrumentation/LogService.cs rename to src/NzbDrone.Core/Instrumentation/LogService.cs diff --git a/NzbDrone.Core/Instrumentation/LoggerExtensions.cs b/src/NzbDrone.Core/Instrumentation/LoggerExtensions.cs similarity index 100% rename from NzbDrone.Core/Instrumentation/LoggerExtensions.cs rename to src/NzbDrone.Core/Instrumentation/LoggerExtensions.cs diff --git a/NzbDrone.Core/Instrumentation/SetLoggingLevel.cs b/src/NzbDrone.Core/Instrumentation/SetLoggingLevel.cs similarity index 100% rename from NzbDrone.Core/Instrumentation/SetLoggingLevel.cs rename to src/NzbDrone.Core/Instrumentation/SetLoggingLevel.cs diff --git a/NzbDrone.Core/Jobs/JobRepository.cs b/src/NzbDrone.Core/Jobs/JobRepository.cs similarity index 100% rename from NzbDrone.Core/Jobs/JobRepository.cs rename to src/NzbDrone.Core/Jobs/JobRepository.cs diff --git a/NzbDrone.Core/Jobs/ScheduledTask.cs b/src/NzbDrone.Core/Jobs/ScheduledTask.cs similarity index 100% rename from NzbDrone.Core/Jobs/ScheduledTask.cs rename to src/NzbDrone.Core/Jobs/ScheduledTask.cs diff --git a/NzbDrone.Core/Jobs/Scheduler.cs b/src/NzbDrone.Core/Jobs/Scheduler.cs similarity index 100% rename from NzbDrone.Core/Jobs/Scheduler.cs rename to src/NzbDrone.Core/Jobs/Scheduler.cs diff --git a/NzbDrone.Core/Jobs/TaskManager.cs b/src/NzbDrone.Core/Jobs/TaskManager.cs similarity index 100% rename from NzbDrone.Core/Jobs/TaskManager.cs rename to src/NzbDrone.Core/Jobs/TaskManager.cs diff --git a/NzbDrone.Core/Lifecycle/ApplicationShutdownRequested.cs b/src/NzbDrone.Core/Lifecycle/ApplicationShutdownRequested.cs similarity index 100% rename from NzbDrone.Core/Lifecycle/ApplicationShutdownRequested.cs rename to src/NzbDrone.Core/Lifecycle/ApplicationShutdownRequested.cs diff --git a/NzbDrone.Core/Lifecycle/ApplicationStartedEvent.cs b/src/NzbDrone.Core/Lifecycle/ApplicationStartedEvent.cs similarity index 100% rename from NzbDrone.Core/Lifecycle/ApplicationStartedEvent.cs rename to src/NzbDrone.Core/Lifecycle/ApplicationStartedEvent.cs diff --git a/NzbDrone.Core/MediaCover/CoverAlreadyExistsSpecification.cs b/src/NzbDrone.Core/MediaCover/CoverAlreadyExistsSpecification.cs similarity index 96% rename from NzbDrone.Core/MediaCover/CoverAlreadyExistsSpecification.cs rename to src/NzbDrone.Core/MediaCover/CoverAlreadyExistsSpecification.cs index 5ab40e2f2..587df4392 100644 --- a/NzbDrone.Core/MediaCover/CoverAlreadyExistsSpecification.cs +++ b/src/NzbDrone.Core/MediaCover/CoverAlreadyExistsSpecification.cs @@ -1,50 +1,50 @@ -using NLog; -using NzbDrone.Common; -using NzbDrone.Common.Serializer; - -namespace NzbDrone.Core.MediaCover -{ - public interface ICoverExistsSpecification - { - bool AlreadyExists(string url, string path); - } - - public class CoverAlreadyExistsSpecification : ICoverExistsSpecification - { - private readonly IDiskProvider _diskProvider; - private readonly IHttpProvider _httpProvider; - private readonly Logger _logger; - - public CoverAlreadyExistsSpecification(IDiskProvider diskProvider, IHttpProvider httpProvider, Logger logger) - { - _diskProvider = diskProvider; - _httpProvider = httpProvider; - _logger = logger; - } - - public bool AlreadyExists(string url, string path) - { - if (!_diskProvider.FileExists(path)) - { - return false; - } - - var headers = _httpProvider.GetHeader(url); - - string sizeString; - - if (headers.TryGetValue(HttpProvider.CONTENT_LENGTH_HEADER, out sizeString)) - { - int size; - int.TryParse(sizeString, out size); - var fileSize = _diskProvider.GetFileSize(path); - - return fileSize == size; - } - - _logger.Warn("Couldn't find content-length header {0}", headers.ToJson()); - - return false; - } - } +using NLog; +using NzbDrone.Common; +using NzbDrone.Common.Serializer; + +namespace NzbDrone.Core.MediaCover +{ + public interface ICoverExistsSpecification + { + bool AlreadyExists(string url, string path); + } + + public class CoverAlreadyExistsSpecification : ICoverExistsSpecification + { + private readonly IDiskProvider _diskProvider; + private readonly IHttpProvider _httpProvider; + private readonly Logger _logger; + + public CoverAlreadyExistsSpecification(IDiskProvider diskProvider, IHttpProvider httpProvider, Logger logger) + { + _diskProvider = diskProvider; + _httpProvider = httpProvider; + _logger = logger; + } + + public bool AlreadyExists(string url, string path) + { + if (!_diskProvider.FileExists(path)) + { + return false; + } + + var headers = _httpProvider.GetHeader(url); + + string sizeString; + + if (headers.TryGetValue(HttpProvider.CONTENT_LENGTH_HEADER, out sizeString)) + { + int size; + int.TryParse(sizeString, out size); + var fileSize = _diskProvider.GetFileSize(path); + + return fileSize == size; + } + + _logger.Warn("Couldn't find content-length header {0}", headers.ToJson()); + + return false; + } + } } \ No newline at end of file diff --git a/NzbDrone.Core/MediaCover/MediaCover.cs b/src/NzbDrone.Core/MediaCover/MediaCover.cs similarity index 100% rename from NzbDrone.Core/MediaCover/MediaCover.cs rename to src/NzbDrone.Core/MediaCover/MediaCover.cs diff --git a/NzbDrone.Core/MediaCover/MediaCoverService.cs b/src/NzbDrone.Core/MediaCover/MediaCoverService.cs similarity index 100% rename from NzbDrone.Core/MediaCover/MediaCoverService.cs rename to src/NzbDrone.Core/MediaCover/MediaCoverService.cs diff --git a/NzbDrone.Core/MediaFiles/Commands/BackendCommandAttribute.cs b/src/NzbDrone.Core/MediaFiles/Commands/BackendCommandAttribute.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/Commands/BackendCommandAttribute.cs rename to src/NzbDrone.Core/MediaFiles/Commands/BackendCommandAttribute.cs diff --git a/NzbDrone.Core/MediaFiles/Commands/CleanMediaFileDb.cs b/src/NzbDrone.Core/MediaFiles/Commands/CleanMediaFileDb.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/Commands/CleanMediaFileDb.cs rename to src/NzbDrone.Core/MediaFiles/Commands/CleanMediaFileDb.cs diff --git a/NzbDrone.Core/MediaFiles/Commands/CleanUpRecycleBinCommand.cs b/src/NzbDrone.Core/MediaFiles/Commands/CleanUpRecycleBinCommand.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/Commands/CleanUpRecycleBinCommand.cs rename to src/NzbDrone.Core/MediaFiles/Commands/CleanUpRecycleBinCommand.cs diff --git a/NzbDrone.Core/MediaFiles/Commands/DownloadedEpisodesScanCommand.cs b/src/NzbDrone.Core/MediaFiles/Commands/DownloadedEpisodesScanCommand.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/Commands/DownloadedEpisodesScanCommand.cs rename to src/NzbDrone.Core/MediaFiles/Commands/DownloadedEpisodesScanCommand.cs diff --git a/NzbDrone.Core/MediaFiles/Commands/RenameSeasonCommand.cs b/src/NzbDrone.Core/MediaFiles/Commands/RenameSeasonCommand.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/Commands/RenameSeasonCommand.cs rename to src/NzbDrone.Core/MediaFiles/Commands/RenameSeasonCommand.cs diff --git a/NzbDrone.Core/MediaFiles/Commands/RenameSeriesCommand.cs b/src/NzbDrone.Core/MediaFiles/Commands/RenameSeriesCommand.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/Commands/RenameSeriesCommand.cs rename to src/NzbDrone.Core/MediaFiles/Commands/RenameSeriesCommand.cs diff --git a/NzbDrone.Core/MediaFiles/DiskScanService.cs b/src/NzbDrone.Core/MediaFiles/DiskScanService.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/DiskScanService.cs rename to src/NzbDrone.Core/MediaFiles/DiskScanService.cs diff --git a/NzbDrone.Core/MediaFiles/DownloadedEpisodesImportService.cs b/src/NzbDrone.Core/MediaFiles/DownloadedEpisodesImportService.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/DownloadedEpisodesImportService.cs rename to src/NzbDrone.Core/MediaFiles/DownloadedEpisodesImportService.cs diff --git a/NzbDrone.Core/MediaFiles/EpisodeFile.cs b/src/NzbDrone.Core/MediaFiles/EpisodeFile.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/EpisodeFile.cs rename to src/NzbDrone.Core/MediaFiles/EpisodeFile.cs diff --git a/NzbDrone.Core/MediaFiles/EpisodeFileMovingService.cs b/src/NzbDrone.Core/MediaFiles/EpisodeFileMovingService.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/EpisodeFileMovingService.cs rename to src/NzbDrone.Core/MediaFiles/EpisodeFileMovingService.cs diff --git a/NzbDrone.Core/MediaFiles/EpisodeImport/IImportDecisionEngineSpecification.cs b/src/NzbDrone.Core/MediaFiles/EpisodeImport/IImportDecisionEngineSpecification.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/EpisodeImport/IImportDecisionEngineSpecification.cs rename to src/NzbDrone.Core/MediaFiles/EpisodeImport/IImportDecisionEngineSpecification.cs diff --git a/NzbDrone.Core/MediaFiles/EpisodeImport/ImportApprovedEpisodes.cs b/src/NzbDrone.Core/MediaFiles/EpisodeImport/ImportApprovedEpisodes.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/EpisodeImport/ImportApprovedEpisodes.cs rename to src/NzbDrone.Core/MediaFiles/EpisodeImport/ImportApprovedEpisodes.cs diff --git a/NzbDrone.Core/MediaFiles/EpisodeImport/ImportDecision.cs b/src/NzbDrone.Core/MediaFiles/EpisodeImport/ImportDecision.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/EpisodeImport/ImportDecision.cs rename to src/NzbDrone.Core/MediaFiles/EpisodeImport/ImportDecision.cs diff --git a/NzbDrone.Core/MediaFiles/EpisodeImport/ImportDecisionMaker.cs b/src/NzbDrone.Core/MediaFiles/EpisodeImport/ImportDecisionMaker.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/EpisodeImport/ImportDecisionMaker.cs rename to src/NzbDrone.Core/MediaFiles/EpisodeImport/ImportDecisionMaker.cs diff --git a/NzbDrone.Core/MediaFiles/EpisodeImport/Specifications/FreeSpaceSpecification.cs b/src/NzbDrone.Core/MediaFiles/EpisodeImport/Specifications/FreeSpaceSpecification.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/EpisodeImport/Specifications/FreeSpaceSpecification.cs rename to src/NzbDrone.Core/MediaFiles/EpisodeImport/Specifications/FreeSpaceSpecification.cs diff --git a/NzbDrone.Core/MediaFiles/EpisodeImport/Specifications/NotInUseSpecification.cs b/src/NzbDrone.Core/MediaFiles/EpisodeImport/Specifications/NotInUseSpecification.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/EpisodeImport/Specifications/NotInUseSpecification.cs rename to src/NzbDrone.Core/MediaFiles/EpisodeImport/Specifications/NotInUseSpecification.cs diff --git a/NzbDrone.Core/MediaFiles/EpisodeImport/Specifications/NotSampleSpecification.cs b/src/NzbDrone.Core/MediaFiles/EpisodeImport/Specifications/NotSampleSpecification.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/EpisodeImport/Specifications/NotSampleSpecification.cs rename to src/NzbDrone.Core/MediaFiles/EpisodeImport/Specifications/NotSampleSpecification.cs diff --git a/NzbDrone.Core/MediaFiles/EpisodeImport/Specifications/NotUnpackingSpecification.cs b/src/NzbDrone.Core/MediaFiles/EpisodeImport/Specifications/NotUnpackingSpecification.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/EpisodeImport/Specifications/NotUnpackingSpecification.cs rename to src/NzbDrone.Core/MediaFiles/EpisodeImport/Specifications/NotUnpackingSpecification.cs diff --git a/NzbDrone.Core/MediaFiles/EpisodeImport/Specifications/UpgradeSpecification.cs b/src/NzbDrone.Core/MediaFiles/EpisodeImport/Specifications/UpgradeSpecification.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/EpisodeImport/Specifications/UpgradeSpecification.cs rename to src/NzbDrone.Core/MediaFiles/EpisodeImport/Specifications/UpgradeSpecification.cs diff --git a/NzbDrone.Core/MediaFiles/Events/EpisodeDownloadedEvent.cs b/src/NzbDrone.Core/MediaFiles/Events/EpisodeDownloadedEvent.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/Events/EpisodeDownloadedEvent.cs rename to src/NzbDrone.Core/MediaFiles/Events/EpisodeDownloadedEvent.cs diff --git a/NzbDrone.Core/MediaFiles/Events/EpisodeFileAddedEvent.cs b/src/NzbDrone.Core/MediaFiles/Events/EpisodeFileAddedEvent.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/Events/EpisodeFileAddedEvent.cs rename to src/NzbDrone.Core/MediaFiles/Events/EpisodeFileAddedEvent.cs diff --git a/NzbDrone.Core/MediaFiles/Events/EpisodeFileDeletedEvent.cs b/src/NzbDrone.Core/MediaFiles/Events/EpisodeFileDeletedEvent.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/Events/EpisodeFileDeletedEvent.cs rename to src/NzbDrone.Core/MediaFiles/Events/EpisodeFileDeletedEvent.cs diff --git a/NzbDrone.Core/MediaFiles/Events/EpisodeImportedEvent.cs b/src/NzbDrone.Core/MediaFiles/Events/EpisodeImportedEvent.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/Events/EpisodeImportedEvent.cs rename to src/NzbDrone.Core/MediaFiles/Events/EpisodeImportedEvent.cs diff --git a/NzbDrone.Core/MediaFiles/Events/SeriesRenamedEvent.cs b/src/NzbDrone.Core/MediaFiles/Events/SeriesRenamedEvent.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/Events/SeriesRenamedEvent.cs rename to src/NzbDrone.Core/MediaFiles/Events/SeriesRenamedEvent.cs diff --git a/NzbDrone.Core/MediaFiles/MediaFileExtensions.cs b/src/NzbDrone.Core/MediaFiles/MediaFileExtensions.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/MediaFileExtensions.cs rename to src/NzbDrone.Core/MediaFiles/MediaFileExtensions.cs diff --git a/NzbDrone.Core/MediaFiles/MediaFileRepository.cs b/src/NzbDrone.Core/MediaFiles/MediaFileRepository.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/MediaFileRepository.cs rename to src/NzbDrone.Core/MediaFiles/MediaFileRepository.cs diff --git a/NzbDrone.Core/MediaFiles/MediaFileService.cs b/src/NzbDrone.Core/MediaFiles/MediaFileService.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/MediaFileService.cs rename to src/NzbDrone.Core/MediaFiles/MediaFileService.cs diff --git a/NzbDrone.Core/MediaFiles/MediaFileTableCleanupService.cs b/src/NzbDrone.Core/MediaFiles/MediaFileTableCleanupService.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/MediaFileTableCleanupService.cs rename to src/NzbDrone.Core/MediaFiles/MediaFileTableCleanupService.cs diff --git a/NzbDrone.Core/MediaFiles/MediaInfo/MediaInfoModel.cs b/src/NzbDrone.Core/MediaFiles/MediaInfo/MediaInfoModel.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/MediaInfo/MediaInfoModel.cs rename to src/NzbDrone.Core/MediaFiles/MediaInfo/MediaInfoModel.cs diff --git a/NzbDrone.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs b/src/NzbDrone.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs rename to src/NzbDrone.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs diff --git a/NzbDrone.Core/MediaFiles/RecycleBinProvider.cs b/src/NzbDrone.Core/MediaFiles/RecycleBinProvider.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/RecycleBinProvider.cs rename to src/NzbDrone.Core/MediaFiles/RecycleBinProvider.cs diff --git a/NzbDrone.Core/MediaFiles/RenameEpisodeFileService.cs b/src/NzbDrone.Core/MediaFiles/RenameEpisodeFileService.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/RenameEpisodeFileService.cs rename to src/NzbDrone.Core/MediaFiles/RenameEpisodeFileService.cs diff --git a/NzbDrone.Core/MediaFiles/SameFilenameException.cs b/src/NzbDrone.Core/MediaFiles/SameFilenameException.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/SameFilenameException.cs rename to src/NzbDrone.Core/MediaFiles/SameFilenameException.cs diff --git a/NzbDrone.Core/MediaFiles/UpgradeMediaFileService.cs b/src/NzbDrone.Core/MediaFiles/UpgradeMediaFileService.cs similarity index 100% rename from NzbDrone.Core/MediaFiles/UpgradeMediaFileService.cs rename to src/NzbDrone.Core/MediaFiles/UpgradeMediaFileService.cs diff --git a/NzbDrone.Core/MediaInfo.dll b/src/NzbDrone.Core/MediaInfo.dll similarity index 100% rename from NzbDrone.Core/MediaInfo.dll rename to src/NzbDrone.Core/MediaInfo.dll diff --git a/NzbDrone.Core/Messaging/Commands/BackendCommandAttribute.cs b/src/NzbDrone.Core/Messaging/Commands/BackendCommandAttribute.cs similarity index 100% rename from NzbDrone.Core/Messaging/Commands/BackendCommandAttribute.cs rename to src/NzbDrone.Core/Messaging/Commands/BackendCommandAttribute.cs diff --git a/NzbDrone.Core/Messaging/Commands/Command.cs b/src/NzbDrone.Core/Messaging/Commands/Command.cs similarity index 100% rename from NzbDrone.Core/Messaging/Commands/Command.cs rename to src/NzbDrone.Core/Messaging/Commands/Command.cs diff --git a/NzbDrone.Core/Messaging/Commands/CommandEqualityComparer.cs b/src/NzbDrone.Core/Messaging/Commands/CommandEqualityComparer.cs similarity index 100% rename from NzbDrone.Core/Messaging/Commands/CommandEqualityComparer.cs rename to src/NzbDrone.Core/Messaging/Commands/CommandEqualityComparer.cs diff --git a/NzbDrone.Core/Messaging/Commands/CommandExecutor.cs b/src/NzbDrone.Core/Messaging/Commands/CommandExecutor.cs similarity index 100% rename from NzbDrone.Core/Messaging/Commands/CommandExecutor.cs rename to src/NzbDrone.Core/Messaging/Commands/CommandExecutor.cs diff --git a/NzbDrone.Core/Messaging/Commands/ICommandExecutor.cs b/src/NzbDrone.Core/Messaging/Commands/ICommandExecutor.cs similarity index 100% rename from NzbDrone.Core/Messaging/Commands/ICommandExecutor.cs rename to src/NzbDrone.Core/Messaging/Commands/ICommandExecutor.cs diff --git a/NzbDrone.Core/Messaging/Commands/IExecute.cs b/src/NzbDrone.Core/Messaging/Commands/IExecute.cs similarity index 100% rename from NzbDrone.Core/Messaging/Commands/IExecute.cs rename to src/NzbDrone.Core/Messaging/Commands/IExecute.cs diff --git a/NzbDrone.Core/Messaging/Commands/TestCommand.cs b/src/NzbDrone.Core/Messaging/Commands/TestCommand.cs similarity index 100% rename from NzbDrone.Core/Messaging/Commands/TestCommand.cs rename to src/NzbDrone.Core/Messaging/Commands/TestCommand.cs diff --git a/NzbDrone.Core/Messaging/Commands/TestCommandExecutor.cs b/src/NzbDrone.Core/Messaging/Commands/TestCommandExecutor.cs similarity index 100% rename from NzbDrone.Core/Messaging/Commands/TestCommandExecutor.cs rename to src/NzbDrone.Core/Messaging/Commands/TestCommandExecutor.cs diff --git a/NzbDrone.Core/Messaging/Commands/Tracking/CommandStatus.cs b/src/NzbDrone.Core/Messaging/Commands/Tracking/CommandStatus.cs similarity index 100% rename from NzbDrone.Core/Messaging/Commands/Tracking/CommandStatus.cs rename to src/NzbDrone.Core/Messaging/Commands/Tracking/CommandStatus.cs diff --git a/NzbDrone.Core/Messaging/Commands/Tracking/CommandTrackingService.cs b/src/NzbDrone.Core/Messaging/Commands/Tracking/CommandTrackingService.cs similarity index 100% rename from NzbDrone.Core/Messaging/Commands/Tracking/CommandTrackingService.cs rename to src/NzbDrone.Core/Messaging/Commands/Tracking/CommandTrackingService.cs diff --git a/NzbDrone.Core/Messaging/Commands/Tracking/ExistingCommand.cs b/src/NzbDrone.Core/Messaging/Commands/Tracking/ExistingCommand.cs similarity index 100% rename from NzbDrone.Core/Messaging/Commands/Tracking/ExistingCommand.cs rename to src/NzbDrone.Core/Messaging/Commands/Tracking/ExistingCommand.cs diff --git a/NzbDrone.Core/Messaging/Commands/Tracking/TrackedCommandCleanupCommand.cs b/src/NzbDrone.Core/Messaging/Commands/Tracking/TrackedCommandCleanupCommand.cs similarity index 100% rename from NzbDrone.Core/Messaging/Commands/Tracking/TrackedCommandCleanupCommand.cs rename to src/NzbDrone.Core/Messaging/Commands/Tracking/TrackedCommandCleanupCommand.cs diff --git a/NzbDrone.Core/Messaging/Events/CommandCreatedEvent.cs b/src/NzbDrone.Core/Messaging/Events/CommandCreatedEvent.cs similarity index 100% rename from NzbDrone.Core/Messaging/Events/CommandCreatedEvent.cs rename to src/NzbDrone.Core/Messaging/Events/CommandCreatedEvent.cs diff --git a/NzbDrone.Core/Messaging/Events/CommandExecutedEvent.cs b/src/NzbDrone.Core/Messaging/Events/CommandExecutedEvent.cs similarity index 100% rename from NzbDrone.Core/Messaging/Events/CommandExecutedEvent.cs rename to src/NzbDrone.Core/Messaging/Events/CommandExecutedEvent.cs diff --git a/NzbDrone.Core/Messaging/Events/EventAggregator.cs b/src/NzbDrone.Core/Messaging/Events/EventAggregator.cs similarity index 100% rename from NzbDrone.Core/Messaging/Events/EventAggregator.cs rename to src/NzbDrone.Core/Messaging/Events/EventAggregator.cs diff --git a/NzbDrone.Core/Messaging/Events/IEventAggregator.cs b/src/NzbDrone.Core/Messaging/Events/IEventAggregator.cs similarity index 100% rename from NzbDrone.Core/Messaging/Events/IEventAggregator.cs rename to src/NzbDrone.Core/Messaging/Events/IEventAggregator.cs diff --git a/NzbDrone.Core/Messaging/Events/IHandle.cs b/src/NzbDrone.Core/Messaging/Events/IHandle.cs similarity index 100% rename from NzbDrone.Core/Messaging/Events/IHandle.cs rename to src/NzbDrone.Core/Messaging/Events/IHandle.cs diff --git a/NzbDrone.Core/Messaging/IProcessMessage.cs b/src/NzbDrone.Core/Messaging/IProcessMessage.cs similarity index 100% rename from NzbDrone.Core/Messaging/IProcessMessage.cs rename to src/NzbDrone.Core/Messaging/IProcessMessage.cs diff --git a/NzbDrone.Core/MetadataSource/IProvideSeriesInfo.cs b/src/NzbDrone.Core/MetadataSource/IProvideSeriesInfo.cs similarity index 100% rename from NzbDrone.Core/MetadataSource/IProvideSeriesInfo.cs rename to src/NzbDrone.Core/MetadataSource/IProvideSeriesInfo.cs diff --git a/NzbDrone.Core/MetadataSource/ISearchForNewSeries.cs b/src/NzbDrone.Core/MetadataSource/ISearchForNewSeries.cs similarity index 100% rename from NzbDrone.Core/MetadataSource/ISearchForNewSeries.cs rename to src/NzbDrone.Core/MetadataSource/ISearchForNewSeries.cs diff --git a/NzbDrone.Core/MetadataSource/Trakt/Episode.cs b/src/NzbDrone.Core/MetadataSource/Trakt/Episode.cs similarity index 100% rename from NzbDrone.Core/MetadataSource/Trakt/Episode.cs rename to src/NzbDrone.Core/MetadataSource/Trakt/Episode.cs diff --git a/NzbDrone.Core/MetadataSource/Trakt/FullShow.cs b/src/NzbDrone.Core/MetadataSource/Trakt/FullShow.cs similarity index 100% rename from NzbDrone.Core/MetadataSource/Trakt/FullShow.cs rename to src/NzbDrone.Core/MetadataSource/Trakt/FullShow.cs diff --git a/NzbDrone.Core/MetadataSource/Trakt/Images.cs b/src/NzbDrone.Core/MetadataSource/Trakt/Images.cs similarity index 100% rename from NzbDrone.Core/MetadataSource/Trakt/Images.cs rename to src/NzbDrone.Core/MetadataSource/Trakt/Images.cs diff --git a/NzbDrone.Core/MetadataSource/Trakt/Season.cs b/src/NzbDrone.Core/MetadataSource/Trakt/Season.cs similarity index 100% rename from NzbDrone.Core/MetadataSource/Trakt/Season.cs rename to src/NzbDrone.Core/MetadataSource/Trakt/Season.cs diff --git a/NzbDrone.Core/MetadataSource/Trakt/TraktException.cs b/src/NzbDrone.Core/MetadataSource/Trakt/TraktException.cs similarity index 100% rename from NzbDrone.Core/MetadataSource/Trakt/TraktException.cs rename to src/NzbDrone.Core/MetadataSource/Trakt/TraktException.cs diff --git a/NzbDrone.Core/MetadataSource/TraktProxy.cs b/src/NzbDrone.Core/MetadataSource/TraktProxy.cs similarity index 100% rename from NzbDrone.Core/MetadataSource/TraktProxy.cs rename to src/NzbDrone.Core/MetadataSource/TraktProxy.cs diff --git a/NzbDrone.Core/Notifications/Email/Email.cs b/src/NzbDrone.Core/Notifications/Email/Email.cs similarity index 100% rename from NzbDrone.Core/Notifications/Email/Email.cs rename to src/NzbDrone.Core/Notifications/Email/Email.cs diff --git a/NzbDrone.Core/Notifications/Email/EmailService.cs b/src/NzbDrone.Core/Notifications/Email/EmailService.cs similarity index 100% rename from NzbDrone.Core/Notifications/Email/EmailService.cs rename to src/NzbDrone.Core/Notifications/Email/EmailService.cs diff --git a/NzbDrone.Core/Notifications/Email/EmailSettings.cs b/src/NzbDrone.Core/Notifications/Email/EmailSettings.cs similarity index 100% rename from NzbDrone.Core/Notifications/Email/EmailSettings.cs rename to src/NzbDrone.Core/Notifications/Email/EmailSettings.cs diff --git a/NzbDrone.Core/Notifications/Email/TestEmailCommand.cs b/src/NzbDrone.Core/Notifications/Email/TestEmailCommand.cs similarity index 100% rename from NzbDrone.Core/Notifications/Email/TestEmailCommand.cs rename to src/NzbDrone.Core/Notifications/Email/TestEmailCommand.cs diff --git a/NzbDrone.Core/Notifications/Growl/Growl.cs b/src/NzbDrone.Core/Notifications/Growl/Growl.cs similarity index 100% rename from NzbDrone.Core/Notifications/Growl/Growl.cs rename to src/NzbDrone.Core/Notifications/Growl/Growl.cs diff --git a/NzbDrone.Core/Notifications/Growl/GrowlService.cs b/src/NzbDrone.Core/Notifications/Growl/GrowlService.cs similarity index 100% rename from NzbDrone.Core/Notifications/Growl/GrowlService.cs rename to src/NzbDrone.Core/Notifications/Growl/GrowlService.cs diff --git a/NzbDrone.Core/Notifications/Growl/GrowlSettings.cs b/src/NzbDrone.Core/Notifications/Growl/GrowlSettings.cs similarity index 100% rename from NzbDrone.Core/Notifications/Growl/GrowlSettings.cs rename to src/NzbDrone.Core/Notifications/Growl/GrowlSettings.cs diff --git a/NzbDrone.Core/Notifications/Growl/TestGrowlCommand.cs b/src/NzbDrone.Core/Notifications/Growl/TestGrowlCommand.cs similarity index 100% rename from NzbDrone.Core/Notifications/Growl/TestGrowlCommand.cs rename to src/NzbDrone.Core/Notifications/Growl/TestGrowlCommand.cs diff --git a/NzbDrone.Core/Notifications/INotification.cs b/src/NzbDrone.Core/Notifications/INotification.cs similarity index 100% rename from NzbDrone.Core/Notifications/INotification.cs rename to src/NzbDrone.Core/Notifications/INotification.cs diff --git a/NzbDrone.Core/Notifications/Notification.cs b/src/NzbDrone.Core/Notifications/Notification.cs similarity index 100% rename from NzbDrone.Core/Notifications/Notification.cs rename to src/NzbDrone.Core/Notifications/Notification.cs diff --git a/NzbDrone.Core/Notifications/NotificationBase.cs b/src/NzbDrone.Core/Notifications/NotificationBase.cs similarity index 100% rename from NzbDrone.Core/Notifications/NotificationBase.cs rename to src/NzbDrone.Core/Notifications/NotificationBase.cs diff --git a/NzbDrone.Core/Notifications/NotificationDefinition.cs b/src/NzbDrone.Core/Notifications/NotificationDefinition.cs similarity index 100% rename from NzbDrone.Core/Notifications/NotificationDefinition.cs rename to src/NzbDrone.Core/Notifications/NotificationDefinition.cs diff --git a/NzbDrone.Core/Notifications/NotificationRepository.cs b/src/NzbDrone.Core/Notifications/NotificationRepository.cs similarity index 100% rename from NzbDrone.Core/Notifications/NotificationRepository.cs rename to src/NzbDrone.Core/Notifications/NotificationRepository.cs diff --git a/NzbDrone.Core/Notifications/NotificationService.cs b/src/NzbDrone.Core/Notifications/NotificationService.cs similarity index 100% rename from NzbDrone.Core/Notifications/NotificationService.cs rename to src/NzbDrone.Core/Notifications/NotificationService.cs diff --git a/NzbDrone.Core/Notifications/NotificationSettingsProvider.cs b/src/NzbDrone.Core/Notifications/NotificationSettingsProvider.cs similarity index 100% rename from NzbDrone.Core/Notifications/NotificationSettingsProvider.cs rename to src/NzbDrone.Core/Notifications/NotificationSettingsProvider.cs diff --git a/NzbDrone.Core/Notifications/NotifyMyAndroid/NotifyMyAndroid.cs b/src/NzbDrone.Core/Notifications/NotifyMyAndroid/NotifyMyAndroid.cs similarity index 100% rename from NzbDrone.Core/Notifications/NotifyMyAndroid/NotifyMyAndroid.cs rename to src/NzbDrone.Core/Notifications/NotifyMyAndroid/NotifyMyAndroid.cs diff --git a/NzbDrone.Core/Notifications/NotifyMyAndroid/NotifyMyAndroidPriority.cs b/src/NzbDrone.Core/Notifications/NotifyMyAndroid/NotifyMyAndroidPriority.cs similarity index 100% rename from NzbDrone.Core/Notifications/NotifyMyAndroid/NotifyMyAndroidPriority.cs rename to src/NzbDrone.Core/Notifications/NotifyMyAndroid/NotifyMyAndroidPriority.cs diff --git a/NzbDrone.Core/Notifications/NotifyMyAndroid/NotifyMyAndroidProxy.cs b/src/NzbDrone.Core/Notifications/NotifyMyAndroid/NotifyMyAndroidProxy.cs similarity index 100% rename from NzbDrone.Core/Notifications/NotifyMyAndroid/NotifyMyAndroidProxy.cs rename to src/NzbDrone.Core/Notifications/NotifyMyAndroid/NotifyMyAndroidProxy.cs diff --git a/NzbDrone.Core/Notifications/NotifyMyAndroid/NotifyMyAndroidSettings.cs b/src/NzbDrone.Core/Notifications/NotifyMyAndroid/NotifyMyAndroidSettings.cs similarity index 100% rename from NzbDrone.Core/Notifications/NotifyMyAndroid/NotifyMyAndroidSettings.cs rename to src/NzbDrone.Core/Notifications/NotifyMyAndroid/NotifyMyAndroidSettings.cs diff --git a/NzbDrone.Core/Notifications/NotifyMyAndroid/TestNotifyMyAndroidCommand.cs b/src/NzbDrone.Core/Notifications/NotifyMyAndroid/TestNotifyMyAndroidCommand.cs similarity index 100% rename from NzbDrone.Core/Notifications/NotifyMyAndroid/TestNotifyMyAndroidCommand.cs rename to src/NzbDrone.Core/Notifications/NotifyMyAndroid/TestNotifyMyAndroidCommand.cs diff --git a/NzbDrone.Core/Notifications/Plex/PlexClient.cs b/src/NzbDrone.Core/Notifications/Plex/PlexClient.cs similarity index 100% rename from NzbDrone.Core/Notifications/Plex/PlexClient.cs rename to src/NzbDrone.Core/Notifications/Plex/PlexClient.cs diff --git a/NzbDrone.Core/Notifications/Plex/PlexClientSettings.cs b/src/NzbDrone.Core/Notifications/Plex/PlexClientSettings.cs similarity index 100% rename from NzbDrone.Core/Notifications/Plex/PlexClientSettings.cs rename to src/NzbDrone.Core/Notifications/Plex/PlexClientSettings.cs diff --git a/NzbDrone.Core/Notifications/Plex/PlexServer.cs b/src/NzbDrone.Core/Notifications/Plex/PlexServer.cs similarity index 100% rename from NzbDrone.Core/Notifications/Plex/PlexServer.cs rename to src/NzbDrone.Core/Notifications/Plex/PlexServer.cs diff --git a/NzbDrone.Core/Notifications/Plex/PlexServerSettings.cs b/src/NzbDrone.Core/Notifications/Plex/PlexServerSettings.cs similarity index 100% rename from NzbDrone.Core/Notifications/Plex/PlexServerSettings.cs rename to src/NzbDrone.Core/Notifications/Plex/PlexServerSettings.cs diff --git a/NzbDrone.Core/Notifications/Plex/PlexService.cs b/src/NzbDrone.Core/Notifications/Plex/PlexService.cs similarity index 100% rename from NzbDrone.Core/Notifications/Plex/PlexService.cs rename to src/NzbDrone.Core/Notifications/Plex/PlexService.cs diff --git a/NzbDrone.Core/Notifications/Plex/TestPlexClientCommand.cs b/src/NzbDrone.Core/Notifications/Plex/TestPlexClientCommand.cs similarity index 100% rename from NzbDrone.Core/Notifications/Plex/TestPlexClientCommand.cs rename to src/NzbDrone.Core/Notifications/Plex/TestPlexClientCommand.cs diff --git a/NzbDrone.Core/Notifications/Plex/TestPlexServerCommand.cs b/src/NzbDrone.Core/Notifications/Plex/TestPlexServerCommand.cs similarity index 100% rename from NzbDrone.Core/Notifications/Plex/TestPlexServerCommand.cs rename to src/NzbDrone.Core/Notifications/Plex/TestPlexServerCommand.cs diff --git a/NzbDrone.Core/Notifications/Prowl/InvalidApiKeyException.cs b/src/NzbDrone.Core/Notifications/Prowl/InvalidApiKeyException.cs similarity index 100% rename from NzbDrone.Core/Notifications/Prowl/InvalidApiKeyException.cs rename to src/NzbDrone.Core/Notifications/Prowl/InvalidApiKeyException.cs diff --git a/NzbDrone.Core/Notifications/Prowl/Prowl.cs b/src/NzbDrone.Core/Notifications/Prowl/Prowl.cs similarity index 100% rename from NzbDrone.Core/Notifications/Prowl/Prowl.cs rename to src/NzbDrone.Core/Notifications/Prowl/Prowl.cs diff --git a/NzbDrone.Core/Notifications/Prowl/ProwlPriority.cs b/src/NzbDrone.Core/Notifications/Prowl/ProwlPriority.cs similarity index 100% rename from NzbDrone.Core/Notifications/Prowl/ProwlPriority.cs rename to src/NzbDrone.Core/Notifications/Prowl/ProwlPriority.cs diff --git a/NzbDrone.Core/Notifications/Prowl/ProwlService.cs b/src/NzbDrone.Core/Notifications/Prowl/ProwlService.cs similarity index 100% rename from NzbDrone.Core/Notifications/Prowl/ProwlService.cs rename to src/NzbDrone.Core/Notifications/Prowl/ProwlService.cs diff --git a/NzbDrone.Core/Notifications/Prowl/ProwlSettings.cs b/src/NzbDrone.Core/Notifications/Prowl/ProwlSettings.cs similarity index 100% rename from NzbDrone.Core/Notifications/Prowl/ProwlSettings.cs rename to src/NzbDrone.Core/Notifications/Prowl/ProwlSettings.cs diff --git a/NzbDrone.Core/Notifications/Prowl/TestProwlCommand.cs b/src/NzbDrone.Core/Notifications/Prowl/TestProwlCommand.cs similarity index 100% rename from NzbDrone.Core/Notifications/Prowl/TestProwlCommand.cs rename to src/NzbDrone.Core/Notifications/Prowl/TestProwlCommand.cs diff --git a/NzbDrone.Core/Notifications/PushBullet/PushBullet.cs b/src/NzbDrone.Core/Notifications/PushBullet/PushBullet.cs similarity index 100% rename from NzbDrone.Core/Notifications/PushBullet/PushBullet.cs rename to src/NzbDrone.Core/Notifications/PushBullet/PushBullet.cs diff --git a/NzbDrone.Core/Notifications/PushBullet/PushBulletProxy.cs b/src/NzbDrone.Core/Notifications/PushBullet/PushBulletProxy.cs similarity index 100% rename from NzbDrone.Core/Notifications/PushBullet/PushBulletProxy.cs rename to src/NzbDrone.Core/Notifications/PushBullet/PushBulletProxy.cs diff --git a/NzbDrone.Core/Notifications/PushBullet/PushBulletSettings.cs b/src/NzbDrone.Core/Notifications/PushBullet/PushBulletSettings.cs similarity index 100% rename from NzbDrone.Core/Notifications/PushBullet/PushBulletSettings.cs rename to src/NzbDrone.Core/Notifications/PushBullet/PushBulletSettings.cs diff --git a/NzbDrone.Core/Notifications/PushBullet/TestPushBulletCommand.cs b/src/NzbDrone.Core/Notifications/PushBullet/TestPushBulletCommand.cs similarity index 100% rename from NzbDrone.Core/Notifications/PushBullet/TestPushBulletCommand.cs rename to src/NzbDrone.Core/Notifications/PushBullet/TestPushBulletCommand.cs diff --git a/NzbDrone.Core/Notifications/Pushover/InvalidResponseException.cs b/src/NzbDrone.Core/Notifications/Pushover/InvalidResponseException.cs similarity index 100% rename from NzbDrone.Core/Notifications/Pushover/InvalidResponseException.cs rename to src/NzbDrone.Core/Notifications/Pushover/InvalidResponseException.cs diff --git a/NzbDrone.Core/Notifications/Pushover/Pushover.cs b/src/NzbDrone.Core/Notifications/Pushover/Pushover.cs similarity index 100% rename from NzbDrone.Core/Notifications/Pushover/Pushover.cs rename to src/NzbDrone.Core/Notifications/Pushover/Pushover.cs diff --git a/NzbDrone.Core/Notifications/Pushover/PushoverPriority.cs b/src/NzbDrone.Core/Notifications/Pushover/PushoverPriority.cs similarity index 100% rename from NzbDrone.Core/Notifications/Pushover/PushoverPriority.cs rename to src/NzbDrone.Core/Notifications/Pushover/PushoverPriority.cs diff --git a/NzbDrone.Core/Notifications/Pushover/PushoverService.cs b/src/NzbDrone.Core/Notifications/Pushover/PushoverService.cs similarity index 100% rename from NzbDrone.Core/Notifications/Pushover/PushoverService.cs rename to src/NzbDrone.Core/Notifications/Pushover/PushoverService.cs diff --git a/NzbDrone.Core/Notifications/Pushover/PushoverSettings.cs b/src/NzbDrone.Core/Notifications/Pushover/PushoverSettings.cs similarity index 100% rename from NzbDrone.Core/Notifications/Pushover/PushoverSettings.cs rename to src/NzbDrone.Core/Notifications/Pushover/PushoverSettings.cs diff --git a/NzbDrone.Core/Notifications/Pushover/TestPushoverCommand.cs b/src/NzbDrone.Core/Notifications/Pushover/TestPushoverCommand.cs similarity index 100% rename from NzbDrone.Core/Notifications/Pushover/TestPushoverCommand.cs rename to src/NzbDrone.Core/Notifications/Pushover/TestPushoverCommand.cs diff --git a/NzbDrone.Core/Notifications/Xbmc/HttpApiProvider.cs b/src/NzbDrone.Core/Notifications/Xbmc/HttpApiProvider.cs similarity index 100% rename from NzbDrone.Core/Notifications/Xbmc/HttpApiProvider.cs rename to src/NzbDrone.Core/Notifications/Xbmc/HttpApiProvider.cs diff --git a/NzbDrone.Core/Notifications/Xbmc/IApiProvider.cs b/src/NzbDrone.Core/Notifications/Xbmc/IApiProvider.cs similarity index 100% rename from NzbDrone.Core/Notifications/Xbmc/IApiProvider.cs rename to src/NzbDrone.Core/Notifications/Xbmc/IApiProvider.cs diff --git a/NzbDrone.Core/Notifications/Xbmc/InvalidXbmcVersionException.cs b/src/NzbDrone.Core/Notifications/Xbmc/InvalidXbmcVersionException.cs similarity index 100% rename from NzbDrone.Core/Notifications/Xbmc/InvalidXbmcVersionException.cs rename to src/NzbDrone.Core/Notifications/Xbmc/InvalidXbmcVersionException.cs diff --git a/NzbDrone.Core/Notifications/Xbmc/JsonApiProvider.cs b/src/NzbDrone.Core/Notifications/Xbmc/JsonApiProvider.cs similarity index 100% rename from NzbDrone.Core/Notifications/Xbmc/JsonApiProvider.cs rename to src/NzbDrone.Core/Notifications/Xbmc/JsonApiProvider.cs diff --git a/NzbDrone.Core/Notifications/Xbmc/Model/ActivePlayer.cs b/src/NzbDrone.Core/Notifications/Xbmc/Model/ActivePlayer.cs similarity index 100% rename from NzbDrone.Core/Notifications/Xbmc/Model/ActivePlayer.cs rename to src/NzbDrone.Core/Notifications/Xbmc/Model/ActivePlayer.cs diff --git a/NzbDrone.Core/Notifications/Xbmc/Model/ActivePlayersDharmaResult.cs b/src/NzbDrone.Core/Notifications/Xbmc/Model/ActivePlayersDharmaResult.cs similarity index 100% rename from NzbDrone.Core/Notifications/Xbmc/Model/ActivePlayersDharmaResult.cs rename to src/NzbDrone.Core/Notifications/Xbmc/Model/ActivePlayersDharmaResult.cs diff --git a/NzbDrone.Core/Notifications/Xbmc/Model/ActivePlayersEdenResult.cs b/src/NzbDrone.Core/Notifications/Xbmc/Model/ActivePlayersEdenResult.cs similarity index 100% rename from NzbDrone.Core/Notifications/Xbmc/Model/ActivePlayersEdenResult.cs rename to src/NzbDrone.Core/Notifications/Xbmc/Model/ActivePlayersEdenResult.cs diff --git a/NzbDrone.Core/Notifications/Xbmc/Model/ErrorResult.cs b/src/NzbDrone.Core/Notifications/Xbmc/Model/ErrorResult.cs similarity index 100% rename from NzbDrone.Core/Notifications/Xbmc/Model/ErrorResult.cs rename to src/NzbDrone.Core/Notifications/Xbmc/Model/ErrorResult.cs diff --git a/NzbDrone.Core/Notifications/Xbmc/Model/TvShow.cs b/src/NzbDrone.Core/Notifications/Xbmc/Model/TvShow.cs similarity index 100% rename from NzbDrone.Core/Notifications/Xbmc/Model/TvShow.cs rename to src/NzbDrone.Core/Notifications/Xbmc/Model/TvShow.cs diff --git a/NzbDrone.Core/Notifications/Xbmc/Model/TvShowResponse.cs b/src/NzbDrone.Core/Notifications/Xbmc/Model/TvShowResponse.cs similarity index 100% rename from NzbDrone.Core/Notifications/Xbmc/Model/TvShowResponse.cs rename to src/NzbDrone.Core/Notifications/Xbmc/Model/TvShowResponse.cs diff --git a/NzbDrone.Core/Notifications/Xbmc/Model/TvShowResult.cs b/src/NzbDrone.Core/Notifications/Xbmc/Model/TvShowResult.cs similarity index 100% rename from NzbDrone.Core/Notifications/Xbmc/Model/TvShowResult.cs rename to src/NzbDrone.Core/Notifications/Xbmc/Model/TvShowResult.cs diff --git a/NzbDrone.Core/Notifications/Xbmc/Model/VersionResult.cs b/src/NzbDrone.Core/Notifications/Xbmc/Model/VersionResult.cs similarity index 100% rename from NzbDrone.Core/Notifications/Xbmc/Model/VersionResult.cs rename to src/NzbDrone.Core/Notifications/Xbmc/Model/VersionResult.cs diff --git a/NzbDrone.Core/Notifications/Xbmc/Model/XbmcJsonResult.cs b/src/NzbDrone.Core/Notifications/Xbmc/Model/XbmcJsonResult.cs similarity index 100% rename from NzbDrone.Core/Notifications/Xbmc/Model/XbmcJsonResult.cs rename to src/NzbDrone.Core/Notifications/Xbmc/Model/XbmcJsonResult.cs diff --git a/NzbDrone.Core/Notifications/Xbmc/Model/XbmcVersion.cs b/src/NzbDrone.Core/Notifications/Xbmc/Model/XbmcVersion.cs similarity index 100% rename from NzbDrone.Core/Notifications/Xbmc/Model/XbmcVersion.cs rename to src/NzbDrone.Core/Notifications/Xbmc/Model/XbmcVersion.cs diff --git a/NzbDrone.Core/Notifications/Xbmc/TestXbmcCommand.cs b/src/NzbDrone.Core/Notifications/Xbmc/TestXbmcCommand.cs similarity index 100% rename from NzbDrone.Core/Notifications/Xbmc/TestXbmcCommand.cs rename to src/NzbDrone.Core/Notifications/Xbmc/TestXbmcCommand.cs diff --git a/NzbDrone.Core/Notifications/Xbmc/Xbmc.cs b/src/NzbDrone.Core/Notifications/Xbmc/Xbmc.cs similarity index 100% rename from NzbDrone.Core/Notifications/Xbmc/Xbmc.cs rename to src/NzbDrone.Core/Notifications/Xbmc/Xbmc.cs diff --git a/NzbDrone.Core/Notifications/Xbmc/XbmcService.cs b/src/NzbDrone.Core/Notifications/Xbmc/XbmcService.cs similarity index 100% rename from NzbDrone.Core/Notifications/Xbmc/XbmcService.cs rename to src/NzbDrone.Core/Notifications/Xbmc/XbmcService.cs diff --git a/NzbDrone.Core/Notifications/Xbmc/XbmcSettings.cs b/src/NzbDrone.Core/Notifications/Xbmc/XbmcSettings.cs similarity index 100% rename from NzbDrone.Core/Notifications/Xbmc/XbmcSettings.cs rename to src/NzbDrone.Core/Notifications/Xbmc/XbmcSettings.cs diff --git a/NzbDrone.Core/NzbDrone.Core.csproj b/src/NzbDrone.Core/NzbDrone.Core.csproj similarity index 99% rename from NzbDrone.Core/NzbDrone.Core.csproj rename to src/NzbDrone.Core/NzbDrone.Core.csproj index 766536d42..7afcb1bb1 100644 --- a/NzbDrone.Core/NzbDrone.Core.csproj +++ b/src/NzbDrone.Core/NzbDrone.Core.csproj @@ -37,7 +37,7 @@ true full false - ..\_output\ + ..\..\_output\ DEBUG;TRACE prompt 4 @@ -46,7 +46,7 @@ x86 pdbonly true - ..\_output\ + ..\..\_output\ TRACE prompt 4 diff --git a/NzbDrone.Core/Organizer/EpisodeSortingType.cs b/src/NzbDrone.Core/Organizer/EpisodeSortingType.cs similarity index 100% rename from NzbDrone.Core/Organizer/EpisodeSortingType.cs rename to src/NzbDrone.Core/Organizer/EpisodeSortingType.cs diff --git a/NzbDrone.Core/Organizer/FileNameBuilder.cs b/src/NzbDrone.Core/Organizer/FileNameBuilder.cs similarity index 100% rename from NzbDrone.Core/Organizer/FileNameBuilder.cs rename to src/NzbDrone.Core/Organizer/FileNameBuilder.cs diff --git a/NzbDrone.Core/Organizer/NamingConfig.cs b/src/NzbDrone.Core/Organizer/NamingConfig.cs similarity index 100% rename from NzbDrone.Core/Organizer/NamingConfig.cs rename to src/NzbDrone.Core/Organizer/NamingConfig.cs diff --git a/NzbDrone.Core/Parser/Language.cs b/src/NzbDrone.Core/Parser/Language.cs similarity index 100% rename from NzbDrone.Core/Parser/Language.cs rename to src/NzbDrone.Core/Parser/Language.cs diff --git a/NzbDrone.Core/Parser/Model/LocalEpisode.cs b/src/NzbDrone.Core/Parser/Model/LocalEpisode.cs similarity index 100% rename from NzbDrone.Core/Parser/Model/LocalEpisode.cs rename to src/NzbDrone.Core/Parser/Model/LocalEpisode.cs diff --git a/NzbDrone.Core/Parser/Model/ParsedEpisodeInfo.cs b/src/NzbDrone.Core/Parser/Model/ParsedEpisodeInfo.cs similarity index 100% rename from NzbDrone.Core/Parser/Model/ParsedEpisodeInfo.cs rename to src/NzbDrone.Core/Parser/Model/ParsedEpisodeInfo.cs diff --git a/NzbDrone.Core/Parser/Model/ReleaseInfo.cs b/src/NzbDrone.Core/Parser/Model/ReleaseInfo.cs similarity index 100% rename from NzbDrone.Core/Parser/Model/ReleaseInfo.cs rename to src/NzbDrone.Core/Parser/Model/ReleaseInfo.cs diff --git a/NzbDrone.Core/Parser/Model/RemoteEpisode.cs b/src/NzbDrone.Core/Parser/Model/RemoteEpisode.cs similarity index 100% rename from NzbDrone.Core/Parser/Model/RemoteEpisode.cs rename to src/NzbDrone.Core/Parser/Model/RemoteEpisode.cs diff --git a/NzbDrone.Core/Parser/Model/TorrentInfo.cs b/src/NzbDrone.Core/Parser/Model/TorrentInfo.cs similarity index 100% rename from NzbDrone.Core/Parser/Model/TorrentInfo.cs rename to src/NzbDrone.Core/Parser/Model/TorrentInfo.cs diff --git a/NzbDrone.Core/Parser/Parser.cs b/src/NzbDrone.Core/Parser/Parser.cs similarity index 100% rename from NzbDrone.Core/Parser/Parser.cs rename to src/NzbDrone.Core/Parser/Parser.cs diff --git a/NzbDrone.Core/Parser/ParsingService.cs b/src/NzbDrone.Core/Parser/ParsingService.cs similarity index 100% rename from NzbDrone.Core/Parser/ParsingService.cs rename to src/NzbDrone.Core/Parser/ParsingService.cs diff --git a/NzbDrone.Core/Parser/QualityParser.cs b/src/NzbDrone.Core/Parser/QualityParser.cs similarity index 100% rename from NzbDrone.Core/Parser/QualityParser.cs rename to src/NzbDrone.Core/Parser/QualityParser.cs diff --git a/NzbDrone.Core/progressmessaging/CommandUpdatedEvent.cs b/src/NzbDrone.Core/ProgressMessaging/CommandUpdatedEvent.cs similarity index 100% rename from NzbDrone.Core/progressmessaging/CommandUpdatedEvent.cs rename to src/NzbDrone.Core/ProgressMessaging/CommandUpdatedEvent.cs diff --git a/NzbDrone.Core/ProgressMessaging/ProgressMessageTarget.cs b/src/NzbDrone.Core/ProgressMessaging/ProgressMessageTarget.cs similarity index 100% rename from NzbDrone.Core/ProgressMessaging/ProgressMessageTarget.cs rename to src/NzbDrone.Core/ProgressMessaging/ProgressMessageTarget.cs diff --git a/NzbDrone.Core/Properties/AnalysisRules.ruleset b/src/NzbDrone.Core/Properties/AnalysisRules.ruleset similarity index 100% rename from NzbDrone.Core/Properties/AnalysisRules.ruleset rename to src/NzbDrone.Core/Properties/AnalysisRules.ruleset diff --git a/NzbDrone.Core/Properties/AssemblyInfo.cs b/src/NzbDrone.Core/Properties/AssemblyInfo.cs similarity index 100% rename from NzbDrone.Core/Properties/AssemblyInfo.cs rename to src/NzbDrone.Core/Properties/AssemblyInfo.cs diff --git a/NzbDrone.Core/Qualities/Quality.cs b/src/NzbDrone.Core/Qualities/Quality.cs similarity index 100% rename from NzbDrone.Core/Qualities/Quality.cs rename to src/NzbDrone.Core/Qualities/Quality.cs diff --git a/NzbDrone.Core/Qualities/QualityProfile.cs b/src/NzbDrone.Core/Qualities/QualityProfile.cs similarity index 100% rename from NzbDrone.Core/Qualities/QualityProfile.cs rename to src/NzbDrone.Core/Qualities/QualityProfile.cs diff --git a/NzbDrone.Core/Qualities/QualityProfileInUseException.cs b/src/NzbDrone.Core/Qualities/QualityProfileInUseException.cs similarity index 100% rename from NzbDrone.Core/Qualities/QualityProfileInUseException.cs rename to src/NzbDrone.Core/Qualities/QualityProfileInUseException.cs diff --git a/NzbDrone.Core/Qualities/QualityProfileRepository.cs b/src/NzbDrone.Core/Qualities/QualityProfileRepository.cs similarity index 100% rename from NzbDrone.Core/Qualities/QualityProfileRepository.cs rename to src/NzbDrone.Core/Qualities/QualityProfileRepository.cs diff --git a/NzbDrone.Core/Qualities/QualityProfileService.cs b/src/NzbDrone.Core/Qualities/QualityProfileService.cs similarity index 100% rename from NzbDrone.Core/Qualities/QualityProfileService.cs rename to src/NzbDrone.Core/Qualities/QualityProfileService.cs diff --git a/NzbDrone.Core/Qualities/QualitySize.cs b/src/NzbDrone.Core/Qualities/QualitySize.cs similarity index 100% rename from NzbDrone.Core/Qualities/QualitySize.cs rename to src/NzbDrone.Core/Qualities/QualitySize.cs diff --git a/NzbDrone.Core/Qualities/QualitySizeRepository.cs b/src/NzbDrone.Core/Qualities/QualitySizeRepository.cs similarity index 100% rename from NzbDrone.Core/Qualities/QualitySizeRepository.cs rename to src/NzbDrone.Core/Qualities/QualitySizeRepository.cs diff --git a/NzbDrone.Core/Qualities/QualitySizeService.cs b/src/NzbDrone.Core/Qualities/QualitySizeService.cs similarity index 100% rename from NzbDrone.Core/Qualities/QualitySizeService.cs rename to src/NzbDrone.Core/Qualities/QualitySizeService.cs diff --git a/NzbDrone.Core/Queue/Queue.cs b/src/NzbDrone.Core/Queue/Queue.cs similarity index 100% rename from NzbDrone.Core/Queue/Queue.cs rename to src/NzbDrone.Core/Queue/Queue.cs diff --git a/NzbDrone.Core/Queue/QueueScheduler.cs b/src/NzbDrone.Core/Queue/QueueScheduler.cs similarity index 100% rename from NzbDrone.Core/Queue/QueueScheduler.cs rename to src/NzbDrone.Core/Queue/QueueScheduler.cs diff --git a/NzbDrone.Core/Queue/QueueService.cs b/src/NzbDrone.Core/Queue/QueueService.cs similarity index 100% rename from NzbDrone.Core/Queue/QueueService.cs rename to src/NzbDrone.Core/Queue/QueueService.cs diff --git a/NzbDrone.Core/Queue/UpdateQueueEvent.cs b/src/NzbDrone.Core/Queue/UpdateQueueEvent.cs similarity index 100% rename from NzbDrone.Core/Queue/UpdateQueueEvent.cs rename to src/NzbDrone.Core/Queue/UpdateQueueEvent.cs diff --git a/NzbDrone.Core/Rest/RestException.cs b/src/NzbDrone.Core/Rest/RestException.cs similarity index 100% rename from NzbDrone.Core/Rest/RestException.cs rename to src/NzbDrone.Core/Rest/RestException.cs diff --git a/NzbDrone.Core/Rest/RestSharpExtensions.cs b/src/NzbDrone.Core/Rest/RestSharpExtensions.cs similarity index 100% rename from NzbDrone.Core/Rest/RestSharpExtensions.cs rename to src/NzbDrone.Core/Rest/RestSharpExtensions.cs diff --git a/NzbDrone.Core/RootFolders/RootFolder.cs b/src/NzbDrone.Core/RootFolders/RootFolder.cs similarity index 100% rename from NzbDrone.Core/RootFolders/RootFolder.cs rename to src/NzbDrone.Core/RootFolders/RootFolder.cs diff --git a/NzbDrone.Core/RootFolders/RootFolderService.cs b/src/NzbDrone.Core/RootFolders/RootFolderService.cs similarity index 100% rename from NzbDrone.Core/RootFolders/RootFolderService.cs rename to src/NzbDrone.Core/RootFolders/RootFolderService.cs diff --git a/NzbDrone.Core/RootFolders/UnmappedFolder.cs b/src/NzbDrone.Core/RootFolders/UnmappedFolder.cs similarity index 100% rename from NzbDrone.Core/RootFolders/UnmappedFolder.cs rename to src/NzbDrone.Core/RootFolders/UnmappedFolder.cs diff --git a/NzbDrone.Core/SeriesStats/SeriesStatistics.cs b/src/NzbDrone.Core/SeriesStats/SeriesStatistics.cs similarity index 100% rename from NzbDrone.Core/SeriesStats/SeriesStatistics.cs rename to src/NzbDrone.Core/SeriesStats/SeriesStatistics.cs diff --git a/NzbDrone.Core/SeriesStats/SeriesStatisticsRepository.cs b/src/NzbDrone.Core/SeriesStats/SeriesStatisticsRepository.cs similarity index 100% rename from NzbDrone.Core/SeriesStats/SeriesStatisticsRepository.cs rename to src/NzbDrone.Core/SeriesStats/SeriesStatisticsRepository.cs diff --git a/NzbDrone.Core/SeriesStats/SeriesStatisticsService.cs b/src/NzbDrone.Core/SeriesStats/SeriesStatisticsService.cs similarity index 100% rename from NzbDrone.Core/SeriesStats/SeriesStatisticsService.cs rename to src/NzbDrone.Core/SeriesStats/SeriesStatisticsService.cs diff --git a/NzbDrone.Core/ThingiProvider/ConfigContractNotFoundException.cs b/src/NzbDrone.Core/ThingiProvider/ConfigContractNotFoundException.cs similarity index 100% rename from NzbDrone.Core/ThingiProvider/ConfigContractNotFoundException.cs rename to src/NzbDrone.Core/ThingiProvider/ConfigContractNotFoundException.cs diff --git a/NzbDrone.Core/ThingiProvider/IProvider.cs b/src/NzbDrone.Core/ThingiProvider/IProvider.cs similarity index 100% rename from NzbDrone.Core/ThingiProvider/IProvider.cs rename to src/NzbDrone.Core/ThingiProvider/IProvider.cs diff --git a/NzbDrone.Core/ThingiProvider/IProviderConfig.cs b/src/NzbDrone.Core/ThingiProvider/IProviderConfig.cs similarity index 100% rename from NzbDrone.Core/ThingiProvider/IProviderConfig.cs rename to src/NzbDrone.Core/ThingiProvider/IProviderConfig.cs diff --git a/NzbDrone.Core/ThingiProvider/IProviderFactory.cs b/src/NzbDrone.Core/ThingiProvider/IProviderFactory.cs similarity index 100% rename from NzbDrone.Core/ThingiProvider/IProviderFactory.cs rename to src/NzbDrone.Core/ThingiProvider/IProviderFactory.cs diff --git a/NzbDrone.Core/ThingiProvider/IProviderRepository.cs b/src/NzbDrone.Core/ThingiProvider/IProviderRepository.cs similarity index 100% rename from NzbDrone.Core/ThingiProvider/IProviderRepository.cs rename to src/NzbDrone.Core/ThingiProvider/IProviderRepository.cs diff --git a/NzbDrone.Core/ThingiProvider/NullConfig.cs b/src/NzbDrone.Core/ThingiProvider/NullConfig.cs similarity index 100% rename from NzbDrone.Core/ThingiProvider/NullConfig.cs rename to src/NzbDrone.Core/ThingiProvider/NullConfig.cs diff --git a/NzbDrone.Core/ThingiProvider/ProviderDefinition.cs b/src/NzbDrone.Core/ThingiProvider/ProviderDefinition.cs similarity index 100% rename from NzbDrone.Core/ThingiProvider/ProviderDefinition.cs rename to src/NzbDrone.Core/ThingiProvider/ProviderDefinition.cs diff --git a/NzbDrone.Core/ThingiProvider/ProviderFactory.cs b/src/NzbDrone.Core/ThingiProvider/ProviderFactory.cs similarity index 100% rename from NzbDrone.Core/ThingiProvider/ProviderFactory.cs rename to src/NzbDrone.Core/ThingiProvider/ProviderFactory.cs diff --git a/NzbDrone.Core/ThingiProvider/ProviderRepository.cs b/src/NzbDrone.Core/ThingiProvider/ProviderRepository.cs similarity index 100% rename from NzbDrone.Core/ThingiProvider/ProviderRepository.cs rename to src/NzbDrone.Core/ThingiProvider/ProviderRepository.cs diff --git a/NzbDrone.Core/Tv/Commands/RefreshSeriesCommand.cs b/src/NzbDrone.Core/Tv/Commands/RefreshSeriesCommand.cs similarity index 100% rename from NzbDrone.Core/Tv/Commands/RefreshSeriesCommand.cs rename to src/NzbDrone.Core/Tv/Commands/RefreshSeriesCommand.cs diff --git a/NzbDrone.Core/Tv/Episode.cs b/src/NzbDrone.Core/Tv/Episode.cs similarity index 100% rename from NzbDrone.Core/Tv/Episode.cs rename to src/NzbDrone.Core/Tv/Episode.cs diff --git a/NzbDrone.Core/Tv/EpisodeRepository.cs b/src/NzbDrone.Core/Tv/EpisodeRepository.cs similarity index 97% rename from NzbDrone.Core/Tv/EpisodeRepository.cs rename to src/NzbDrone.Core/Tv/EpisodeRepository.cs index 3a9ade8d9..57d8acbc1 100644 --- a/NzbDrone.Core/Tv/EpisodeRepository.cs +++ b/src/NzbDrone.Core/Tv/EpisodeRepository.cs @@ -1,139 +1,139 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Marr.Data.QGen; -using NzbDrone.Core.Datastore; -using NzbDrone.Core.Messaging.Events; - - -namespace NzbDrone.Core.Tv -{ - public interface IEpisodeRepository : IBasicRepository - { - Episode Find(int seriesId, int season, int episodeNumber); - Episode Get(int seriesId, DateTime date); - Episode Find(int seriesId, DateTime date); - List GetEpisodes(int seriesId); - List GetEpisodes(int seriesId, int seasonNumber); - List GetEpisodeByFileId(int fileId); - PagingSpec EpisodesWithoutFiles(PagingSpec pagingSpec, bool includeSpecials); - Episode FindEpisodeBySceneNumbering(int seriesId, int seasonNumber, int episodeNumber); - List EpisodesBetweenDates(DateTime startDate, DateTime endDate); - void SetMonitoredFlat(Episode episode, bool monitored); - void SetMonitoredBySeason(int seriesId, int seasonNumber, bool monitored); - void SetFileId(int episodeId, int fileId); - } - - public class EpisodeRepository : BasicRepository, IEpisodeRepository - { - private readonly IDatabase _database; - - public EpisodeRepository(IDatabase database, IEventAggregator eventAggregator) - : base(database, eventAggregator) - { - _database = database; - } - - public Episode Find(int seriesId, int season, int episodeNumber) - { - return Query.SingleOrDefault(s => s.SeriesId == seriesId && s.SeasonNumber == season && s.EpisodeNumber == episodeNumber); - } - - public Episode Get(int seriesId, DateTime date) - { - return Query.Single(s => s.SeriesId == seriesId && s.AirDate == date.ToString(Episode.AIR_DATE_FORMAT)); - } - - public Episode Find(int seriesId, DateTime date) - { - return Query.SingleOrDefault(s => s.SeriesId == seriesId && s.AirDate == date.ToString(Episode.AIR_DATE_FORMAT)); - } - - public List GetEpisodes(int seriesId) - { - return Query.Where(s => s.SeriesId == seriesId).ToList(); - } - - public List GetEpisodes(int seriesId, int seasonNumber) - { - return Query.Where(s => s.SeriesId == seriesId && s.SeasonNumber == seasonNumber).ToList(); - } - - public List GetEpisodeByFileId(int fileId) - { - return Query.Where(e => e.EpisodeFileId == fileId).ToList(); - } - - public PagingSpec EpisodesWithoutFiles(PagingSpec pagingSpec, bool includeSpecials) - { - var currentTime = DateTime.UtcNow; - var startingSeasonNumber = 1; - - if (includeSpecials) - { - startingSeasonNumber = 0; - } - - pagingSpec.Records = GetEpisodesWithoutFilesQuery(pagingSpec, currentTime, startingSeasonNumber).ToList(); - pagingSpec.TotalRecords = GetEpisodesWithoutFilesQuery(pagingSpec, currentTime, startingSeasonNumber).GetRowCount(); - - return pagingSpec; - } - - public Episode FindEpisodeBySceneNumbering(int seriesId, int seasonNumber, int episodeNumber) - { - return Query.SingleOrDefault(s => s.SeriesId == seriesId && s.SceneSeasonNumber == seasonNumber && s.SceneEpisodeNumber == episodeNumber); - } - - - public List EpisodesBetweenDates(DateTime startDate, DateTime endDate) - { - return Query.Join(JoinType.Inner, e => e.Series, (e, s) => e.SeriesId == s.Id) - .Where(e => e.AirDateUtc >= startDate) - .AndWhere(e => e.AirDateUtc <= endDate) - .AndWhere(e => e.Monitored) - .AndWhere(e => e.Series.Monitored) - .ToList(); - } - - public void SetMonitoredFlat(Episode episode, bool monitored) - { - episode.Monitored = monitored; - SetFields(episode, p => p.Monitored); - } - - public void SetMonitoredBySeason(int seriesId, int seasonNumber, bool monitored) - { - var mapper = _database.GetDataMapper(); - - mapper.AddParameter("seriesId", seriesId); - mapper.AddParameter("seasonNumber", seasonNumber); - mapper.AddParameter("monitored", monitored); - - const string sql = "UPDATE Episodes " + - "SET Monitored = @monitored " + - "WHERE SeriesId = @seriesId " + - "AND SeasonNumber = @seasonNumber"; - - mapper.ExecuteNonQuery(sql); - } - - public void SetFileId(int episodeId, int fileId) - { - SetFields(new Episode { Id = episodeId, EpisodeFileId = fileId }, episode => episode.EpisodeFileId); - } - - private SortBuilder GetEpisodesWithoutFilesQuery(PagingSpec pagingSpec, DateTime currentTime, int startingSeasonNumber) - { - return Query.Join(JoinType.Inner, e => e.Series, (e, s) => e.SeriesId == s.Id) - .Where(e => e.EpisodeFileId == 0) - .AndWhere(e => e.SeasonNumber >= startingSeasonNumber) - .AndWhere(e => e.AirDateUtc <= currentTime) - .AndWhere(e => e.Monitored) - .AndWhere(e => e.Series.Monitored) - .OrderBy(pagingSpec.OrderByClause(), pagingSpec.ToSortDirection()) - .Skip(pagingSpec.PagingOffset()) - .Take(pagingSpec.PageSize); - } - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using Marr.Data.QGen; +using NzbDrone.Core.Datastore; +using NzbDrone.Core.Messaging.Events; + + +namespace NzbDrone.Core.Tv +{ + public interface IEpisodeRepository : IBasicRepository + { + Episode Find(int seriesId, int season, int episodeNumber); + Episode Get(int seriesId, DateTime date); + Episode Find(int seriesId, DateTime date); + List GetEpisodes(int seriesId); + List GetEpisodes(int seriesId, int seasonNumber); + List GetEpisodeByFileId(int fileId); + PagingSpec EpisodesWithoutFiles(PagingSpec pagingSpec, bool includeSpecials); + Episode FindEpisodeBySceneNumbering(int seriesId, int seasonNumber, int episodeNumber); + List EpisodesBetweenDates(DateTime startDate, DateTime endDate); + void SetMonitoredFlat(Episode episode, bool monitored); + void SetMonitoredBySeason(int seriesId, int seasonNumber, bool monitored); + void SetFileId(int episodeId, int fileId); + } + + public class EpisodeRepository : BasicRepository, IEpisodeRepository + { + private readonly IDatabase _database; + + public EpisodeRepository(IDatabase database, IEventAggregator eventAggregator) + : base(database, eventAggregator) + { + _database = database; + } + + public Episode Find(int seriesId, int season, int episodeNumber) + { + return Query.SingleOrDefault(s => s.SeriesId == seriesId && s.SeasonNumber == season && s.EpisodeNumber == episodeNumber); + } + + public Episode Get(int seriesId, DateTime date) + { + return Query.Single(s => s.SeriesId == seriesId && s.AirDate == date.ToString(Episode.AIR_DATE_FORMAT)); + } + + public Episode Find(int seriesId, DateTime date) + { + return Query.SingleOrDefault(s => s.SeriesId == seriesId && s.AirDate == date.ToString(Episode.AIR_DATE_FORMAT)); + } + + public List GetEpisodes(int seriesId) + { + return Query.Where(s => s.SeriesId == seriesId).ToList(); + } + + public List GetEpisodes(int seriesId, int seasonNumber) + { + return Query.Where(s => s.SeriesId == seriesId && s.SeasonNumber == seasonNumber).ToList(); + } + + public List GetEpisodeByFileId(int fileId) + { + return Query.Where(e => e.EpisodeFileId == fileId).ToList(); + } + + public PagingSpec EpisodesWithoutFiles(PagingSpec pagingSpec, bool includeSpecials) + { + var currentTime = DateTime.UtcNow; + var startingSeasonNumber = 1; + + if (includeSpecials) + { + startingSeasonNumber = 0; + } + + pagingSpec.Records = GetEpisodesWithoutFilesQuery(pagingSpec, currentTime, startingSeasonNumber).ToList(); + pagingSpec.TotalRecords = GetEpisodesWithoutFilesQuery(pagingSpec, currentTime, startingSeasonNumber).GetRowCount(); + + return pagingSpec; + } + + public Episode FindEpisodeBySceneNumbering(int seriesId, int seasonNumber, int episodeNumber) + { + return Query.SingleOrDefault(s => s.SeriesId == seriesId && s.SceneSeasonNumber == seasonNumber && s.SceneEpisodeNumber == episodeNumber); + } + + + public List EpisodesBetweenDates(DateTime startDate, DateTime endDate) + { + return Query.Join(JoinType.Inner, e => e.Series, (e, s) => e.SeriesId == s.Id) + .Where(e => e.AirDateUtc >= startDate) + .AndWhere(e => e.AirDateUtc <= endDate) + .AndWhere(e => e.Monitored) + .AndWhere(e => e.Series.Monitored) + .ToList(); + } + + public void SetMonitoredFlat(Episode episode, bool monitored) + { + episode.Monitored = monitored; + SetFields(episode, p => p.Monitored); + } + + public void SetMonitoredBySeason(int seriesId, int seasonNumber, bool monitored) + { + var mapper = _database.GetDataMapper(); + + mapper.AddParameter("seriesId", seriesId); + mapper.AddParameter("seasonNumber", seasonNumber); + mapper.AddParameter("monitored", monitored); + + const string sql = "UPDATE Episodes " + + "SET Monitored = @monitored " + + "WHERE SeriesId = @seriesId " + + "AND SeasonNumber = @seasonNumber"; + + mapper.ExecuteNonQuery(sql); + } + + public void SetFileId(int episodeId, int fileId) + { + SetFields(new Episode { Id = episodeId, EpisodeFileId = fileId }, episode => episode.EpisodeFileId); + } + + private SortBuilder GetEpisodesWithoutFilesQuery(PagingSpec pagingSpec, DateTime currentTime, int startingSeasonNumber) + { + return Query.Join(JoinType.Inner, e => e.Series, (e, s) => e.SeriesId == s.Id) + .Where(e => e.EpisodeFileId == 0) + .AndWhere(e => e.SeasonNumber >= startingSeasonNumber) + .AndWhere(e => e.AirDateUtc <= currentTime) + .AndWhere(e => e.Monitored) + .AndWhere(e => e.Series.Monitored) + .OrderBy(pagingSpec.OrderByClause(), pagingSpec.ToSortDirection()) + .Skip(pagingSpec.PagingOffset()) + .Take(pagingSpec.PageSize); + } + } +} diff --git a/NzbDrone.Core/Tv/EpisodeService.cs b/src/NzbDrone.Core/Tv/EpisodeService.cs similarity index 100% rename from NzbDrone.Core/Tv/EpisodeService.cs rename to src/NzbDrone.Core/Tv/EpisodeService.cs diff --git a/NzbDrone.Core/Tv/Events/EpisodeInfoAddedEvent.cs b/src/NzbDrone.Core/Tv/Events/EpisodeInfoAddedEvent.cs similarity index 100% rename from NzbDrone.Core/Tv/Events/EpisodeInfoAddedEvent.cs rename to src/NzbDrone.Core/Tv/Events/EpisodeInfoAddedEvent.cs diff --git a/NzbDrone.Core/Tv/Events/EpisodeInfoDeletedEvent.cs b/src/NzbDrone.Core/Tv/Events/EpisodeInfoDeletedEvent.cs similarity index 100% rename from NzbDrone.Core/Tv/Events/EpisodeInfoDeletedEvent.cs rename to src/NzbDrone.Core/Tv/Events/EpisodeInfoDeletedEvent.cs diff --git a/NzbDrone.Core/Tv/Events/EpisodeInfoUpdatedEvent.cs b/src/NzbDrone.Core/Tv/Events/EpisodeInfoUpdatedEvent.cs similarity index 100% rename from NzbDrone.Core/Tv/Events/EpisodeInfoUpdatedEvent.cs rename to src/NzbDrone.Core/Tv/Events/EpisodeInfoUpdatedEvent.cs diff --git a/NzbDrone.Core/Tv/Events/SeriesAddedEvent.cs b/src/NzbDrone.Core/Tv/Events/SeriesAddedEvent.cs similarity index 100% rename from NzbDrone.Core/Tv/Events/SeriesAddedEvent.cs rename to src/NzbDrone.Core/Tv/Events/SeriesAddedEvent.cs diff --git a/NzbDrone.Core/Tv/Events/SeriesDeletedEvent.cs b/src/NzbDrone.Core/Tv/Events/SeriesDeletedEvent.cs similarity index 100% rename from NzbDrone.Core/Tv/Events/SeriesDeletedEvent.cs rename to src/NzbDrone.Core/Tv/Events/SeriesDeletedEvent.cs diff --git a/NzbDrone.Core/Tv/Events/SeriesUpdatedEvent.cs b/src/NzbDrone.Core/Tv/Events/SeriesUpdatedEvent.cs similarity index 100% rename from NzbDrone.Core/Tv/Events/SeriesUpdatedEvent.cs rename to src/NzbDrone.Core/Tv/Events/SeriesUpdatedEvent.cs diff --git a/NzbDrone.Core/Tv/QualityModel.cs b/src/NzbDrone.Core/Tv/QualityModel.cs similarity index 100% rename from NzbDrone.Core/Tv/QualityModel.cs rename to src/NzbDrone.Core/Tv/QualityModel.cs diff --git a/NzbDrone.Core/Tv/RefreshEpisodeService.cs b/src/NzbDrone.Core/Tv/RefreshEpisodeService.cs similarity index 97% rename from NzbDrone.Core/Tv/RefreshEpisodeService.cs rename to src/NzbDrone.Core/Tv/RefreshEpisodeService.cs index 31a90761d..1d1ca0a5b 100644 --- a/NzbDrone.Core/Tv/RefreshEpisodeService.cs +++ b/src/NzbDrone.Core/Tv/RefreshEpisodeService.cs @@ -1,144 +1,144 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using NLog; -using NzbDrone.Common; -using NzbDrone.Core.Messaging.Events; -using NzbDrone.Core.Tv.Events; - -namespace NzbDrone.Core.Tv -{ - public interface IRefreshEpisodeService - { - void RefreshEpisodeInfo(Series series, IEnumerable remoteEpisodes); - } - - public class RefreshEpisodeService : IRefreshEpisodeService - { - private readonly IEpisodeService _episodeService; - private readonly IEventAggregator _eventAggregator; - private readonly Logger _logger; - - public RefreshEpisodeService(IEpisodeService episodeService, IEventAggregator eventAggregator, Logger logger) - { - _episodeService = episodeService; - _eventAggregator = eventAggregator; - _logger = logger; - } - - public void RefreshEpisodeInfo(Series series, IEnumerable remoteEpisodes) - { - _logger.Info("Starting episode info refresh for: {0}", series); - var successCount = 0; - var failCount = 0; - - var existingEpisodes = _episodeService.GetEpisodeBySeries(series.Id); - var seasons = series.Seasons; - - var updateList = new List(); - var newList = new List(); - var dupeFreeRemoteEpisodes = remoteEpisodes.DistinctBy(m => new { m.SeasonNumber, m.EpisodeNumber }).ToList(); - - foreach (var episode in dupeFreeRemoteEpisodes.OrderBy(e => e.SeasonNumber).ThenBy(e => e.EpisodeNumber)) - { - try - { - var episodeToUpdate = existingEpisodes.FirstOrDefault(e => e.SeasonNumber == episode.SeasonNumber && e.EpisodeNumber == episode.EpisodeNumber); - - if (episodeToUpdate != null) - { - existingEpisodes.Remove(episodeToUpdate); - updateList.Add(episodeToUpdate); - } - else - { - episodeToUpdate = new Episode(); - episodeToUpdate.Monitored = GetMonitoredStatus(episode, seasons); - newList.Add(episodeToUpdate); - } - - episodeToUpdate.SeriesId = series.Id; - episodeToUpdate.TvDbEpisodeId = episode.TvDbEpisodeId; - episodeToUpdate.EpisodeNumber = episode.EpisodeNumber; - episodeToUpdate.SeasonNumber = episode.SeasonNumber; - episodeToUpdate.Title = episode.Title; - episodeToUpdate.Overview = episode.Overview; - episodeToUpdate.AirDate = episode.AirDate; - episodeToUpdate.AirDateUtc = episode.AirDateUtc; - - successCount++; - } - catch (Exception e) - { - _logger.FatalException(String.Format("An error has occurred while updating episode info for series {0}. {1}", series, episode), e); - failCount++; - } - } - - var allEpisodes = new List(); - allEpisodes.AddRange(newList); - allEpisodes.AddRange(updateList); - - AdjustMultiEpisodeAirTime(series, allEpisodes); - - _episodeService.DeleteMany(existingEpisodes); - _episodeService.UpdateMany(updateList); - _episodeService.InsertMany(newList); - - if (newList.Any()) - { - _eventAggregator.PublishEvent(new EpisodeInfoAddedEvent(newList, series)); - } - - if (updateList.Any()) - { - _eventAggregator.PublishEvent(new EpisodeInfoUpdatedEvent(updateList)); - } - - if (existingEpisodes.Any()) - { - _eventAggregator.PublishEvent(new EpisodeInfoDeletedEvent(updateList)); - } - - if (failCount != 0) - { - _logger.Info("Finished episode refresh for series: {0}. Successful: {1} - Failed: {2} ", - series.Title, successCount, failCount); - } - else - { - _logger.Info("Finished episode refresh for series: {0}.", series); - } - } - - private static bool GetMonitoredStatus(Episode episode, IEnumerable seasons) - { - if (episode.EpisodeNumber == 0 && episode.SeasonNumber != 1) - { - return false; - } - - var season = seasons.SingleOrDefault(c => c.SeasonNumber == episode.SeasonNumber); - return season == null || season.Monitored; - } - - private static void AdjustMultiEpisodeAirTime(Series series, IEnumerable allEpisodes) - { - var groups = - allEpisodes.Where(c => c.AirDateUtc.HasValue) - .GroupBy(e => new { e.SeasonNumber, e.AirDate }) - .Where(g => g.Count() > 1) - .ToList(); - - foreach (var group in groups) - { - var episodeCount = 0; - foreach (var episode in @group.OrderBy(e => e.SeasonNumber).ThenBy(e => e.EpisodeNumber)) - { - episode.AirDateUtc = episode.AirDateUtc.Value.AddMinutes(series.Runtime * episodeCount); - episodeCount++; - } - } - } - } +using System; +using System.Collections.Generic; +using System.Linq; +using NLog; +using NzbDrone.Common; +using NzbDrone.Core.Messaging.Events; +using NzbDrone.Core.Tv.Events; + +namespace NzbDrone.Core.Tv +{ + public interface IRefreshEpisodeService + { + void RefreshEpisodeInfo(Series series, IEnumerable remoteEpisodes); + } + + public class RefreshEpisodeService : IRefreshEpisodeService + { + private readonly IEpisodeService _episodeService; + private readonly IEventAggregator _eventAggregator; + private readonly Logger _logger; + + public RefreshEpisodeService(IEpisodeService episodeService, IEventAggregator eventAggregator, Logger logger) + { + _episodeService = episodeService; + _eventAggregator = eventAggregator; + _logger = logger; + } + + public void RefreshEpisodeInfo(Series series, IEnumerable remoteEpisodes) + { + _logger.Info("Starting episode info refresh for: {0}", series); + var successCount = 0; + var failCount = 0; + + var existingEpisodes = _episodeService.GetEpisodeBySeries(series.Id); + var seasons = series.Seasons; + + var updateList = new List(); + var newList = new List(); + var dupeFreeRemoteEpisodes = remoteEpisodes.DistinctBy(m => new { m.SeasonNumber, m.EpisodeNumber }).ToList(); + + foreach (var episode in dupeFreeRemoteEpisodes.OrderBy(e => e.SeasonNumber).ThenBy(e => e.EpisodeNumber)) + { + try + { + var episodeToUpdate = existingEpisodes.FirstOrDefault(e => e.SeasonNumber == episode.SeasonNumber && e.EpisodeNumber == episode.EpisodeNumber); + + if (episodeToUpdate != null) + { + existingEpisodes.Remove(episodeToUpdate); + updateList.Add(episodeToUpdate); + } + else + { + episodeToUpdate = new Episode(); + episodeToUpdate.Monitored = GetMonitoredStatus(episode, seasons); + newList.Add(episodeToUpdate); + } + + episodeToUpdate.SeriesId = series.Id; + episodeToUpdate.TvDbEpisodeId = episode.TvDbEpisodeId; + episodeToUpdate.EpisodeNumber = episode.EpisodeNumber; + episodeToUpdate.SeasonNumber = episode.SeasonNumber; + episodeToUpdate.Title = episode.Title; + episodeToUpdate.Overview = episode.Overview; + episodeToUpdate.AirDate = episode.AirDate; + episodeToUpdate.AirDateUtc = episode.AirDateUtc; + + successCount++; + } + catch (Exception e) + { + _logger.FatalException(String.Format("An error has occurred while updating episode info for series {0}. {1}", series, episode), e); + failCount++; + } + } + + var allEpisodes = new List(); + allEpisodes.AddRange(newList); + allEpisodes.AddRange(updateList); + + AdjustMultiEpisodeAirTime(series, allEpisodes); + + _episodeService.DeleteMany(existingEpisodes); + _episodeService.UpdateMany(updateList); + _episodeService.InsertMany(newList); + + if (newList.Any()) + { + _eventAggregator.PublishEvent(new EpisodeInfoAddedEvent(newList, series)); + } + + if (updateList.Any()) + { + _eventAggregator.PublishEvent(new EpisodeInfoUpdatedEvent(updateList)); + } + + if (existingEpisodes.Any()) + { + _eventAggregator.PublishEvent(new EpisodeInfoDeletedEvent(updateList)); + } + + if (failCount != 0) + { + _logger.Info("Finished episode refresh for series: {0}. Successful: {1} - Failed: {2} ", + series.Title, successCount, failCount); + } + else + { + _logger.Info("Finished episode refresh for series: {0}.", series); + } + } + + private static bool GetMonitoredStatus(Episode episode, IEnumerable seasons) + { + if (episode.EpisodeNumber == 0 && episode.SeasonNumber != 1) + { + return false; + } + + var season = seasons.SingleOrDefault(c => c.SeasonNumber == episode.SeasonNumber); + return season == null || season.Monitored; + } + + private static void AdjustMultiEpisodeAirTime(Series series, IEnumerable allEpisodes) + { + var groups = + allEpisodes.Where(c => c.AirDateUtc.HasValue) + .GroupBy(e => new { e.SeasonNumber, e.AirDate }) + .Where(g => g.Count() > 1) + .ToList(); + + foreach (var group in groups) + { + var episodeCount = 0; + foreach (var episode in @group.OrderBy(e => e.SeasonNumber).ThenBy(e => e.EpisodeNumber)) + { + episode.AirDateUtc = episode.AirDateUtc.Value.AddMinutes(series.Runtime * episodeCount); + episodeCount++; + } + } + } + } } \ No newline at end of file diff --git a/NzbDrone.Core/Tv/RefreshSeriesService.cs b/src/NzbDrone.Core/Tv/RefreshSeriesService.cs similarity index 100% rename from NzbDrone.Core/Tv/RefreshSeriesService.cs rename to src/NzbDrone.Core/Tv/RefreshSeriesService.cs diff --git a/NzbDrone.Core/Tv/Season.cs b/src/NzbDrone.Core/Tv/Season.cs similarity index 100% rename from NzbDrone.Core/Tv/Season.cs rename to src/NzbDrone.Core/Tv/Season.cs diff --git a/NzbDrone.Core/Tv/Series.cs b/src/NzbDrone.Core/Tv/Series.cs similarity index 100% rename from NzbDrone.Core/Tv/Series.cs rename to src/NzbDrone.Core/Tv/Series.cs diff --git a/NzbDrone.Core/Tv/SeriesRepository.cs b/src/NzbDrone.Core/Tv/SeriesRepository.cs similarity index 100% rename from NzbDrone.Core/Tv/SeriesRepository.cs rename to src/NzbDrone.Core/Tv/SeriesRepository.cs diff --git a/NzbDrone.Core/Tv/SeriesService.cs b/src/NzbDrone.Core/Tv/SeriesService.cs similarity index 100% rename from NzbDrone.Core/Tv/SeriesService.cs rename to src/NzbDrone.Core/Tv/SeriesService.cs diff --git a/NzbDrone.Core/Tv/SeriesStatusType.cs b/src/NzbDrone.Core/Tv/SeriesStatusType.cs similarity index 100% rename from NzbDrone.Core/Tv/SeriesStatusType.cs rename to src/NzbDrone.Core/Tv/SeriesStatusType.cs diff --git a/NzbDrone.Core/Tv/SeriesTypes.cs b/src/NzbDrone.Core/Tv/SeriesTypes.cs similarity index 100% rename from NzbDrone.Core/Tv/SeriesTypes.cs rename to src/NzbDrone.Core/Tv/SeriesTypes.cs diff --git a/NzbDrone.Core/Update/Commands/ApplicationUpdateCommand.cs b/src/NzbDrone.Core/Update/Commands/ApplicationUpdateCommand.cs similarity index 100% rename from NzbDrone.Core/Update/Commands/ApplicationUpdateCommand.cs rename to src/NzbDrone.Core/Update/Commands/ApplicationUpdateCommand.cs diff --git a/NzbDrone.Core/Update/InstallUpdateService.cs b/src/NzbDrone.Core/Update/InstallUpdateService.cs similarity index 100% rename from NzbDrone.Core/Update/InstallUpdateService.cs rename to src/NzbDrone.Core/Update/InstallUpdateService.cs diff --git a/NzbDrone.Core/Update/RecentUpdateProvider.cs b/src/NzbDrone.Core/Update/RecentUpdateProvider.cs similarity index 100% rename from NzbDrone.Core/Update/RecentUpdateProvider.cs rename to src/NzbDrone.Core/Update/RecentUpdateProvider.cs diff --git a/NzbDrone.Core/Update/UpdateChanges.cs b/src/NzbDrone.Core/Update/UpdateChanges.cs similarity index 100% rename from NzbDrone.Core/Update/UpdateChanges.cs rename to src/NzbDrone.Core/Update/UpdateChanges.cs diff --git a/NzbDrone.Core/Update/UpdateCheckService.cs b/src/NzbDrone.Core/Update/UpdateCheckService.cs similarity index 100% rename from NzbDrone.Core/Update/UpdateCheckService.cs rename to src/NzbDrone.Core/Update/UpdateCheckService.cs diff --git a/NzbDrone.Core/Update/UpdatePackage.cs b/src/NzbDrone.Core/Update/UpdatePackage.cs similarity index 100% rename from NzbDrone.Core/Update/UpdatePackage.cs rename to src/NzbDrone.Core/Update/UpdatePackage.cs diff --git a/NzbDrone.Core/Update/UpdatePackageAvailable.cs b/src/NzbDrone.Core/Update/UpdatePackageAvailable.cs similarity index 100% rename from NzbDrone.Core/Update/UpdatePackageAvailable.cs rename to src/NzbDrone.Core/Update/UpdatePackageAvailable.cs diff --git a/NzbDrone.Core/Update/UpdatePackageProvider.cs b/src/NzbDrone.Core/Update/UpdatePackageProvider.cs similarity index 100% rename from NzbDrone.Core/Update/UpdatePackageProvider.cs rename to src/NzbDrone.Core/Update/UpdatePackageProvider.cs diff --git a/NzbDrone.Core/Validation/RuleBuilderExtensions.cs b/src/NzbDrone.Core/Validation/RuleBuilderExtensions.cs similarity index 100% rename from NzbDrone.Core/Validation/RuleBuilderExtensions.cs rename to src/NzbDrone.Core/Validation/RuleBuilderExtensions.cs diff --git a/NzbDrone.Core/packages.config b/src/NzbDrone.Core/packages.config similarity index 100% rename from NzbDrone.Core/packages.config rename to src/NzbDrone.Core/packages.config diff --git a/NzbDrone.Host/AccessControl/FirewallAdapter.cs b/src/NzbDrone.Host/AccessControl/FirewallAdapter.cs similarity index 100% rename from NzbDrone.Host/AccessControl/FirewallAdapter.cs rename to src/NzbDrone.Host/AccessControl/FirewallAdapter.cs diff --git a/NzbDrone.Host/AccessControl/NetshProvider.cs b/src/NzbDrone.Host/AccessControl/NetshProvider.cs similarity index 100% rename from NzbDrone.Host/AccessControl/NetshProvider.cs rename to src/NzbDrone.Host/AccessControl/NetshProvider.cs diff --git a/NzbDrone.Host/AccessControl/SslAdapter.cs b/src/NzbDrone.Host/AccessControl/SslAdapter.cs similarity index 100% rename from NzbDrone.Host/AccessControl/SslAdapter.cs rename to src/NzbDrone.Host/AccessControl/SslAdapter.cs diff --git a/NzbDrone.Host/AccessControl/UrlAclAdapter.cs b/src/NzbDrone.Host/AccessControl/UrlAclAdapter.cs similarity index 100% rename from NzbDrone.Host/AccessControl/UrlAclAdapter.cs rename to src/NzbDrone.Host/AccessControl/UrlAclAdapter.cs diff --git a/NzbDrone.Host/ApplicationModes.cs b/src/NzbDrone.Host/ApplicationModes.cs similarity index 100% rename from NzbDrone.Host/ApplicationModes.cs rename to src/NzbDrone.Host/ApplicationModes.cs diff --git a/NzbDrone.Host/ApplicationServer.cs b/src/NzbDrone.Host/ApplicationServer.cs similarity index 100% rename from NzbDrone.Host/ApplicationServer.cs rename to src/NzbDrone.Host/ApplicationServer.cs diff --git a/NzbDrone.Host/Bootstrap.cs b/src/NzbDrone.Host/Bootstrap.cs similarity index 100% rename from NzbDrone.Host/Bootstrap.cs rename to src/NzbDrone.Host/Bootstrap.cs diff --git a/NzbDrone.Host/IUserAlert.cs b/src/NzbDrone.Host/IUserAlert.cs similarity index 100% rename from NzbDrone.Host/IUserAlert.cs rename to src/NzbDrone.Host/IUserAlert.cs diff --git a/NzbDrone.Host/MainAppContainerBuilder.cs b/src/NzbDrone.Host/MainAppContainerBuilder.cs similarity index 100% rename from NzbDrone.Host/MainAppContainerBuilder.cs rename to src/NzbDrone.Host/MainAppContainerBuilder.cs diff --git a/NzbDrone.Host/NLog.xsd b/src/NzbDrone.Host/NLog.xsd similarity index 100% rename from NzbDrone.Host/NLog.xsd rename to src/NzbDrone.Host/NLog.xsd diff --git a/NzbDrone.Host/NzbDrone.Host.csproj b/src/NzbDrone.Host/NzbDrone.Host.csproj similarity index 99% rename from NzbDrone.Host/NzbDrone.Host.csproj rename to src/NzbDrone.Host/NzbDrone.Host.csproj index ff8922c0c..b4aa2ad35 100644 --- a/NzbDrone.Host/NzbDrone.Host.csproj +++ b/src/NzbDrone.Host/NzbDrone.Host.csproj @@ -37,7 +37,7 @@ true full false - ..\_output\ + ..\..\_output\ DEBUG;TRACE prompt 4 @@ -48,7 +48,7 @@ x86 pdbonly true - ..\_output\ + ..\..\_output\ TRACE prompt 4 diff --git a/NzbDrone.Host/NzbDrone.ico b/src/NzbDrone.Host/NzbDrone.ico similarity index 100% rename from NzbDrone.Host/NzbDrone.ico rename to src/NzbDrone.Host/NzbDrone.ico diff --git a/NzbDrone.Host/Owin/IHostController.cs b/src/NzbDrone.Host/Owin/IHostController.cs similarity index 100% rename from NzbDrone.Host/Owin/IHostController.cs rename to src/NzbDrone.Host/Owin/IHostController.cs diff --git a/NzbDrone.Host/Owin/MiddleWare/IOwinMiddleWare.cs b/src/NzbDrone.Host/Owin/MiddleWare/IOwinMiddleWare.cs similarity index 100% rename from NzbDrone.Host/Owin/MiddleWare/IOwinMiddleWare.cs rename to src/NzbDrone.Host/Owin/MiddleWare/IOwinMiddleWare.cs diff --git a/NzbDrone.Host/Owin/MiddleWare/NancyMiddleWare.cs b/src/NzbDrone.Host/Owin/MiddleWare/NancyMiddleWare.cs similarity index 100% rename from NzbDrone.Host/Owin/MiddleWare/NancyMiddleWare.cs rename to src/NzbDrone.Host/Owin/MiddleWare/NancyMiddleWare.cs diff --git a/NzbDrone.Host/Owin/MiddleWare/SignalRMiddleWare.cs b/src/NzbDrone.Host/Owin/MiddleWare/SignalRMiddleWare.cs similarity index 100% rename from NzbDrone.Host/Owin/MiddleWare/SignalRMiddleWare.cs rename to src/NzbDrone.Host/Owin/MiddleWare/SignalRMiddleWare.cs diff --git a/NzbDrone.Host/Owin/NlogTextWriter.cs b/src/NzbDrone.Host/Owin/NlogTextWriter.cs similarity index 100% rename from NzbDrone.Host/Owin/NlogTextWriter.cs rename to src/NzbDrone.Host/Owin/NlogTextWriter.cs diff --git a/NzbDrone.Host/Owin/OwinHostController.cs b/src/NzbDrone.Host/Owin/OwinHostController.cs similarity index 100% rename from NzbDrone.Host/Owin/OwinHostController.cs rename to src/NzbDrone.Host/Owin/OwinHostController.cs diff --git a/NzbDrone.Host/Owin/OwinServiceProvider.cs b/src/NzbDrone.Host/Owin/OwinServiceProvider.cs similarity index 100% rename from NzbDrone.Host/Owin/OwinServiceProvider.cs rename to src/NzbDrone.Host/Owin/OwinServiceProvider.cs diff --git a/NzbDrone.Host/Owin/OwinTraceOutputFactory.cs b/src/NzbDrone.Host/Owin/OwinTraceOutputFactory.cs similarity index 100% rename from NzbDrone.Host/Owin/OwinTraceOutputFactory.cs rename to src/NzbDrone.Host/Owin/OwinTraceOutputFactory.cs diff --git a/NzbDrone.Host/Owin/PortInUseException.cs b/src/NzbDrone.Host/Owin/PortInUseException.cs similarity index 100% rename from NzbDrone.Host/Owin/PortInUseException.cs rename to src/NzbDrone.Host/Owin/PortInUseException.cs diff --git a/NzbDrone.Host/PlatformValidation.cs b/src/NzbDrone.Host/PlatformValidation.cs similarity index 100% rename from NzbDrone.Host/PlatformValidation.cs rename to src/NzbDrone.Host/PlatformValidation.cs diff --git a/NzbDrone.Host/PriorityMonitor.cs b/src/NzbDrone.Host/PriorityMonitor.cs similarity index 100% rename from NzbDrone.Host/PriorityMonitor.cs rename to src/NzbDrone.Host/PriorityMonitor.cs diff --git a/NzbDrone.Host/Properties/AssemblyInfo.cs b/src/NzbDrone.Host/Properties/AssemblyInfo.cs similarity index 100% rename from NzbDrone.Host/Properties/AssemblyInfo.cs rename to src/NzbDrone.Host/Properties/AssemblyInfo.cs diff --git a/NzbDrone.Host/Router.cs b/src/NzbDrone.Host/Router.cs similarity index 100% rename from NzbDrone.Host/Router.cs rename to src/NzbDrone.Host/Router.cs diff --git a/NzbDrone.Host/TerminateApplicationException.cs b/src/NzbDrone.Host/TerminateApplicationException.cs similarity index 100% rename from NzbDrone.Host/TerminateApplicationException.cs rename to src/NzbDrone.Host/TerminateApplicationException.cs diff --git a/NzbDrone.Host/app.config b/src/NzbDrone.Host/app.config similarity index 100% rename from NzbDrone.Host/app.config rename to src/NzbDrone.Host/app.config diff --git a/NzbDrone.Host/packages.config b/src/NzbDrone.Host/packages.config similarity index 100% rename from NzbDrone.Host/packages.config rename to src/NzbDrone.Host/packages.config diff --git a/NzbDrone.Integration.Test/Client/ClientBase.cs b/src/NzbDrone.Integration.Test/Client/ClientBase.cs similarity index 96% rename from NzbDrone.Integration.Test/Client/ClientBase.cs rename to src/NzbDrone.Integration.Test/Client/ClientBase.cs index 9cd0b4b7a..a93bfad43 100644 --- a/NzbDrone.Integration.Test/Client/ClientBase.cs +++ b/src/NzbDrone.Integration.Test/Client/ClientBase.cs @@ -1,154 +1,154 @@ -using System.Collections.Generic; -using System.Net; -using FluentAssertions; -using NLog; -using NzbDrone.Api; -using NzbDrone.Api.REST; -using NzbDrone.Common.Serializer; -using RestSharp; -using System.Linq; - -namespace NzbDrone.Integration.Test.Client -{ - public class ClientBase where TResource : RestResource, new() - { - private readonly IRestClient _restClient; - private readonly string _resource; - private readonly string _apiKey; - private readonly Logger _logger; - - public ClientBase(IRestClient restClient, string apiKey, string resource = null) - { - if (resource == null) - { - resource = new TResource().ResourceName; - } - - _restClient = restClient; - _resource = resource; - _apiKey = apiKey; - - _logger = LogManager.GetLogger("REST"); - } - - public List All() - { - var request = BuildRequest(); - return Get>(request); - } - - public PagingResource GetPaged(int pageNumber, int pageSize, string sortKey, string sortDir) - { - var request = BuildRequest(); - request.AddParameter("page", pageNumber); - request.AddParameter("pageSize", pageSize); - request.AddParameter("sortKey", sortKey); - request.AddParameter("sortDir", sortDir); - return Get>(request); - - } - - public TResource Post(TResource body) - { - var request = BuildRequest(); - request.AddBody(body); - return Post(request); - } - - public TResource Put(TResource body) - { - var request = BuildRequest(); - request.AddBody(body); - return Put(request); - } - - public TResource Get(int id, HttpStatusCode statusCode = HttpStatusCode.OK) - { - var request = BuildRequest(id.ToString()); - return Get(request, statusCode); - } - - public TResource GetSingle(HttpStatusCode statusCode = HttpStatusCode.OK) - { - var request = BuildRequest(); - return Get(request, statusCode); - } - - public void Delete(int id) - { - var request = BuildRequest(id.ToString()); - Delete(request); - } - - public List InvalidPost(TResource body) - { - var request = BuildRequest(); - request.AddBody(body); - return Post>(request, HttpStatusCode.BadRequest); - } - - public RestRequest BuildRequest(string command = "") - { - var request = new RestRequest(_resource + "/" + command.Trim('/')) - { - RequestFormat = DataFormat.Json, - }; - - request.AddHeader("Authorization", _apiKey); - - return request; - } - - public T Get(IRestRequest request, HttpStatusCode statusCode = HttpStatusCode.OK) where T : class, new() - { - request.Method = Method.GET; - return Execute(request, statusCode); - } - - public T Post(IRestRequest request, HttpStatusCode statusCode = HttpStatusCode.Created) where T : class, new() - { - request.Method = Method.POST; - return Execute(request, statusCode); - } - - public T Put(IRestRequest request, HttpStatusCode statusCode = HttpStatusCode.Accepted) where T : class, new() - { - request.Method = Method.PUT; - return Execute(request, statusCode); - } - - public void Delete(IRestRequest request, HttpStatusCode statusCode = HttpStatusCode.OK) - { - request.Method = Method.DELETE; - Execute(request, statusCode); - } - - private T Execute(IRestRequest request, HttpStatusCode statusCode) where T : class, new() - { - _logger.Info("{0}: {1}", request.Method, _restClient.BuildUri(request)); - - var response = _restClient.Execute(request); - _logger.Info("Response: {0}", response.Content); - - if (response.ErrorException != null) - { - throw response.ErrorException; - } - - AssertDisableCache(response.Headers); - - response.ErrorMessage.Should().BeBlank(); - - response.StatusCode.Should().Be(statusCode); - - return Json.Deserialize(response.Content); - } - - private static void AssertDisableCache(IList headers) - { - headers.Single(c => c.Name == "Cache-Control").Value.Should().Be("no-cache, no-store, must-revalidate"); - headers.Single(c => c.Name == "Pragma").Value.Should().Be("no-cache"); - headers.Single(c => c.Name == "Expires").Value.Should().Be("0"); - } - } +using System.Collections.Generic; +using System.Net; +using FluentAssertions; +using NLog; +using NzbDrone.Api; +using NzbDrone.Api.REST; +using NzbDrone.Common.Serializer; +using RestSharp; +using System.Linq; + +namespace NzbDrone.Integration.Test.Client +{ + public class ClientBase where TResource : RestResource, new() + { + private readonly IRestClient _restClient; + private readonly string _resource; + private readonly string _apiKey; + private readonly Logger _logger; + + public ClientBase(IRestClient restClient, string apiKey, string resource = null) + { + if (resource == null) + { + resource = new TResource().ResourceName; + } + + _restClient = restClient; + _resource = resource; + _apiKey = apiKey; + + _logger = LogManager.GetLogger("REST"); + } + + public List All() + { + var request = BuildRequest(); + return Get>(request); + } + + public PagingResource GetPaged(int pageNumber, int pageSize, string sortKey, string sortDir) + { + var request = BuildRequest(); + request.AddParameter("page", pageNumber); + request.AddParameter("pageSize", pageSize); + request.AddParameter("sortKey", sortKey); + request.AddParameter("sortDir", sortDir); + return Get>(request); + + } + + public TResource Post(TResource body) + { + var request = BuildRequest(); + request.AddBody(body); + return Post(request); + } + + public TResource Put(TResource body) + { + var request = BuildRequest(); + request.AddBody(body); + return Put(request); + } + + public TResource Get(int id, HttpStatusCode statusCode = HttpStatusCode.OK) + { + var request = BuildRequest(id.ToString()); + return Get(request, statusCode); + } + + public TResource GetSingle(HttpStatusCode statusCode = HttpStatusCode.OK) + { + var request = BuildRequest(); + return Get(request, statusCode); + } + + public void Delete(int id) + { + var request = BuildRequest(id.ToString()); + Delete(request); + } + + public List InvalidPost(TResource body) + { + var request = BuildRequest(); + request.AddBody(body); + return Post>(request, HttpStatusCode.BadRequest); + } + + public RestRequest BuildRequest(string command = "") + { + var request = new RestRequest(_resource + "/" + command.Trim('/')) + { + RequestFormat = DataFormat.Json, + }; + + request.AddHeader("Authorization", _apiKey); + + return request; + } + + public T Get(IRestRequest request, HttpStatusCode statusCode = HttpStatusCode.OK) where T : class, new() + { + request.Method = Method.GET; + return Execute(request, statusCode); + } + + public T Post(IRestRequest request, HttpStatusCode statusCode = HttpStatusCode.Created) where T : class, new() + { + request.Method = Method.POST; + return Execute(request, statusCode); + } + + public T Put(IRestRequest request, HttpStatusCode statusCode = HttpStatusCode.Accepted) where T : class, new() + { + request.Method = Method.PUT; + return Execute(request, statusCode); + } + + public void Delete(IRestRequest request, HttpStatusCode statusCode = HttpStatusCode.OK) + { + request.Method = Method.DELETE; + Execute(request, statusCode); + } + + private T Execute(IRestRequest request, HttpStatusCode statusCode) where T : class, new() + { + _logger.Info("{0}: {1}", request.Method, _restClient.BuildUri(request)); + + var response = _restClient.Execute(request); + _logger.Info("Response: {0}", response.Content); + + if (response.ErrorException != null) + { + throw response.ErrorException; + } + + AssertDisableCache(response.Headers); + + response.ErrorMessage.Should().BeBlank(); + + response.StatusCode.Should().Be(statusCode); + + return Json.Deserialize(response.Content); + } + + private static void AssertDisableCache(IList headers) + { + headers.Single(c => c.Name == "Cache-Control").Value.Should().Be("no-cache, no-store, must-revalidate"); + headers.Single(c => c.Name == "Pragma").Value.Should().Be("no-cache"); + headers.Single(c => c.Name == "Expires").Value.Should().Be("0"); + } + } } \ No newline at end of file diff --git a/NzbDrone.Integration.Test/Client/EpisodeClient.cs b/src/NzbDrone.Integration.Test/Client/EpisodeClient.cs similarity index 100% rename from NzbDrone.Integration.Test/Client/EpisodeClient.cs rename to src/NzbDrone.Integration.Test/Client/EpisodeClient.cs diff --git a/NzbDrone.Integration.Test/Client/IndexerClient.cs b/src/NzbDrone.Integration.Test/Client/IndexerClient.cs similarity index 100% rename from NzbDrone.Integration.Test/Client/IndexerClient.cs rename to src/NzbDrone.Integration.Test/Client/IndexerClient.cs diff --git a/NzbDrone.Integration.Test/Client/ReleaseClient.cs b/src/NzbDrone.Integration.Test/Client/ReleaseClient.cs similarity index 100% rename from NzbDrone.Integration.Test/Client/ReleaseClient.cs rename to src/NzbDrone.Integration.Test/Client/ReleaseClient.cs diff --git a/NzbDrone.Integration.Test/Client/SeriesClient.cs b/src/NzbDrone.Integration.Test/Client/SeriesClient.cs similarity index 100% rename from NzbDrone.Integration.Test/Client/SeriesClient.cs rename to src/NzbDrone.Integration.Test/Client/SeriesClient.cs diff --git a/NzbDrone.Integration.Test/CommandIntegerationTests.cs b/src/NzbDrone.Integration.Test/CommandIntegerationTests.cs similarity index 100% rename from NzbDrone.Integration.Test/CommandIntegerationTests.cs rename to src/NzbDrone.Integration.Test/CommandIntegerationTests.cs diff --git a/NzbDrone.Integration.Test/EpisodeIntegrationTests.cs b/src/NzbDrone.Integration.Test/EpisodeIntegrationTests.cs similarity index 100% rename from NzbDrone.Integration.Test/EpisodeIntegrationTests.cs rename to src/NzbDrone.Integration.Test/EpisodeIntegrationTests.cs diff --git a/NzbDrone.Integration.Test/HistoryIntegrationTest.cs b/src/NzbDrone.Integration.Test/HistoryIntegrationTest.cs similarity index 100% rename from NzbDrone.Integration.Test/HistoryIntegrationTest.cs rename to src/NzbDrone.Integration.Test/HistoryIntegrationTest.cs diff --git a/NzbDrone.Integration.Test/IndexerIntegrationFixture.cs b/src/NzbDrone.Integration.Test/IndexerIntegrationFixture.cs similarity index 100% rename from NzbDrone.Integration.Test/IndexerIntegrationFixture.cs rename to src/NzbDrone.Integration.Test/IndexerIntegrationFixture.cs diff --git a/NzbDrone.Integration.Test/IntegrationTest.cs b/src/NzbDrone.Integration.Test/IntegrationTest.cs similarity index 100% rename from NzbDrone.Integration.Test/IntegrationTest.cs rename to src/NzbDrone.Integration.Test/IntegrationTest.cs diff --git a/NzbDrone.Integration.Test/IntegrationTestDirectoryInfo.cs b/src/NzbDrone.Integration.Test/IntegrationTestDirectoryInfo.cs similarity index 100% rename from NzbDrone.Integration.Test/IntegrationTestDirectoryInfo.cs rename to src/NzbDrone.Integration.Test/IntegrationTestDirectoryInfo.cs diff --git a/NzbDrone.Integration.Test/NamingConfigTests.cs b/src/NzbDrone.Integration.Test/NamingConfigTests.cs similarity index 100% rename from NzbDrone.Integration.Test/NamingConfigTests.cs rename to src/NzbDrone.Integration.Test/NamingConfigTests.cs diff --git a/NzbDrone.Integration.Test/NzbDrone.Integration.Test.csproj b/src/NzbDrone.Integration.Test/NzbDrone.Integration.Test.csproj similarity index 100% rename from NzbDrone.Integration.Test/NzbDrone.Integration.Test.csproj rename to src/NzbDrone.Integration.Test/NzbDrone.Integration.Test.csproj diff --git a/NzbDrone.Integration.Test/NzbDroneRunner.cs b/src/NzbDrone.Integration.Test/NzbDroneRunner.cs similarity index 100% rename from NzbDrone.Integration.Test/NzbDroneRunner.cs rename to src/NzbDrone.Integration.Test/NzbDroneRunner.cs diff --git a/NzbDrone.Integration.Test/Properties/AssemblyInfo.cs b/src/NzbDrone.Integration.Test/Properties/AssemblyInfo.cs similarity index 100% rename from NzbDrone.Integration.Test/Properties/AssemblyInfo.cs rename to src/NzbDrone.Integration.Test/Properties/AssemblyInfo.cs diff --git a/NzbDrone.Integration.Test/QualityProfileIntegrationTest.cs b/src/NzbDrone.Integration.Test/QualityProfileIntegrationTest.cs similarity index 100% rename from NzbDrone.Integration.Test/QualityProfileIntegrationTest.cs rename to src/NzbDrone.Integration.Test/QualityProfileIntegrationTest.cs diff --git a/NzbDrone.Integration.Test/ReleaseIntegrationTest.cs b/src/NzbDrone.Integration.Test/ReleaseIntegrationTest.cs similarity index 100% rename from NzbDrone.Integration.Test/ReleaseIntegrationTest.cs rename to src/NzbDrone.Integration.Test/ReleaseIntegrationTest.cs diff --git a/NzbDrone.Integration.Test/RootFolderIntegrationTest.cs b/src/NzbDrone.Integration.Test/RootFolderIntegrationTest.cs similarity index 100% rename from NzbDrone.Integration.Test/RootFolderIntegrationTest.cs rename to src/NzbDrone.Integration.Test/RootFolderIntegrationTest.cs diff --git a/NzbDrone.Integration.Test/SeriesIntegrationTest.cs b/src/NzbDrone.Integration.Test/SeriesIntegrationTest.cs similarity index 100% rename from NzbDrone.Integration.Test/SeriesIntegrationTest.cs rename to src/NzbDrone.Integration.Test/SeriesIntegrationTest.cs diff --git a/NzbDrone.Integration.Test/packages.config b/src/NzbDrone.Integration.Test/packages.config similarity index 100% rename from NzbDrone.Integration.Test/packages.config rename to src/NzbDrone.Integration.Test/packages.config diff --git a/NzbDrone.Libraries.Test/JsonTests/JsonFixture.cs b/src/NzbDrone.Libraries.Test/JsonTests/JsonFixture.cs similarity index 100% rename from NzbDrone.Libraries.Test/JsonTests/JsonFixture.cs rename to src/NzbDrone.Libraries.Test/JsonTests/JsonFixture.cs diff --git a/NzbDrone.Libraries.Test/NzbDrone.Libraries.Test.csproj b/src/NzbDrone.Libraries.Test/NzbDrone.Libraries.Test.csproj similarity index 100% rename from NzbDrone.Libraries.Test/NzbDrone.Libraries.Test.csproj rename to src/NzbDrone.Libraries.Test/NzbDrone.Libraries.Test.csproj diff --git a/NzbDrone.Libraries.Test/Properties/AssemblyInfo.cs b/src/NzbDrone.Libraries.Test/Properties/AssemblyInfo.cs similarity index 100% rename from NzbDrone.Libraries.Test/Properties/AssemblyInfo.cs rename to src/NzbDrone.Libraries.Test/Properties/AssemblyInfo.cs diff --git a/NzbDrone.Libraries.Test/packages.config b/src/NzbDrone.Libraries.Test/packages.config similarity index 100% rename from NzbDrone.Libraries.Test/packages.config rename to src/NzbDrone.Libraries.Test/packages.config diff --git a/NzbDrone.SignalR/BroadcastSignalRMessage.cs b/src/NzbDrone.SignalR/BroadcastSignalRMessage.cs similarity index 100% rename from NzbDrone.SignalR/BroadcastSignalRMessage.cs rename to src/NzbDrone.SignalR/BroadcastSignalRMessage.cs diff --git a/NzbDrone.SignalR/NoOpPerformanceCounterManager.cs b/src/NzbDrone.SignalR/NoOpPerformanceCounterManager.cs similarity index 100% rename from NzbDrone.SignalR/NoOpPerformanceCounterManager.cs rename to src/NzbDrone.SignalR/NoOpPerformanceCounterManager.cs diff --git a/NzbDrone.SignalR/NzbDrone.SignalR.csproj b/src/NzbDrone.SignalR/NzbDrone.SignalR.csproj similarity index 97% rename from NzbDrone.SignalR/NzbDrone.SignalR.csproj rename to src/NzbDrone.SignalR/NzbDrone.SignalR.csproj index 859651305..c3110ef29 100644 --- a/NzbDrone.SignalR/NzbDrone.SignalR.csproj +++ b/src/NzbDrone.SignalR/NzbDrone.SignalR.csproj @@ -16,7 +16,7 @@ true - bin\x86\Debug\ + ..\..\_output\ DEBUG;TRACE full x86 @@ -24,7 +24,7 @@ MinimumRecommendedRules.ruleset - bin\x86\Release\ + ..\..\_output\ TRACE true pdbonly diff --git a/NzbDrone.SignalR/NzbDronePersistentConnection.cs b/src/NzbDrone.SignalR/NzbDronePersistentConnection.cs similarity index 100% rename from NzbDrone.SignalR/NzbDronePersistentConnection.cs rename to src/NzbDrone.SignalR/NzbDronePersistentConnection.cs diff --git a/NzbDrone.SignalR/Properties/AssemblyInfo.cs b/src/NzbDrone.SignalR/Properties/AssemblyInfo.cs similarity index 100% rename from NzbDrone.SignalR/Properties/AssemblyInfo.cs rename to src/NzbDrone.SignalR/Properties/AssemblyInfo.cs diff --git a/NzbDrone.SignalR/Serializer.cs b/src/NzbDrone.SignalR/Serializer.cs similarity index 100% rename from NzbDrone.SignalR/Serializer.cs rename to src/NzbDrone.SignalR/Serializer.cs diff --git a/NzbDrone.SignalR/SignalRMessage.cs b/src/NzbDrone.SignalR/SignalRMessage.cs similarity index 100% rename from NzbDrone.SignalR/SignalRMessage.cs rename to src/NzbDrone.SignalR/SignalRMessage.cs diff --git a/NzbDrone.SignalR/SignalrDependencyResolver.cs b/src/NzbDrone.SignalR/SignalrDependencyResolver.cs similarity index 100% rename from NzbDrone.SignalR/SignalrDependencyResolver.cs rename to src/NzbDrone.SignalR/SignalrDependencyResolver.cs diff --git a/NzbDrone.SignalR/packages.config b/src/NzbDrone.SignalR/packages.config similarity index 100% rename from NzbDrone.SignalR/packages.config rename to src/NzbDrone.SignalR/packages.config diff --git a/NzbDrone.Test.Common/App.config b/src/NzbDrone.Test.Common/App.config similarity index 100% rename from NzbDrone.Test.Common/App.config rename to src/NzbDrone.Test.Common/App.config diff --git a/NzbDrone.Test.Common/AutoMoq/AutoMoqer.cs b/src/NzbDrone.Test.Common/AutoMoq/AutoMoqer.cs similarity index 100% rename from NzbDrone.Test.Common/AutoMoq/AutoMoqer.cs rename to src/NzbDrone.Test.Common/AutoMoq/AutoMoqer.cs diff --git a/NzbDrone.Test.Common/AutoMoq/License.txt b/src/NzbDrone.Test.Common/AutoMoq/License.txt similarity index 100% rename from NzbDrone.Test.Common/AutoMoq/License.txt rename to src/NzbDrone.Test.Common/AutoMoq/License.txt diff --git a/NzbDrone.Test.Common/AutoMoq/Unity/AutoMockingBuilderStrategy.cs b/src/NzbDrone.Test.Common/AutoMoq/Unity/AutoMockingBuilderStrategy.cs similarity index 100% rename from NzbDrone.Test.Common/AutoMoq/Unity/AutoMockingBuilderStrategy.cs rename to src/NzbDrone.Test.Common/AutoMoq/Unity/AutoMockingBuilderStrategy.cs diff --git a/NzbDrone.Test.Common/AutoMoq/Unity/AutoMockingContainerExtension.cs b/src/NzbDrone.Test.Common/AutoMoq/Unity/AutoMockingContainerExtension.cs similarity index 100% rename from NzbDrone.Test.Common/AutoMoq/Unity/AutoMockingContainerExtension.cs rename to src/NzbDrone.Test.Common/AutoMoq/Unity/AutoMockingContainerExtension.cs diff --git a/NzbDrone.Test.Common/Categories/DiskAccessTestAttribute.cs b/src/NzbDrone.Test.Common/Categories/DiskAccessTestAttribute.cs similarity index 100% rename from NzbDrone.Test.Common/Categories/DiskAccessTestAttribute.cs rename to src/NzbDrone.Test.Common/Categories/DiskAccessTestAttribute.cs diff --git a/NzbDrone.Test.Common/Categories/IntegrationTestAttribute.cs b/src/NzbDrone.Test.Common/Categories/IntegrationTestAttribute.cs similarity index 100% rename from NzbDrone.Test.Common/Categories/IntegrationTestAttribute.cs rename to src/NzbDrone.Test.Common/Categories/IntegrationTestAttribute.cs diff --git a/NzbDrone.Test.Common/ConcurrencyCounter.cs b/src/NzbDrone.Test.Common/ConcurrencyCounter.cs similarity index 100% rename from NzbDrone.Test.Common/ConcurrencyCounter.cs rename to src/NzbDrone.Test.Common/ConcurrencyCounter.cs diff --git a/NzbDrone.Test.Common/ExceptionVerification.cs b/src/NzbDrone.Test.Common/ExceptionVerification.cs similarity index 100% rename from NzbDrone.Test.Common/ExceptionVerification.cs rename to src/NzbDrone.Test.Common/ExceptionVerification.cs diff --git a/NzbDrone.Test.Common/License.txt b/src/NzbDrone.Test.Common/License.txt similarity index 100% rename from NzbDrone.Test.Common/License.txt rename to src/NzbDrone.Test.Common/License.txt diff --git a/NzbDrone.Test.Common/LoggingTest.cs b/src/NzbDrone.Test.Common/LoggingTest.cs similarity index 100% rename from NzbDrone.Test.Common/LoggingTest.cs rename to src/NzbDrone.Test.Common/LoggingTest.cs diff --git a/NzbDrone.Test.Common/MockerExtensions.cs b/src/NzbDrone.Test.Common/MockerExtensions.cs similarity index 100% rename from NzbDrone.Test.Common/MockerExtensions.cs rename to src/NzbDrone.Test.Common/MockerExtensions.cs diff --git a/NzbDrone.Test.Common/NzbDrone.Test.Common.csproj b/src/NzbDrone.Test.Common/NzbDrone.Test.Common.csproj similarity index 100% rename from NzbDrone.Test.Common/NzbDrone.Test.Common.csproj rename to src/NzbDrone.Test.Common/NzbDrone.Test.Common.csproj diff --git a/NzbDrone.Test.Common/ObjectExtentions.cs b/src/NzbDrone.Test.Common/ObjectExtentions.cs similarity index 100% rename from NzbDrone.Test.Common/ObjectExtentions.cs rename to src/NzbDrone.Test.Common/ObjectExtentions.cs diff --git a/NzbDrone.Test.Common/Properties/AssemblyInfo.cs b/src/NzbDrone.Test.Common/Properties/AssemblyInfo.cs similarity index 100% rename from NzbDrone.Test.Common/Properties/AssemblyInfo.cs rename to src/NzbDrone.Test.Common/Properties/AssemblyInfo.cs diff --git a/NzbDrone.Test.Common/ReflectionExtensions.cs b/src/NzbDrone.Test.Common/ReflectionExtensions.cs similarity index 100% rename from NzbDrone.Test.Common/ReflectionExtensions.cs rename to src/NzbDrone.Test.Common/ReflectionExtensions.cs diff --git a/NzbDrone.Test.Common/StringExtensions.cs b/src/NzbDrone.Test.Common/StringExtensions.cs similarity index 100% rename from NzbDrone.Test.Common/StringExtensions.cs rename to src/NzbDrone.Test.Common/StringExtensions.cs diff --git a/NzbDrone.Test.Common/TestBase.cs b/src/NzbDrone.Test.Common/TestBase.cs similarity index 100% rename from NzbDrone.Test.Common/TestBase.cs rename to src/NzbDrone.Test.Common/TestBase.cs diff --git a/NzbDrone.Test.Common/TestException.cs b/src/NzbDrone.Test.Common/TestException.cs similarity index 100% rename from NzbDrone.Test.Common/TestException.cs rename to src/NzbDrone.Test.Common/TestException.cs diff --git a/NzbDrone.Test.Common/packages.config b/src/NzbDrone.Test.Common/packages.config similarity index 100% rename from NzbDrone.Test.Common/packages.config rename to src/NzbDrone.Test.Common/packages.config diff --git a/NzbDrone.Test.Dummy/DummyApp.cs b/src/NzbDrone.Test.Dummy/DummyApp.cs similarity index 100% rename from NzbDrone.Test.Dummy/DummyApp.cs rename to src/NzbDrone.Test.Dummy/DummyApp.cs diff --git a/NzbDrone.Test.Dummy/NzbDrone.Test.Dummy.csproj b/src/NzbDrone.Test.Dummy/NzbDrone.Test.Dummy.csproj similarity index 100% rename from NzbDrone.Test.Dummy/NzbDrone.Test.Dummy.csproj rename to src/NzbDrone.Test.Dummy/NzbDrone.Test.Dummy.csproj diff --git a/NzbDrone.Test.Dummy/Properties/AssemblyInfo.cs b/src/NzbDrone.Test.Dummy/Properties/AssemblyInfo.cs similarity index 100% rename from NzbDrone.Test.Dummy/Properties/AssemblyInfo.cs rename to src/NzbDrone.Test.Dummy/Properties/AssemblyInfo.cs diff --git a/NzbDrone.Test.Dummy/app.config b/src/NzbDrone.Test.Dummy/app.config similarity index 100% rename from NzbDrone.Test.Dummy/app.config rename to src/NzbDrone.Test.Dummy/app.config diff --git a/NzbDrone.Update.Test/InstallUpdateServiceFixture.cs b/src/NzbDrone.Update.Test/InstallUpdateServiceFixture.cs similarity index 100% rename from NzbDrone.Update.Test/InstallUpdateServiceFixture.cs rename to src/NzbDrone.Update.Test/InstallUpdateServiceFixture.cs diff --git a/NzbDrone.Update.Test/License.txt b/src/NzbDrone.Update.Test/License.txt similarity index 100% rename from NzbDrone.Update.Test/License.txt rename to src/NzbDrone.Update.Test/License.txt diff --git a/NzbDrone.Update.Test/NzbDrone.Update.Test.csproj b/src/NzbDrone.Update.Test/NzbDrone.Update.Test.csproj similarity index 100% rename from NzbDrone.Update.Test/NzbDrone.Update.Test.csproj rename to src/NzbDrone.Update.Test/NzbDrone.Update.Test.csproj diff --git a/NzbDrone.Update.Test/ProgramFixture.cs b/src/NzbDrone.Update.Test/ProgramFixture.cs similarity index 100% rename from NzbDrone.Update.Test/ProgramFixture.cs rename to src/NzbDrone.Update.Test/ProgramFixture.cs diff --git a/NzbDrone.Update.Test/Properties/AssemblyInfo.cs b/src/NzbDrone.Update.Test/Properties/AssemblyInfo.cs similarity index 100% rename from NzbDrone.Update.Test/Properties/AssemblyInfo.cs rename to src/NzbDrone.Update.Test/Properties/AssemblyInfo.cs diff --git a/NzbDrone.Update.Test/StartNzbDroneService.cs b/src/NzbDrone.Update.Test/StartNzbDroneService.cs similarity index 100% rename from NzbDrone.Update.Test/StartNzbDroneService.cs rename to src/NzbDrone.Update.Test/StartNzbDroneService.cs diff --git a/NzbDrone.Update.Test/UpdateProviderStartFixture.cs b/src/NzbDrone.Update.Test/UpdateProviderStartFixture.cs similarity index 100% rename from NzbDrone.Update.Test/UpdateProviderStartFixture.cs rename to src/NzbDrone.Update.Test/UpdateProviderStartFixture.cs diff --git a/NzbDrone.Update.Test/packages.config b/src/NzbDrone.Update.Test/packages.config similarity index 100% rename from NzbDrone.Update.Test/packages.config rename to src/NzbDrone.Update.Test/packages.config diff --git a/NzbDrone.Update/AppType.cs b/src/NzbDrone.Update/AppType.cs similarity index 100% rename from NzbDrone.Update/AppType.cs rename to src/NzbDrone.Update/AppType.cs diff --git a/NzbDrone.Update/NLog.xsd b/src/NzbDrone.Update/NLog.xsd similarity index 100% rename from NzbDrone.Update/NLog.xsd rename to src/NzbDrone.Update/NLog.xsd diff --git a/NzbDrone.Update/NzbDrone.Update.csproj b/src/NzbDrone.Update/NzbDrone.Update.csproj similarity index 96% rename from NzbDrone.Update/NzbDrone.Update.csproj rename to src/NzbDrone.Update/NzbDrone.Update.csproj index d52120d91..3aa8ea3a4 100644 --- a/NzbDrone.Update/NzbDrone.Update.csproj +++ b/src/NzbDrone.Update/NzbDrone.Update.csproj @@ -22,7 +22,7 @@ true full false - ..\_output\NzbDrone.Update\ + ..\..\_output\NzbDrone.Update\ DEBUG;TRACE prompt 4 @@ -31,7 +31,7 @@ x86 pdbonly true - ..\_output\NzbDrone.Update\ + ..\..\_output\NzbDrone.Update\ TRACE prompt 4 diff --git a/NzbDrone.Update/Properties/AssemblyInfo.cs b/src/NzbDrone.Update/Properties/AssemblyInfo.cs similarity index 100% rename from NzbDrone.Update/Properties/AssemblyInfo.cs rename to src/NzbDrone.Update/Properties/AssemblyInfo.cs diff --git a/NzbDrone.Update/UpdateApp.cs b/src/NzbDrone.Update/UpdateApp.cs similarity index 100% rename from NzbDrone.Update/UpdateApp.cs rename to src/NzbDrone.Update/UpdateApp.cs diff --git a/NzbDrone.Update/UpdateContainerBuilder.cs b/src/NzbDrone.Update/UpdateContainerBuilder.cs similarity index 100% rename from NzbDrone.Update/UpdateContainerBuilder.cs rename to src/NzbDrone.Update/UpdateContainerBuilder.cs diff --git a/NzbDrone.Update/UpdateEngine/BackupAndRestore.cs b/src/NzbDrone.Update/UpdateEngine/BackupAndRestore.cs similarity index 100% rename from NzbDrone.Update/UpdateEngine/BackupAndRestore.cs rename to src/NzbDrone.Update/UpdateEngine/BackupAndRestore.cs diff --git a/NzbDrone.Update/UpdateEngine/DetectApplicationType.cs b/src/NzbDrone.Update/UpdateEngine/DetectApplicationType.cs similarity index 100% rename from NzbDrone.Update/UpdateEngine/DetectApplicationType.cs rename to src/NzbDrone.Update/UpdateEngine/DetectApplicationType.cs diff --git a/NzbDrone.Update/UpdateEngine/InstallUpdateService.cs b/src/NzbDrone.Update/UpdateEngine/InstallUpdateService.cs similarity index 100% rename from NzbDrone.Update/UpdateEngine/InstallUpdateService.cs rename to src/NzbDrone.Update/UpdateEngine/InstallUpdateService.cs diff --git a/NzbDrone.Update/UpdateEngine/StartNzbDrone.cs b/src/NzbDrone.Update/UpdateEngine/StartNzbDrone.cs similarity index 100% rename from NzbDrone.Update/UpdateEngine/StartNzbDrone.cs rename to src/NzbDrone.Update/UpdateEngine/StartNzbDrone.cs diff --git a/NzbDrone.Update/UpdateEngine/TerminateNzbDrone.cs b/src/NzbDrone.Update/UpdateEngine/TerminateNzbDrone.cs similarity index 100% rename from NzbDrone.Update/UpdateEngine/TerminateNzbDrone.cs rename to src/NzbDrone.Update/UpdateEngine/TerminateNzbDrone.cs diff --git a/NzbDrone.Update/app.config b/src/NzbDrone.Update/app.config similarity index 100% rename from NzbDrone.Update/app.config rename to src/NzbDrone.Update/app.config diff --git a/NzbDrone.Update/packages.config b/src/NzbDrone.Update/packages.config similarity index 100% rename from NzbDrone.Update/packages.config rename to src/NzbDrone.Update/packages.config diff --git a/NzbDrone.sln b/src/NzbDrone.sln similarity index 100% rename from NzbDrone.sln rename to src/NzbDrone.sln diff --git a/NzbDrone.sln.DotSettings b/src/NzbDrone.sln.DotSettings similarity index 100% rename from NzbDrone.sln.DotSettings rename to src/NzbDrone.sln.DotSettings diff --git a/NzbDrone/MessageBoxUserAlert.cs b/src/NzbDrone/MessageBoxUserAlert.cs similarity index 100% rename from NzbDrone/MessageBoxUserAlert.cs rename to src/NzbDrone/MessageBoxUserAlert.cs diff --git a/NzbDrone/NzbDrone.csproj b/src/NzbDrone/NzbDrone.csproj similarity index 98% rename from NzbDrone/NzbDrone.csproj rename to src/NzbDrone/NzbDrone.csproj index 5d45930cd..f428eae7b 100644 --- a/NzbDrone/NzbDrone.csproj +++ b/src/NzbDrone/NzbDrone.csproj @@ -37,7 +37,7 @@ true full false - ..\_output\ + ..\..\_output\ DEBUG;TRACE prompt 4 @@ -48,7 +48,7 @@ x86 pdbonly true - ..\_output\ + ..\..\_output\ TRACE prompt 4 diff --git a/NzbDrone/Properties/AssemblyInfo.cs b/src/NzbDrone/Properties/AssemblyInfo.cs similarity index 100% rename from NzbDrone/Properties/AssemblyInfo.cs rename to src/NzbDrone/Properties/AssemblyInfo.cs diff --git a/NzbDrone/Properties/Resources.Designer.cs b/src/NzbDrone/Properties/Resources.Designer.cs similarity index 100% rename from NzbDrone/Properties/Resources.Designer.cs rename to src/NzbDrone/Properties/Resources.Designer.cs diff --git a/NzbDrone/Properties/Resources.resx b/src/NzbDrone/Properties/Resources.resx similarity index 100% rename from NzbDrone/Properties/Resources.resx rename to src/NzbDrone/Properties/Resources.resx diff --git a/NzbDrone/SysTray/SysTrayApp.cs b/src/NzbDrone/SysTray/SysTrayApp.cs similarity index 100% rename from NzbDrone/SysTray/SysTrayApp.cs rename to src/NzbDrone/SysTray/SysTrayApp.cs diff --git a/NzbDrone/WindowsApp.cs b/src/NzbDrone/WindowsApp.cs similarity index 100% rename from NzbDrone/WindowsApp.cs rename to src/NzbDrone/WindowsApp.cs diff --git a/NzbDrone/packages.config b/src/NzbDrone/packages.config similarity index 100% rename from NzbDrone/packages.config rename to src/NzbDrone/packages.config diff --git a/ServiceHelpers/ServiceInstall/Program.cs b/src/ServiceHelpers/ServiceInstall/Program.cs similarity index 100% rename from ServiceHelpers/ServiceInstall/Program.cs rename to src/ServiceHelpers/ServiceInstall/Program.cs diff --git a/ServiceHelpers/ServiceInstall/Properties/AssemblyInfo.cs b/src/ServiceHelpers/ServiceInstall/Properties/AssemblyInfo.cs similarity index 100% rename from ServiceHelpers/ServiceInstall/Properties/AssemblyInfo.cs rename to src/ServiceHelpers/ServiceInstall/Properties/AssemblyInfo.cs diff --git a/ServiceHelpers/ServiceInstall/ServiceHelper.cs b/src/ServiceHelpers/ServiceInstall/ServiceHelper.cs similarity index 100% rename from ServiceHelpers/ServiceInstall/ServiceHelper.cs rename to src/ServiceHelpers/ServiceInstall/ServiceHelper.cs diff --git a/ServiceHelpers/ServiceInstall/ServiceInstall.csproj b/src/ServiceHelpers/ServiceInstall/ServiceInstall.csproj similarity index 96% rename from ServiceHelpers/ServiceInstall/ServiceInstall.csproj rename to src/ServiceHelpers/ServiceInstall/ServiceInstall.csproj index 9433f32e3..928fce634 100644 --- a/ServiceHelpers/ServiceInstall/ServiceInstall.csproj +++ b/src/ServiceHelpers/ServiceInstall/ServiceInstall.csproj @@ -22,7 +22,7 @@ true full false - ..\..\_output\ + ..\..\..\_output\ DEBUG;TRACE prompt 4 @@ -31,7 +31,7 @@ x86 pdbonly true - ..\..\_output\ + ..\..\..\_output\ TRACE prompt 4 diff --git a/ServiceHelpers/ServiceInstall/app.config b/src/ServiceHelpers/ServiceInstall/app.config similarity index 100% rename from ServiceHelpers/ServiceInstall/app.config rename to src/ServiceHelpers/ServiceInstall/app.config diff --git a/ServiceHelpers/ServiceInstall/app.manifest b/src/ServiceHelpers/ServiceInstall/app.manifest similarity index 100% rename from ServiceHelpers/ServiceInstall/app.manifest rename to src/ServiceHelpers/ServiceInstall/app.manifest diff --git a/ServiceHelpers/ServiceInstall/green_puzzle.ico b/src/ServiceHelpers/ServiceInstall/green_puzzle.ico similarity index 100% rename from ServiceHelpers/ServiceInstall/green_puzzle.ico rename to src/ServiceHelpers/ServiceInstall/green_puzzle.ico diff --git a/ServiceHelpers/ServiceUninstall/Program.cs b/src/ServiceHelpers/ServiceUninstall/Program.cs similarity index 100% rename from ServiceHelpers/ServiceUninstall/Program.cs rename to src/ServiceHelpers/ServiceUninstall/Program.cs diff --git a/ServiceHelpers/ServiceUninstall/Properties/AssemblyInfo.cs b/src/ServiceHelpers/ServiceUninstall/Properties/AssemblyInfo.cs similarity index 100% rename from ServiceHelpers/ServiceUninstall/Properties/AssemblyInfo.cs rename to src/ServiceHelpers/ServiceUninstall/Properties/AssemblyInfo.cs diff --git a/ServiceHelpers/ServiceUninstall/ServiceHelper.cs b/src/ServiceHelpers/ServiceUninstall/ServiceHelper.cs similarity index 100% rename from ServiceHelpers/ServiceUninstall/ServiceHelper.cs rename to src/ServiceHelpers/ServiceUninstall/ServiceHelper.cs diff --git a/ServiceHelpers/ServiceUninstall/ServiceUninstall.csproj b/src/ServiceHelpers/ServiceUninstall/ServiceUninstall.csproj similarity index 96% rename from ServiceHelpers/ServiceUninstall/ServiceUninstall.csproj rename to src/ServiceHelpers/ServiceUninstall/ServiceUninstall.csproj index 338b4e7fb..66adb5935 100644 --- a/ServiceHelpers/ServiceUninstall/ServiceUninstall.csproj +++ b/src/ServiceHelpers/ServiceUninstall/ServiceUninstall.csproj @@ -22,7 +22,7 @@ true full false - ..\..\_output\ + ..\..\..\_output\ DEBUG;TRACE prompt 4 @@ -31,7 +31,7 @@ x86 pdbonly true - ..\..\_output\ + ..\..\..\_output\ TRACE prompt 4 diff --git a/ServiceHelpers/ServiceUninstall/app.config b/src/ServiceHelpers/ServiceUninstall/app.config similarity index 100% rename from ServiceHelpers/ServiceUninstall/app.config rename to src/ServiceHelpers/ServiceUninstall/app.config diff --git a/ServiceHelpers/ServiceUninstall/app.manifest b/src/ServiceHelpers/ServiceUninstall/app.manifest similarity index 100% rename from ServiceHelpers/ServiceUninstall/app.manifest rename to src/ServiceHelpers/ServiceUninstall/app.manifest diff --git a/ServiceHelpers/ServiceUninstall/red_puzzle.ico b/src/ServiceHelpers/ServiceUninstall/red_puzzle.ico similarity index 100% rename from ServiceHelpers/ServiceUninstall/red_puzzle.ico rename to src/ServiceHelpers/ServiceUninstall/red_puzzle.ico diff --git a/SharedLiveTemplates.xml b/src/SharedLiveTemplates.xml similarity index 100% rename from SharedLiveTemplates.xml rename to src/SharedLiveTemplates.xml diff --git a/UI/.idea/.name b/src/UI/.idea/.name similarity index 100% rename from UI/.idea/.name rename to src/UI/.idea/.name diff --git a/UI/.idea/NzbDrone.UI.iml b/src/UI/.idea/NzbDrone.UI.iml similarity index 100% rename from UI/.idea/NzbDrone.UI.iml rename to src/UI/.idea/NzbDrone.UI.iml diff --git a/UI/.idea/codeStyleSettings.xml b/src/UI/.idea/codeStyleSettings.xml similarity index 100% rename from UI/.idea/codeStyleSettings.xml rename to src/UI/.idea/codeStyleSettings.xml diff --git a/UI/.idea/dictionaries/Keivan.xml b/src/UI/.idea/dictionaries/Keivan.xml similarity index 100% rename from UI/.idea/dictionaries/Keivan.xml rename to src/UI/.idea/dictionaries/Keivan.xml diff --git a/UI/.idea/dictionaries/Keivan_Beigi.xml b/src/UI/.idea/dictionaries/Keivan_Beigi.xml similarity index 100% rename from UI/.idea/dictionaries/Keivan_Beigi.xml rename to src/UI/.idea/dictionaries/Keivan_Beigi.xml diff --git a/UI/.idea/dictionaries/Mark.xml b/src/UI/.idea/dictionaries/Mark.xml similarity index 100% rename from UI/.idea/dictionaries/Mark.xml rename to src/UI/.idea/dictionaries/Mark.xml diff --git a/UI/.idea/encodings.xml b/src/UI/.idea/encodings.xml similarity index 100% rename from UI/.idea/encodings.xml rename to src/UI/.idea/encodings.xml diff --git a/UI/.idea/inspectionProfiles/Project_Default.xml b/src/UI/.idea/inspectionProfiles/Project_Default.xml similarity index 100% rename from UI/.idea/inspectionProfiles/Project_Default.xml rename to src/UI/.idea/inspectionProfiles/Project_Default.xml diff --git a/UI/.idea/inspectionProfiles/profiles_settings.xml b/src/UI/.idea/inspectionProfiles/profiles_settings.xml similarity index 100% rename from UI/.idea/inspectionProfiles/profiles_settings.xml rename to src/UI/.idea/inspectionProfiles/profiles_settings.xml diff --git a/UI/.idea/jsLibraryMappings.xml b/src/UI/.idea/jsLibraryMappings.xml similarity index 100% rename from UI/.idea/jsLibraryMappings.xml rename to src/UI/.idea/jsLibraryMappings.xml diff --git a/UI/.idea/jsLinters/jshint.xml b/src/UI/.idea/jsLinters/jshint.xml similarity index 100% rename from UI/.idea/jsLinters/jshint.xml rename to src/UI/.idea/jsLinters/jshint.xml diff --git a/UI/.idea/jsLinters/jslint.xml b/src/UI/.idea/jsLinters/jslint.xml similarity index 100% rename from UI/.idea/jsLinters/jslint.xml rename to src/UI/.idea/jsLinters/jslint.xml diff --git a/UI/.idea/misc.xml b/src/UI/.idea/misc.xml similarity index 100% rename from UI/.idea/misc.xml rename to src/UI/.idea/misc.xml diff --git a/UI/.idea/modules.xml b/src/UI/.idea/modules.xml similarity index 100% rename from UI/.idea/modules.xml rename to src/UI/.idea/modules.xml diff --git a/UI/.idea/runConfigurations/Debug___Chrome.xml b/src/UI/.idea/runConfigurations/Debug___Chrome.xml similarity index 100% rename from UI/.idea/runConfigurations/Debug___Chrome.xml rename to src/UI/.idea/runConfigurations/Debug___Chrome.xml diff --git a/UI/.idea/runConfigurations/Debug___Firefox.xml b/src/UI/.idea/runConfigurations/Debug___Firefox.xml similarity index 100% rename from UI/.idea/runConfigurations/Debug___Firefox.xml rename to src/UI/.idea/runConfigurations/Debug___Firefox.xml diff --git a/UI/.idea/scopes/NzbDrone.xml b/src/UI/.idea/scopes/NzbDrone.xml similarity index 100% rename from UI/.idea/scopes/NzbDrone.xml rename to src/UI/.idea/scopes/NzbDrone.xml diff --git a/UI/.idea/scopes/scope_settings.xml b/src/UI/.idea/scopes/scope_settings.xml similarity index 100% rename from UI/.idea/scopes/scope_settings.xml rename to src/UI/.idea/scopes/scope_settings.xml diff --git a/UI/.idea/vcs.xml b/src/UI/.idea/vcs.xml similarity index 100% rename from UI/.idea/vcs.xml rename to src/UI/.idea/vcs.xml diff --git a/UI/AddSeries/AddSeriesCollection.js b/src/UI/AddSeries/AddSeriesCollection.js similarity index 100% rename from UI/AddSeries/AddSeriesCollection.js rename to src/UI/AddSeries/AddSeriesCollection.js diff --git a/UI/AddSeries/AddSeriesLayout.js b/src/UI/AddSeries/AddSeriesLayout.js similarity index 100% rename from UI/AddSeries/AddSeriesLayout.js rename to src/UI/AddSeries/AddSeriesLayout.js diff --git a/UI/AddSeries/AddSeriesLayoutTemplate.html b/src/UI/AddSeries/AddSeriesLayoutTemplate.html similarity index 100% rename from UI/AddSeries/AddSeriesLayoutTemplate.html rename to src/UI/AddSeries/AddSeriesLayoutTemplate.html diff --git a/UI/AddSeries/AddSeriesView.js b/src/UI/AddSeries/AddSeriesView.js similarity index 100% rename from UI/AddSeries/AddSeriesView.js rename to src/UI/AddSeries/AddSeriesView.js diff --git a/UI/AddSeries/AddSeriesViewTemplate.html b/src/UI/AddSeries/AddSeriesViewTemplate.html similarity index 100% rename from UI/AddSeries/AddSeriesViewTemplate.html rename to src/UI/AddSeries/AddSeriesViewTemplate.html diff --git a/UI/AddSeries/Existing/AddExistingSeriesCollectionView.js b/src/UI/AddSeries/Existing/AddExistingSeriesCollectionView.js similarity index 100% rename from UI/AddSeries/Existing/AddExistingSeriesCollectionView.js rename to src/UI/AddSeries/Existing/AddExistingSeriesCollectionView.js diff --git a/UI/AddSeries/Existing/UnmappedFolderCollection.js b/src/UI/AddSeries/Existing/UnmappedFolderCollection.js similarity index 100% rename from UI/AddSeries/Existing/UnmappedFolderCollection.js rename to src/UI/AddSeries/Existing/UnmappedFolderCollection.js diff --git a/UI/AddSeries/Existing/UnmappedFolderModel.js b/src/UI/AddSeries/Existing/UnmappedFolderModel.js similarity index 100% rename from UI/AddSeries/Existing/UnmappedFolderModel.js rename to src/UI/AddSeries/Existing/UnmappedFolderModel.js diff --git a/UI/AddSeries/NotFoundTemplate.html b/src/UI/AddSeries/NotFoundTemplate.html similarity index 100% rename from UI/AddSeries/NotFoundTemplate.html rename to src/UI/AddSeries/NotFoundTemplate.html diff --git a/UI/AddSeries/NotFoundView.js b/src/UI/AddSeries/NotFoundView.js similarity index 100% rename from UI/AddSeries/NotFoundView.js rename to src/UI/AddSeries/NotFoundView.js diff --git a/UI/AddSeries/RootFolders/Collection.js b/src/UI/AddSeries/RootFolders/Collection.js similarity index 100% rename from UI/AddSeries/RootFolders/Collection.js rename to src/UI/AddSeries/RootFolders/Collection.js diff --git a/UI/AddSeries/RootFolders/CollectionView.js b/src/UI/AddSeries/RootFolders/CollectionView.js similarity index 100% rename from UI/AddSeries/RootFolders/CollectionView.js rename to src/UI/AddSeries/RootFolders/CollectionView.js diff --git a/UI/AddSeries/RootFolders/ItemView.js b/src/UI/AddSeries/RootFolders/ItemView.js similarity index 100% rename from UI/AddSeries/RootFolders/ItemView.js rename to src/UI/AddSeries/RootFolders/ItemView.js diff --git a/UI/AddSeries/RootFolders/ItemViewTemplate.html b/src/UI/AddSeries/RootFolders/ItemViewTemplate.html similarity index 100% rename from UI/AddSeries/RootFolders/ItemViewTemplate.html rename to src/UI/AddSeries/RootFolders/ItemViewTemplate.html diff --git a/UI/AddSeries/RootFolders/Layout.js b/src/UI/AddSeries/RootFolders/Layout.js similarity index 100% rename from UI/AddSeries/RootFolders/Layout.js rename to src/UI/AddSeries/RootFolders/Layout.js diff --git a/UI/AddSeries/RootFolders/LayoutTemplate.html b/src/UI/AddSeries/RootFolders/LayoutTemplate.html similarity index 100% rename from UI/AddSeries/RootFolders/LayoutTemplate.html rename to src/UI/AddSeries/RootFolders/LayoutTemplate.html diff --git a/UI/AddSeries/RootFolders/Model.js b/src/UI/AddSeries/RootFolders/Model.js similarity index 100% rename from UI/AddSeries/RootFolders/Model.js rename to src/UI/AddSeries/RootFolders/Model.js diff --git a/UI/AddSeries/RootFolders/RootFolderSelectionPartial.html b/src/UI/AddSeries/RootFolders/RootFolderSelectionPartial.html similarity index 100% rename from UI/AddSeries/RootFolders/RootFolderSelectionPartial.html rename to src/UI/AddSeries/RootFolders/RootFolderSelectionPartial.html diff --git a/UI/AddSeries/RootFolders/StartingSeasonSelectionPartial.html b/src/UI/AddSeries/RootFolders/StartingSeasonSelectionPartial.html similarity index 100% rename from UI/AddSeries/RootFolders/StartingSeasonSelectionPartial.html rename to src/UI/AddSeries/RootFolders/StartingSeasonSelectionPartial.html diff --git a/UI/AddSeries/SearchResultCollectionView.js b/src/UI/AddSeries/SearchResultCollectionView.js similarity index 100% rename from UI/AddSeries/SearchResultCollectionView.js rename to src/UI/AddSeries/SearchResultCollectionView.js diff --git a/UI/AddSeries/SearchResultView.js b/src/UI/AddSeries/SearchResultView.js similarity index 97% rename from UI/AddSeries/SearchResultView.js rename to src/UI/AddSeries/SearchResultView.js index 218bf0ff0..a25d36e5c 100644 --- a/UI/AddSeries/SearchResultView.js +++ b/src/UI/AddSeries/SearchResultView.js @@ -1,161 +1,161 @@ -'use strict'; -define( - [ - 'app', - 'underscore', - 'marionette', - 'Quality/QualityProfileCollection', - 'AddSeries/RootFolders/Collection', - 'AddSeries/RootFolders/Layout', - 'Series/SeriesCollection', - 'Config', - 'Shared/Messenger', - 'Mixins/AsValidatedView', - 'jquery.dotdotdot' - ], function (App, _, Marionette, QualityProfiles, RootFolders, RootFolderLayout, SeriesCollection, Config, Messenger, AsValidatedView) { - - var view = Marionette.ItemView.extend({ - - template: 'AddSeries/SearchResultViewTemplate', - - ui: { - qualityProfile: '.x-quality-profile', - rootFolder : '.x-root-folder', - addButton : '.x-add', - overview : '.x-overview', - startingSeason: '.x-starting-season' - }, - - events: { - 'click .x-add' : '_addSeries', - 'change .x-quality-profile': '_qualityProfileChanged', - 'change .x-root-folder' : '_rootFolderChanged' - }, - - initialize: function () { - - if (!this.model) { - throw 'model is required'; - } - - this.templateHelpers = {}; - this._configureTemplateHelpers(); - - this.listenTo(App.vent, Config.Events.ConfigUpdatedEvent, this._onConfigUpdated); - this.listenTo(this.model, 'change', this.render); - this.listenTo(RootFolders, 'all', this.render); - - this.rootFolderLayout = new RootFolderLayout(); - this.listenTo(this.rootFolderLayout, 'folderSelected', this._setRootFolder); - }, - - onRender: function () { - - var defaultQuality = Config.getValue(Config.Keys.DefaultQualityProfileId); - var defaultRoot = Config.getValue(Config.Keys.DefaultRootFolderId); - - if (QualityProfiles.get(defaultQuality)) { - this.ui.qualityProfile.val(defaultQuality); - } - - if (RootFolders.get(defaultRoot)) { - this.ui.rootFolder.val(defaultRoot); - } - - var minSeasonNotZero = _.min(_.reject(this.model.get('seasons'), { seasonNumber: 0 }), 'seasonNumber'); - - if (minSeasonNotZero) { - this.ui.startingSeason.val(minSeasonNotZero.seasonNumber); - } - - //TODO: make this work via onRender, FM? - //works with onShow, but stops working after the first render - this.ui.overview.dotdotdot({ - height: 120 - }); - }, - - _configureTemplateHelpers: function () { - var existingSeries = SeriesCollection.where({tvdbId: this.model.get('tvdbId')}); - - if (existingSeries.length > 0) { - this.templateHelpers.existing = existingSeries[0].toJSON(); - } - - this.templateHelpers.qualityProfiles = QualityProfiles.toJSON(); - - if (!this.model.get('isExisting')) { - this.templateHelpers.rootFolders = RootFolders.toJSON(); - } - }, - - _onConfigUpdated: function (options) { - if (options.key === Config.Keys.DefaultQualityProfileId) { - this.ui.qualityProfile.val(options.value); - } - else if (options.key === Config.Keys.DefaultRootFolderId) { - this.ui.rootFolder.val(options.value); - } - }, - - _qualityProfileChanged: function () { - Config.setValue(Config.Keys.DefaultQualityProfileId, this.ui.qualityProfile.val()); - }, - - _rootFolderChanged: function () { - var rootFolderValue = this.ui.rootFolder.val(); - if (rootFolderValue === 'addNew') { - App.modalRegion.show(this.rootFolderLayout); - } - else { - Config.setValue(Config.Keys.DefaultRootFolderId, rootFolderValue); - } - }, - - _setRootFolder: function (options) { - App.vent.trigger(App.Commands.CloseModalCommand); - this.ui.rootFolder.val(options.model.id); - this._rootFolderChanged(); - }, - - _addSeries: function () { - var icon = this.ui.addButton.find('icon'); - icon.removeClass('icon-plus').addClass('icon-spin icon-spinner disabled'); - - var quality = this.ui.qualityProfile.val(); - var rootFolderPath = this.ui.rootFolder.children(':selected').text(); - var startingSeason = this.ui.startingSeason.val(); - - this.model.set('qualityProfileId', quality); - this.model.set('rootFolderPath', rootFolderPath); - this.model.setSeasonPass(startingSeason); - - var self = this; - - SeriesCollection.add(this.model); - - - var promise = this.model.save(); - - promise.done(function () { - self.close(); - icon.removeClass('icon-spin icon-spinner disabled').addClass('icon-search'); - - Messenger.show({ - message: 'Added: ' + self.model.get('title') - }); - - App.vent.trigger(App.Events.SeriesAdded, { series: self.model }); - }); - - promise.fail(function () { - icon.removeClass('icon-spin icon-spinner disabled').addClass('icon-search'); - }); - } - }); - - - AsValidatedView.apply(view); - - return view; - }); +'use strict'; +define( + [ + 'app', + 'underscore', + 'marionette', + 'Quality/QualityProfileCollection', + 'AddSeries/RootFolders/Collection', + 'AddSeries/RootFolders/Layout', + 'Series/SeriesCollection', + 'Config', + 'Shared/Messenger', + 'Mixins/AsValidatedView', + 'jquery.dotdotdot' + ], function (App, _, Marionette, QualityProfiles, RootFolders, RootFolderLayout, SeriesCollection, Config, Messenger, AsValidatedView) { + + var view = Marionette.ItemView.extend({ + + template: 'AddSeries/SearchResultViewTemplate', + + ui: { + qualityProfile: '.x-quality-profile', + rootFolder : '.x-root-folder', + addButton : '.x-add', + overview : '.x-overview', + startingSeason: '.x-starting-season' + }, + + events: { + 'click .x-add' : '_addSeries', + 'change .x-quality-profile': '_qualityProfileChanged', + 'change .x-root-folder' : '_rootFolderChanged' + }, + + initialize: function () { + + if (!this.model) { + throw 'model is required'; + } + + this.templateHelpers = {}; + this._configureTemplateHelpers(); + + this.listenTo(App.vent, Config.Events.ConfigUpdatedEvent, this._onConfigUpdated); + this.listenTo(this.model, 'change', this.render); + this.listenTo(RootFolders, 'all', this.render); + + this.rootFolderLayout = new RootFolderLayout(); + this.listenTo(this.rootFolderLayout, 'folderSelected', this._setRootFolder); + }, + + onRender: function () { + + var defaultQuality = Config.getValue(Config.Keys.DefaultQualityProfileId); + var defaultRoot = Config.getValue(Config.Keys.DefaultRootFolderId); + + if (QualityProfiles.get(defaultQuality)) { + this.ui.qualityProfile.val(defaultQuality); + } + + if (RootFolders.get(defaultRoot)) { + this.ui.rootFolder.val(defaultRoot); + } + + var minSeasonNotZero = _.min(_.reject(this.model.get('seasons'), { seasonNumber: 0 }), 'seasonNumber'); + + if (minSeasonNotZero) { + this.ui.startingSeason.val(minSeasonNotZero.seasonNumber); + } + + //TODO: make this work via onRender, FM? + //works with onShow, but stops working after the first render + this.ui.overview.dotdotdot({ + height: 120 + }); + }, + + _configureTemplateHelpers: function () { + var existingSeries = SeriesCollection.where({tvdbId: this.model.get('tvdbId')}); + + if (existingSeries.length > 0) { + this.templateHelpers.existing = existingSeries[0].toJSON(); + } + + this.templateHelpers.qualityProfiles = QualityProfiles.toJSON(); + + if (!this.model.get('isExisting')) { + this.templateHelpers.rootFolders = RootFolders.toJSON(); + } + }, + + _onConfigUpdated: function (options) { + if (options.key === Config.Keys.DefaultQualityProfileId) { + this.ui.qualityProfile.val(options.value); + } + else if (options.key === Config.Keys.DefaultRootFolderId) { + this.ui.rootFolder.val(options.value); + } + }, + + _qualityProfileChanged: function () { + Config.setValue(Config.Keys.DefaultQualityProfileId, this.ui.qualityProfile.val()); + }, + + _rootFolderChanged: function () { + var rootFolderValue = this.ui.rootFolder.val(); + if (rootFolderValue === 'addNew') { + App.modalRegion.show(this.rootFolderLayout); + } + else { + Config.setValue(Config.Keys.DefaultRootFolderId, rootFolderValue); + } + }, + + _setRootFolder: function (options) { + App.vent.trigger(App.Commands.CloseModalCommand); + this.ui.rootFolder.val(options.model.id); + this._rootFolderChanged(); + }, + + _addSeries: function () { + var icon = this.ui.addButton.find('icon'); + icon.removeClass('icon-plus').addClass('icon-spin icon-spinner disabled'); + + var quality = this.ui.qualityProfile.val(); + var rootFolderPath = this.ui.rootFolder.children(':selected').text(); + var startingSeason = this.ui.startingSeason.val(); + + this.model.set('qualityProfileId', quality); + this.model.set('rootFolderPath', rootFolderPath); + this.model.setSeasonPass(startingSeason); + + var self = this; + + SeriesCollection.add(this.model); + + + var promise = this.model.save(); + + promise.done(function () { + self.close(); + icon.removeClass('icon-spin icon-spinner disabled').addClass('icon-search'); + + Messenger.show({ + message: 'Added: ' + self.model.get('title') + }); + + App.vent.trigger(App.Events.SeriesAdded, { series: self.model }); + }); + + promise.fail(function () { + icon.removeClass('icon-spin icon-spinner disabled').addClass('icon-search'); + }); + } + }); + + + AsValidatedView.apply(view); + + return view; + }); diff --git a/UI/AddSeries/SearchResultViewTemplate.html b/src/UI/AddSeries/SearchResultViewTemplate.html similarity index 100% rename from UI/AddSeries/SearchResultViewTemplate.html rename to src/UI/AddSeries/SearchResultViewTemplate.html diff --git a/UI/AddSeries/addSeries.less b/src/UI/AddSeries/addSeries.less similarity index 100% rename from UI/AddSeries/addSeries.less rename to src/UI/AddSeries/addSeries.less diff --git a/UI/Calendar/CalendarLayout.js b/src/UI/Calendar/CalendarLayout.js similarity index 100% rename from UI/Calendar/CalendarLayout.js rename to src/UI/Calendar/CalendarLayout.js diff --git a/UI/Calendar/CalendarLayoutTemplate.html b/src/UI/Calendar/CalendarLayoutTemplate.html similarity index 100% rename from UI/Calendar/CalendarLayoutTemplate.html rename to src/UI/Calendar/CalendarLayoutTemplate.html diff --git a/UI/Calendar/CalendarView.js b/src/UI/Calendar/CalendarView.js similarity index 100% rename from UI/Calendar/CalendarView.js rename to src/UI/Calendar/CalendarView.js diff --git a/UI/Calendar/Collection.js b/src/UI/Calendar/Collection.js similarity index 100% rename from UI/Calendar/Collection.js rename to src/UI/Calendar/Collection.js diff --git a/UI/Calendar/UpcomingCollection.js b/src/UI/Calendar/UpcomingCollection.js similarity index 100% rename from UI/Calendar/UpcomingCollection.js rename to src/UI/Calendar/UpcomingCollection.js diff --git a/UI/Calendar/UpcomingCollectionView.js b/src/UI/Calendar/UpcomingCollectionView.js similarity index 100% rename from UI/Calendar/UpcomingCollectionView.js rename to src/UI/Calendar/UpcomingCollectionView.js diff --git a/UI/Calendar/UpcomingItemView.js b/src/UI/Calendar/UpcomingItemView.js similarity index 100% rename from UI/Calendar/UpcomingItemView.js rename to src/UI/Calendar/UpcomingItemView.js diff --git a/UI/Calendar/UpcomingItemViewTemplate.html b/src/UI/Calendar/UpcomingItemViewTemplate.html similarity index 100% rename from UI/Calendar/UpcomingItemViewTemplate.html rename to src/UI/Calendar/UpcomingItemViewTemplate.html diff --git a/UI/Calendar/calendar.less b/src/UI/Calendar/calendar.less similarity index 100% rename from UI/Calendar/calendar.less rename to src/UI/Calendar/calendar.less diff --git a/UI/Cells/ApprovalStatusCell.js b/src/UI/Cells/ApprovalStatusCell.js similarity index 100% rename from UI/Cells/ApprovalStatusCell.js rename to src/UI/Cells/ApprovalStatusCell.js diff --git a/UI/Cells/ApprovalStatusCellTemplate.html b/src/UI/Cells/ApprovalStatusCellTemplate.html similarity index 100% rename from UI/Cells/ApprovalStatusCellTemplate.html rename to src/UI/Cells/ApprovalStatusCellTemplate.html diff --git a/UI/Cells/Edit/QualityCellEditor.js b/src/UI/Cells/Edit/QualityCellEditor.js similarity index 100% rename from UI/Cells/Edit/QualityCellEditor.js rename to src/UI/Cells/Edit/QualityCellEditor.js diff --git a/UI/Cells/Edit/QualityCellEditorTemplate.html b/src/UI/Cells/Edit/QualityCellEditorTemplate.html similarity index 100% rename from UI/Cells/Edit/QualityCellEditorTemplate.html rename to src/UI/Cells/Edit/QualityCellEditorTemplate.html diff --git a/UI/Cells/EpisodeActionsCell.js b/src/UI/Cells/EpisodeActionsCell.js similarity index 100% rename from UI/Cells/EpisodeActionsCell.js rename to src/UI/Cells/EpisodeActionsCell.js diff --git a/UI/Cells/EpisodeActionsCellTemplate.html b/src/UI/Cells/EpisodeActionsCellTemplate.html similarity index 100% rename from UI/Cells/EpisodeActionsCellTemplate.html rename to src/UI/Cells/EpisodeActionsCellTemplate.html diff --git a/UI/Cells/EpisodeNumberCell.js b/src/UI/Cells/EpisodeNumberCell.js similarity index 100% rename from UI/Cells/EpisodeNumberCell.js rename to src/UI/Cells/EpisodeNumberCell.js diff --git a/UI/Cells/EpisodeProgressCell.js b/src/UI/Cells/EpisodeProgressCell.js similarity index 100% rename from UI/Cells/EpisodeProgressCell.js rename to src/UI/Cells/EpisodeProgressCell.js diff --git a/UI/Cells/EpisodeProgressCellTemplate.html b/src/UI/Cells/EpisodeProgressCellTemplate.html similarity index 100% rename from UI/Cells/EpisodeProgressCellTemplate.html rename to src/UI/Cells/EpisodeProgressCellTemplate.html diff --git a/UI/Cells/EpisodeStatusCell.js b/src/UI/Cells/EpisodeStatusCell.js similarity index 100% rename from UI/Cells/EpisodeStatusCell.js rename to src/UI/Cells/EpisodeStatusCell.js diff --git a/UI/Cells/EpisodeTitleCell.js b/src/UI/Cells/EpisodeTitleCell.js similarity index 100% rename from UI/Cells/EpisodeTitleCell.js rename to src/UI/Cells/EpisodeTitleCell.js diff --git a/UI/Cells/FileSizeCell.js b/src/UI/Cells/FileSizeCell.js similarity index 100% rename from UI/Cells/FileSizeCell.js rename to src/UI/Cells/FileSizeCell.js diff --git a/UI/Cells/Header/QualityHeaderCell.js b/src/UI/Cells/Header/QualityHeaderCell.js similarity index 100% rename from UI/Cells/Header/QualityHeaderCell.js rename to src/UI/Cells/Header/QualityHeaderCell.js diff --git a/UI/Cells/IndexerCell.js b/src/UI/Cells/IndexerCell.js similarity index 100% rename from UI/Cells/IndexerCell.js rename to src/UI/Cells/IndexerCell.js diff --git a/UI/Cells/NzbDroneCell.js b/src/UI/Cells/NzbDroneCell.js similarity index 100% rename from UI/Cells/NzbDroneCell.js rename to src/UI/Cells/NzbDroneCell.js diff --git a/UI/Cells/QualityCell.js b/src/UI/Cells/QualityCell.js similarity index 100% rename from UI/Cells/QualityCell.js rename to src/UI/Cells/QualityCell.js diff --git a/UI/Cells/QualityCellTemplate.html b/src/UI/Cells/QualityCellTemplate.html similarity index 100% rename from UI/Cells/QualityCellTemplate.html rename to src/UI/Cells/QualityCellTemplate.html diff --git a/UI/Cells/QualityProfileCell.js b/src/UI/Cells/QualityProfileCell.js similarity index 100% rename from UI/Cells/QualityProfileCell.js rename to src/UI/Cells/QualityProfileCell.js diff --git a/UI/Cells/RelativeDateCell.js b/src/UI/Cells/RelativeDateCell.js similarity index 100% rename from UI/Cells/RelativeDateCell.js rename to src/UI/Cells/RelativeDateCell.js diff --git a/UI/Cells/SeriesActionsCell.js b/src/UI/Cells/SeriesActionsCell.js similarity index 100% rename from UI/Cells/SeriesActionsCell.js rename to src/UI/Cells/SeriesActionsCell.js diff --git a/UI/Cells/SeriesStatusCell.js b/src/UI/Cells/SeriesStatusCell.js similarity index 100% rename from UI/Cells/SeriesStatusCell.js rename to src/UI/Cells/SeriesStatusCell.js diff --git a/UI/Cells/SeriesTitleCell.js b/src/UI/Cells/SeriesTitleCell.js similarity index 100% rename from UI/Cells/SeriesTitleCell.js rename to src/UI/Cells/SeriesTitleCell.js diff --git a/UI/Cells/SeriesTitleTemplate.html b/src/UI/Cells/SeriesTitleTemplate.html similarity index 100% rename from UI/Cells/SeriesTitleTemplate.html rename to src/UI/Cells/SeriesTitleTemplate.html diff --git a/UI/Cells/TemplatedCell.js b/src/UI/Cells/TemplatedCell.js similarity index 100% rename from UI/Cells/TemplatedCell.js rename to src/UI/Cells/TemplatedCell.js diff --git a/UI/Cells/ToggleCell.js b/src/UI/Cells/ToggleCell.js similarity index 100% rename from UI/Cells/ToggleCell.js rename to src/UI/Cells/ToggleCell.js diff --git a/UI/Cells/cells.less b/src/UI/Cells/cells.less similarity index 100% rename from UI/Cells/cells.less rename to src/UI/Cells/cells.less diff --git a/UI/Commands/CommandCollection.js b/src/UI/Commands/CommandCollection.js similarity index 100% rename from UI/Commands/CommandCollection.js rename to src/UI/Commands/CommandCollection.js diff --git a/UI/Commands/CommandController.js b/src/UI/Commands/CommandController.js similarity index 100% rename from UI/Commands/CommandController.js rename to src/UI/Commands/CommandController.js diff --git a/UI/Commands/CommandMessengerCollectionView.js b/src/UI/Commands/CommandMessengerCollectionView.js similarity index 100% rename from UI/Commands/CommandMessengerCollectionView.js rename to src/UI/Commands/CommandMessengerCollectionView.js diff --git a/UI/Commands/CommandMessengerItemView.js b/src/UI/Commands/CommandMessengerItemView.js similarity index 100% rename from UI/Commands/CommandMessengerItemView.js rename to src/UI/Commands/CommandMessengerItemView.js diff --git a/UI/Commands/CommandModel.js b/src/UI/Commands/CommandModel.js similarity index 100% rename from UI/Commands/CommandModel.js rename to src/UI/Commands/CommandModel.js diff --git a/UI/Config.js b/src/UI/Config.js similarity index 100% rename from UI/Config.js rename to src/UI/Config.js diff --git a/UI/Content/Backgrid/backgrid.less b/src/UI/Content/Backgrid/backgrid.less similarity index 100% rename from UI/Content/Backgrid/backgrid.less rename to src/UI/Content/Backgrid/backgrid.less diff --git a/UI/Content/Backgrid/filter.less b/src/UI/Content/Backgrid/filter.less similarity index 100% rename from UI/Content/Backgrid/filter.less rename to src/UI/Content/Backgrid/filter.less diff --git a/UI/Content/Backgrid/paginator.less b/src/UI/Content/Backgrid/paginator.less similarity index 100% rename from UI/Content/Backgrid/paginator.less rename to src/UI/Content/Backgrid/paginator.less diff --git a/UI/Content/Bootstrap/accordion.less b/src/UI/Content/Bootstrap/accordion.less similarity index 100% rename from UI/Content/Bootstrap/accordion.less rename to src/UI/Content/Bootstrap/accordion.less diff --git a/UI/Content/Bootstrap/alerts.less b/src/UI/Content/Bootstrap/alerts.less similarity index 100% rename from UI/Content/Bootstrap/alerts.less rename to src/UI/Content/Bootstrap/alerts.less diff --git a/UI/Content/Bootstrap/bootstrap.less b/src/UI/Content/Bootstrap/bootstrap.less similarity index 100% rename from UI/Content/Bootstrap/bootstrap.less rename to src/UI/Content/Bootstrap/bootstrap.less diff --git a/UI/Content/Bootstrap/breadcrumbs.less b/src/UI/Content/Bootstrap/breadcrumbs.less similarity index 100% rename from UI/Content/Bootstrap/breadcrumbs.less rename to src/UI/Content/Bootstrap/breadcrumbs.less diff --git a/UI/Content/Bootstrap/button-groups.less b/src/UI/Content/Bootstrap/button-groups.less similarity index 100% rename from UI/Content/Bootstrap/button-groups.less rename to src/UI/Content/Bootstrap/button-groups.less diff --git a/UI/Content/Bootstrap/buttons.less b/src/UI/Content/Bootstrap/buttons.less similarity index 100% rename from UI/Content/Bootstrap/buttons.less rename to src/UI/Content/Bootstrap/buttons.less diff --git a/UI/Content/Bootstrap/carousel.less b/src/UI/Content/Bootstrap/carousel.less similarity index 100% rename from UI/Content/Bootstrap/carousel.less rename to src/UI/Content/Bootstrap/carousel.less diff --git a/UI/Content/Bootstrap/close.less b/src/UI/Content/Bootstrap/close.less similarity index 100% rename from UI/Content/Bootstrap/close.less rename to src/UI/Content/Bootstrap/close.less diff --git a/UI/Content/Bootstrap/code.less b/src/UI/Content/Bootstrap/code.less similarity index 100% rename from UI/Content/Bootstrap/code.less rename to src/UI/Content/Bootstrap/code.less diff --git a/UI/Content/Bootstrap/component-animations.less b/src/UI/Content/Bootstrap/component-animations.less similarity index 100% rename from UI/Content/Bootstrap/component-animations.less rename to src/UI/Content/Bootstrap/component-animations.less diff --git a/UI/Content/Bootstrap/dropdowns.less b/src/UI/Content/Bootstrap/dropdowns.less similarity index 100% rename from UI/Content/Bootstrap/dropdowns.less rename to src/UI/Content/Bootstrap/dropdowns.less diff --git a/UI/Content/Bootstrap/forms.less b/src/UI/Content/Bootstrap/forms.less similarity index 100% rename from UI/Content/Bootstrap/forms.less rename to src/UI/Content/Bootstrap/forms.less diff --git a/UI/Content/Bootstrap/grid.less b/src/UI/Content/Bootstrap/grid.less similarity index 100% rename from UI/Content/Bootstrap/grid.less rename to src/UI/Content/Bootstrap/grid.less diff --git a/UI/Content/Bootstrap/hero-unit.less b/src/UI/Content/Bootstrap/hero-unit.less similarity index 100% rename from UI/Content/Bootstrap/hero-unit.less rename to src/UI/Content/Bootstrap/hero-unit.less diff --git a/UI/Content/Bootstrap/labels-badges.less b/src/UI/Content/Bootstrap/labels-badges.less similarity index 100% rename from UI/Content/Bootstrap/labels-badges.less rename to src/UI/Content/Bootstrap/labels-badges.less diff --git a/UI/Content/Bootstrap/layouts.less b/src/UI/Content/Bootstrap/layouts.less similarity index 100% rename from UI/Content/Bootstrap/layouts.less rename to src/UI/Content/Bootstrap/layouts.less diff --git a/UI/Content/Bootstrap/media.less b/src/UI/Content/Bootstrap/media.less similarity index 100% rename from UI/Content/Bootstrap/media.less rename to src/UI/Content/Bootstrap/media.less diff --git a/UI/Content/Bootstrap/mixins.less b/src/UI/Content/Bootstrap/mixins.less similarity index 100% rename from UI/Content/Bootstrap/mixins.less rename to src/UI/Content/Bootstrap/mixins.less diff --git a/UI/Content/Bootstrap/modals.less b/src/UI/Content/Bootstrap/modals.less similarity index 100% rename from UI/Content/Bootstrap/modals.less rename to src/UI/Content/Bootstrap/modals.less diff --git a/UI/Content/Bootstrap/navbar.less b/src/UI/Content/Bootstrap/navbar.less similarity index 100% rename from UI/Content/Bootstrap/navbar.less rename to src/UI/Content/Bootstrap/navbar.less diff --git a/UI/Content/Bootstrap/navs.less b/src/UI/Content/Bootstrap/navs.less similarity index 100% rename from UI/Content/Bootstrap/navs.less rename to src/UI/Content/Bootstrap/navs.less diff --git a/UI/Content/Bootstrap/pager.less b/src/UI/Content/Bootstrap/pager.less similarity index 100% rename from UI/Content/Bootstrap/pager.less rename to src/UI/Content/Bootstrap/pager.less diff --git a/UI/Content/Bootstrap/pagination.less b/src/UI/Content/Bootstrap/pagination.less similarity index 100% rename from UI/Content/Bootstrap/pagination.less rename to src/UI/Content/Bootstrap/pagination.less diff --git a/UI/Content/Bootstrap/popovers.less b/src/UI/Content/Bootstrap/popovers.less similarity index 100% rename from UI/Content/Bootstrap/popovers.less rename to src/UI/Content/Bootstrap/popovers.less diff --git a/UI/Content/Bootstrap/progress-bars.less b/src/UI/Content/Bootstrap/progress-bars.less similarity index 100% rename from UI/Content/Bootstrap/progress-bars.less rename to src/UI/Content/Bootstrap/progress-bars.less diff --git a/UI/Content/Bootstrap/reset.less b/src/UI/Content/Bootstrap/reset.less similarity index 100% rename from UI/Content/Bootstrap/reset.less rename to src/UI/Content/Bootstrap/reset.less diff --git a/UI/Content/Bootstrap/scaffolding.less b/src/UI/Content/Bootstrap/scaffolding.less similarity index 100% rename from UI/Content/Bootstrap/scaffolding.less rename to src/UI/Content/Bootstrap/scaffolding.less diff --git a/UI/Content/Bootstrap/sprites.less b/src/UI/Content/Bootstrap/sprites.less similarity index 100% rename from UI/Content/Bootstrap/sprites.less rename to src/UI/Content/Bootstrap/sprites.less diff --git a/UI/Content/Bootstrap/tables.less b/src/UI/Content/Bootstrap/tables.less similarity index 100% rename from UI/Content/Bootstrap/tables.less rename to src/UI/Content/Bootstrap/tables.less diff --git a/UI/Content/Bootstrap/thumbnails.less b/src/UI/Content/Bootstrap/thumbnails.less similarity index 100% rename from UI/Content/Bootstrap/thumbnails.less rename to src/UI/Content/Bootstrap/thumbnails.less diff --git a/UI/Content/Bootstrap/tooltip.less b/src/UI/Content/Bootstrap/tooltip.less similarity index 100% rename from UI/Content/Bootstrap/tooltip.less rename to src/UI/Content/Bootstrap/tooltip.less diff --git a/UI/Content/Bootstrap/type.less b/src/UI/Content/Bootstrap/type.less similarity index 100% rename from UI/Content/Bootstrap/type.less rename to src/UI/Content/Bootstrap/type.less diff --git a/UI/Content/Bootstrap/utilities.less b/src/UI/Content/Bootstrap/utilities.less similarity index 100% rename from UI/Content/Bootstrap/utilities.less rename to src/UI/Content/Bootstrap/utilities.less diff --git a/UI/Content/Bootstrap/variables.less b/src/UI/Content/Bootstrap/variables.less similarity index 100% rename from UI/Content/Bootstrap/variables.less rename to src/UI/Content/Bootstrap/variables.less diff --git a/UI/Content/Bootstrap/wells.less b/src/UI/Content/Bootstrap/wells.less similarity index 100% rename from UI/Content/Bootstrap/wells.less rename to src/UI/Content/Bootstrap/wells.less diff --git a/UI/Content/FontAwesome/fontawesome.otf b/src/UI/Content/FontAwesome/FontAwesome.otf similarity index 100% rename from UI/Content/FontAwesome/fontawesome.otf rename to src/UI/Content/FontAwesome/FontAwesome.otf diff --git a/UI/Content/FontAwesome/bootstrap.less b/src/UI/Content/FontAwesome/bootstrap.less similarity index 100% rename from UI/Content/FontAwesome/bootstrap.less rename to src/UI/Content/FontAwesome/bootstrap.less diff --git a/UI/Content/FontAwesome/core.less b/src/UI/Content/FontAwesome/core.less similarity index 100% rename from UI/Content/FontAwesome/core.less rename to src/UI/Content/FontAwesome/core.less diff --git a/UI/Content/FontAwesome/extras.less b/src/UI/Content/FontAwesome/extras.less similarity index 100% rename from UI/Content/FontAwesome/extras.less rename to src/UI/Content/FontAwesome/extras.less diff --git a/UI/Content/FontAwesome/font-awesome-ie7.less b/src/UI/Content/FontAwesome/font-awesome-ie7.less similarity index 100% rename from UI/Content/FontAwesome/font-awesome-ie7.less rename to src/UI/Content/FontAwesome/font-awesome-ie7.less diff --git a/UI/Content/FontAwesome/font-awesome.less b/src/UI/Content/FontAwesome/font-awesome.less similarity index 100% rename from UI/Content/FontAwesome/font-awesome.less rename to src/UI/Content/FontAwesome/font-awesome.less diff --git a/UI/Content/FontAwesome/fontawesome-webfont.eot b/src/UI/Content/FontAwesome/fontawesome-webfont.eot similarity index 100% rename from UI/Content/FontAwesome/fontawesome-webfont.eot rename to src/UI/Content/FontAwesome/fontawesome-webfont.eot diff --git a/UI/Content/FontAwesome/fontawesome-webfont.svg b/src/UI/Content/FontAwesome/fontawesome-webfont.svg similarity index 100% rename from UI/Content/FontAwesome/fontawesome-webfont.svg rename to src/UI/Content/FontAwesome/fontawesome-webfont.svg diff --git a/UI/Content/FontAwesome/fontawesome-webfont.ttf b/src/UI/Content/FontAwesome/fontawesome-webfont.ttf similarity index 100% rename from UI/Content/FontAwesome/fontawesome-webfont.ttf rename to src/UI/Content/FontAwesome/fontawesome-webfont.ttf diff --git a/UI/Content/FontAwesome/fontawesome-webfont.woff b/src/UI/Content/FontAwesome/fontawesome-webfont.woff similarity index 100% rename from UI/Content/FontAwesome/fontawesome-webfont.woff rename to src/UI/Content/FontAwesome/fontawesome-webfont.woff diff --git a/UI/Content/FontAwesome/icons.less b/src/UI/Content/FontAwesome/icons.less similarity index 100% rename from UI/Content/FontAwesome/icons.less rename to src/UI/Content/FontAwesome/icons.less diff --git a/UI/Content/FontAwesome/mixins.less b/src/UI/Content/FontAwesome/mixins.less similarity index 100% rename from UI/Content/FontAwesome/mixins.less rename to src/UI/Content/FontAwesome/mixins.less diff --git a/UI/Content/FontAwesome/path.less b/src/UI/Content/FontAwesome/path.less similarity index 100% rename from UI/Content/FontAwesome/path.less rename to src/UI/Content/FontAwesome/path.less diff --git a/UI/Content/FontAwesome/variables.less b/src/UI/Content/FontAwesome/variables.less similarity index 100% rename from UI/Content/FontAwesome/variables.less rename to src/UI/Content/FontAwesome/variables.less diff --git a/UI/Content/Images/404.png b/src/UI/Content/Images/404.png similarity index 100% rename from UI/Content/Images/404.png rename to src/UI/Content/Images/404.png diff --git a/UI/Content/Images/black_linen_v2.png b/src/UI/Content/Images/black_linen_v2.png similarity index 100% rename from UI/Content/Images/black_linen_v2.png rename to src/UI/Content/Images/black_linen_v2.png diff --git a/UI/Content/Images/logo.png b/src/UI/Content/Images/logo.png similarity index 100% rename from UI/Content/Images/logo.png rename to src/UI/Content/Images/logo.png diff --git a/UI/Content/Images/pattern.png b/src/UI/Content/Images/pattern.png similarity index 100% rename from UI/Content/Images/pattern.png rename to src/UI/Content/Images/pattern.png diff --git a/UI/Content/Images/poster-dark.jpg b/src/UI/Content/Images/poster-dark.jpg similarity index 100% rename from UI/Content/Images/poster-dark.jpg rename to src/UI/Content/Images/poster-dark.jpg diff --git a/UI/Content/Images/touch/114.png b/src/UI/Content/Images/touch/114.png similarity index 100% rename from UI/Content/Images/touch/114.png rename to src/UI/Content/Images/touch/114.png diff --git a/UI/Content/Images/touch/144.png b/src/UI/Content/Images/touch/144.png similarity index 100% rename from UI/Content/Images/touch/144.png rename to src/UI/Content/Images/touch/144.png diff --git a/UI/Content/Images/touch/57.png b/src/UI/Content/Images/touch/57.png similarity index 100% rename from UI/Content/Images/touch/57.png rename to src/UI/Content/Images/touch/57.png diff --git a/UI/Content/Images/touch/72.png b/src/UI/Content/Images/touch/72.png similarity index 100% rename from UI/Content/Images/touch/72.png rename to src/UI/Content/Images/touch/72.png diff --git a/UI/Content/Messenger/messenger.css b/src/UI/Content/Messenger/messenger.css similarity index 100% rename from UI/Content/Messenger/messenger.css rename to src/UI/Content/Messenger/messenger.css diff --git a/UI/Content/Messenger/messenger.future.css b/src/UI/Content/Messenger/messenger.future.css similarity index 100% rename from UI/Content/Messenger/messenger.future.css rename to src/UI/Content/Messenger/messenger.future.css diff --git a/UI/Content/Overrides/bootstrap.less b/src/UI/Content/Overrides/bootstrap.less similarity index 100% rename from UI/Content/Overrides/bootstrap.less rename to src/UI/Content/Overrides/bootstrap.less diff --git a/UI/Content/Overrides/bootstrap.toggle-switch.less b/src/UI/Content/Overrides/bootstrap.toggle-switch.less similarity index 100% rename from UI/Content/Overrides/bootstrap.toggle-switch.less rename to src/UI/Content/Overrides/bootstrap.toggle-switch.less diff --git a/UI/Content/Overrides/browser.less b/src/UI/Content/Overrides/browser.less similarity index 100% rename from UI/Content/Overrides/browser.less rename to src/UI/Content/Overrides/browser.less diff --git a/UI/Content/bootstrap.toggle-switch.css b/src/UI/Content/bootstrap.toggle-switch.css similarity index 100% rename from UI/Content/bootstrap.toggle-switch.css rename to src/UI/Content/bootstrap.toggle-switch.css diff --git a/UI/Content/font.less b/src/UI/Content/font.less similarity index 100% rename from UI/Content/font.less rename to src/UI/Content/font.less diff --git a/UI/Content/fonts/OpenSans-Italic.eot b/src/UI/Content/fonts/opensans-italic.eot similarity index 100% rename from UI/Content/fonts/OpenSans-Italic.eot rename to src/UI/Content/fonts/opensans-italic.eot diff --git a/UI/Content/fonts/OpenSans-Italic.ttf b/src/UI/Content/fonts/opensans-italic.ttf similarity index 100% rename from UI/Content/fonts/OpenSans-Italic.ttf rename to src/UI/Content/fonts/opensans-italic.ttf diff --git a/UI/Content/fonts/OpenSans-Italic.woff b/src/UI/Content/fonts/opensans-italic.woff similarity index 100% rename from UI/Content/fonts/OpenSans-Italic.woff rename to src/UI/Content/fonts/opensans-italic.woff diff --git a/UI/Content/fonts/OpenSans-Light.eot b/src/UI/Content/fonts/opensans-light.eot similarity index 100% rename from UI/Content/fonts/OpenSans-Light.eot rename to src/UI/Content/fonts/opensans-light.eot diff --git a/UI/Content/fonts/OpenSans-Light.ttf b/src/UI/Content/fonts/opensans-light.ttf similarity index 100% rename from UI/Content/fonts/OpenSans-Light.ttf rename to src/UI/Content/fonts/opensans-light.ttf diff --git a/UI/Content/fonts/OpenSans-Light.woff b/src/UI/Content/fonts/opensans-light.woff similarity index 100% rename from UI/Content/fonts/OpenSans-Light.woff rename to src/UI/Content/fonts/opensans-light.woff diff --git a/UI/Content/fonts/OpenSans-LightItalic.eot b/src/UI/Content/fonts/opensans-lightitalic.eot similarity index 100% rename from UI/Content/fonts/OpenSans-LightItalic.eot rename to src/UI/Content/fonts/opensans-lightitalic.eot diff --git a/UI/Content/fonts/OpenSans-LightItalic.ttf b/src/UI/Content/fonts/opensans-lightitalic.ttf similarity index 100% rename from UI/Content/fonts/OpenSans-LightItalic.ttf rename to src/UI/Content/fonts/opensans-lightitalic.ttf diff --git a/UI/Content/fonts/OpenSans-LightItalic.woff b/src/UI/Content/fonts/opensans-lightitalic.woff similarity index 100% rename from UI/Content/fonts/OpenSans-LightItalic.woff rename to src/UI/Content/fonts/opensans-lightitalic.woff diff --git a/UI/Content/fonts/OpenSans-Regular.eot b/src/UI/Content/fonts/opensans-regular.eot similarity index 100% rename from UI/Content/fonts/OpenSans-Regular.eot rename to src/UI/Content/fonts/opensans-regular.eot diff --git a/UI/Content/fonts/OpenSans-Regular.ttf b/src/UI/Content/fonts/opensans-regular.ttf similarity index 100% rename from UI/Content/fonts/OpenSans-Regular.ttf rename to src/UI/Content/fonts/opensans-regular.ttf diff --git a/UI/Content/fonts/OpenSans-Regular.woff b/src/UI/Content/fonts/opensans-regular.woff similarity index 100% rename from UI/Content/fonts/OpenSans-Regular.woff rename to src/UI/Content/fonts/opensans-regular.woff diff --git a/UI/Content/fonts/OpenSans-SemiBold.eot b/src/UI/Content/fonts/opensans-semibold.eot similarity index 100% rename from UI/Content/fonts/OpenSans-SemiBold.eot rename to src/UI/Content/fonts/opensans-semibold.eot diff --git a/UI/Content/fonts/OpenSans-Semibold.ttf b/src/UI/Content/fonts/opensans-semibold.ttf similarity index 100% rename from UI/Content/fonts/OpenSans-Semibold.ttf rename to src/UI/Content/fonts/opensans-semibold.ttf diff --git a/UI/Content/fonts/OpenSans-SemiBold.woff b/src/UI/Content/fonts/opensans-semibold.woff similarity index 100% rename from UI/Content/fonts/OpenSans-SemiBold.woff rename to src/UI/Content/fonts/opensans-semibold.woff diff --git a/UI/Content/fonts/OpenSans-SemiboldItalic.eot b/src/UI/Content/fonts/opensans-semibolditalic.eot similarity index 100% rename from UI/Content/fonts/OpenSans-SemiboldItalic.eot rename to src/UI/Content/fonts/opensans-semibolditalic.eot diff --git a/UI/Content/fonts/OpenSans-SemiboldItalic.ttf b/src/UI/Content/fonts/opensans-semibolditalic.ttf similarity index 100% rename from UI/Content/fonts/OpenSans-SemiboldItalic.ttf rename to src/UI/Content/fonts/opensans-semibolditalic.ttf diff --git a/UI/Content/fonts/OpenSans-SemiboldItalic.woff b/src/UI/Content/fonts/opensans-semibolditalic.woff similarity index 100% rename from UI/Content/fonts/OpenSans-SemiboldItalic.woff rename to src/UI/Content/fonts/opensans-semibolditalic.woff diff --git a/UI/Content/form.less b/src/UI/Content/form.less similarity index 100% rename from UI/Content/form.less rename to src/UI/Content/form.less diff --git a/UI/Content/fullcalendar.css b/src/UI/Content/fullcalendar.css similarity index 100% rename from UI/Content/fullcalendar.css rename to src/UI/Content/fullcalendar.css diff --git a/UI/Content/icons.less b/src/UI/Content/icons.less similarity index 100% rename from UI/Content/icons.less rename to src/UI/Content/icons.less diff --git a/UI/Content/legend.less b/src/UI/Content/legend.less similarity index 100% rename from UI/Content/legend.less rename to src/UI/Content/legend.less diff --git a/UI/Content/menu.less b/src/UI/Content/menu.less similarity index 100% rename from UI/Content/menu.less rename to src/UI/Content/menu.less diff --git a/UI/Content/overrides.less b/src/UI/Content/overrides.less similarity index 100% rename from UI/Content/overrides.less rename to src/UI/Content/overrides.less diff --git a/UI/Content/prefixer.less b/src/UI/Content/prefixer.less similarity index 100% rename from UI/Content/prefixer.less rename to src/UI/Content/prefixer.less diff --git a/UI/Content/spinner.less b/src/UI/Content/spinner.less similarity index 100% rename from UI/Content/spinner.less rename to src/UI/Content/spinner.less diff --git a/UI/Content/theme.less b/src/UI/Content/theme.less similarity index 100% rename from UI/Content/theme.less rename to src/UI/Content/theme.less diff --git a/UI/Content/variables.less b/src/UI/Content/variables.less similarity index 100% rename from UI/Content/variables.less rename to src/UI/Content/variables.less diff --git a/UI/Controller.js b/src/UI/Controller.js similarity index 100% rename from UI/Controller.js rename to src/UI/Controller.js diff --git a/UI/Episode/EpisodeDetailsLayout.js b/src/UI/Episode/EpisodeDetailsLayout.js similarity index 100% rename from UI/Episode/EpisodeDetailsLayout.js rename to src/UI/Episode/EpisodeDetailsLayout.js diff --git a/UI/Episode/EpisodeDetailsLayoutTemplate.html b/src/UI/Episode/EpisodeDetailsLayoutTemplate.html similarity index 100% rename from UI/Episode/EpisodeDetailsLayoutTemplate.html rename to src/UI/Episode/EpisodeDetailsLayoutTemplate.html diff --git a/UI/Episode/Search/ButtonsView.js b/src/UI/Episode/Search/ButtonsView.js similarity index 100% rename from UI/Episode/Search/ButtonsView.js rename to src/UI/Episode/Search/ButtonsView.js diff --git a/UI/Episode/Search/ButtonsViewTemplate.html b/src/UI/Episode/Search/ButtonsViewTemplate.html similarity index 100% rename from UI/Episode/Search/ButtonsViewTemplate.html rename to src/UI/Episode/Search/ButtonsViewTemplate.html diff --git a/UI/Episode/Search/EpisodeSearchLayout.js b/src/UI/Episode/Search/EpisodeSearchLayout.js similarity index 100% rename from UI/Episode/Search/EpisodeSearchLayout.js rename to src/UI/Episode/Search/EpisodeSearchLayout.js diff --git a/UI/Episode/Search/EpisodeSearchLayoutTemplate.html b/src/UI/Episode/Search/EpisodeSearchLayoutTemplate.html similarity index 100% rename from UI/Episode/Search/EpisodeSearchLayoutTemplate.html rename to src/UI/Episode/Search/EpisodeSearchLayoutTemplate.html diff --git a/UI/Episode/Search/ManualLayout.js b/src/UI/Episode/Search/ManualLayout.js similarity index 100% rename from UI/Episode/Search/ManualLayout.js rename to src/UI/Episode/Search/ManualLayout.js diff --git a/UI/Episode/Search/ManualLayoutTemplate.html b/src/UI/Episode/Search/ManualLayoutTemplate.html similarity index 100% rename from UI/Episode/Search/ManualLayoutTemplate.html rename to src/UI/Episode/Search/ManualLayoutTemplate.html diff --git a/UI/Episode/Summary/EpisodeSummaryLayout.js b/src/UI/Episode/Summary/EpisodeSummaryLayout.js similarity index 100% rename from UI/Episode/Summary/EpisodeSummaryLayout.js rename to src/UI/Episode/Summary/EpisodeSummaryLayout.js diff --git a/UI/Episode/Summary/EpisodeSummaryLayoutTemplate.html b/src/UI/Episode/Summary/EpisodeSummaryLayoutTemplate.html similarity index 100% rename from UI/Episode/Summary/EpisodeSummaryLayoutTemplate.html rename to src/UI/Episode/Summary/EpisodeSummaryLayoutTemplate.html diff --git a/UI/Episode/Summary/NoFileView.js b/src/UI/Episode/Summary/NoFileView.js similarity index 100% rename from UI/Episode/Summary/NoFileView.js rename to src/UI/Episode/Summary/NoFileView.js diff --git a/UI/Episode/Summary/NoFileViewTemplate.html b/src/UI/Episode/Summary/NoFileViewTemplate.html similarity index 100% rename from UI/Episode/Summary/NoFileViewTemplate.html rename to src/UI/Episode/Summary/NoFileViewTemplate.html diff --git a/UI/Form/CheckboxTemplate.html b/src/UI/Form/CheckboxTemplate.html similarity index 100% rename from UI/Form/CheckboxTemplate.html rename to src/UI/Form/CheckboxTemplate.html diff --git a/UI/Form/FormBuilder.js b/src/UI/Form/FormBuilder.js similarity index 100% rename from UI/Form/FormBuilder.js rename to src/UI/Form/FormBuilder.js diff --git a/UI/Form/FormHelpPartial.html b/src/UI/Form/FormHelpPartial.html similarity index 100% rename from UI/Form/FormHelpPartial.html rename to src/UI/Form/FormHelpPartial.html diff --git a/UI/Form/PasswordTemplate.html b/src/UI/Form/PasswordTemplate.html similarity index 100% rename from UI/Form/PasswordTemplate.html rename to src/UI/Form/PasswordTemplate.html diff --git a/UI/Form/SelectTemplate.html b/src/UI/Form/SelectTemplate.html similarity index 100% rename from UI/Form/SelectTemplate.html rename to src/UI/Form/SelectTemplate.html diff --git a/UI/Form/TextboxTemplate.html b/src/UI/Form/TextboxTemplate.html similarity index 100% rename from UI/Form/TextboxTemplate.html rename to src/UI/Form/TextboxTemplate.html diff --git a/UI/Handlebars/Handlebars.Debug.js b/src/UI/Handlebars/Handlebars.Debug.js similarity index 100% rename from UI/Handlebars/Handlebars.Debug.js rename to src/UI/Handlebars/Handlebars.Debug.js diff --git a/UI/Handlebars/Helpers/DateTime.js b/src/UI/Handlebars/Helpers/DateTime.js similarity index 100% rename from UI/Handlebars/Helpers/DateTime.js rename to src/UI/Handlebars/Helpers/DateTime.js diff --git a/UI/Handlebars/Helpers/Episode.js b/src/UI/Handlebars/Helpers/Episode.js similarity index 100% rename from UI/Handlebars/Helpers/Episode.js rename to src/UI/Handlebars/Helpers/Episode.js diff --git a/UI/Handlebars/Helpers/Html.js b/src/UI/Handlebars/Helpers/Html.js similarity index 100% rename from UI/Handlebars/Helpers/Html.js rename to src/UI/Handlebars/Helpers/Html.js diff --git a/UI/Handlebars/Helpers/Numbers.js b/src/UI/Handlebars/Helpers/Numbers.js similarity index 100% rename from UI/Handlebars/Helpers/Numbers.js rename to src/UI/Handlebars/Helpers/Numbers.js diff --git a/UI/Handlebars/Helpers/Quality.js b/src/UI/Handlebars/Helpers/Quality.js similarity index 100% rename from UI/Handlebars/Helpers/Quality.js rename to src/UI/Handlebars/Helpers/Quality.js diff --git a/UI/Handlebars/Helpers/Series.js b/src/UI/Handlebars/Helpers/Series.js similarity index 100% rename from UI/Handlebars/Helpers/Series.js rename to src/UI/Handlebars/Helpers/Series.js diff --git a/UI/Handlebars/Helpers/Version.js b/src/UI/Handlebars/Helpers/Version.js similarity index 100% rename from UI/Handlebars/Helpers/Version.js rename to src/UI/Handlebars/Helpers/Version.js diff --git a/UI/Handlebars/backbone.marionette.templates.js b/src/UI/Handlebars/backbone.marionette.templates.js similarity index 100% rename from UI/Handlebars/backbone.marionette.templates.js rename to src/UI/Handlebars/backbone.marionette.templates.js diff --git a/UI/History/Details/HistoryDetailsView.js b/src/UI/History/Details/HistoryDetailsView.js similarity index 100% rename from UI/History/Details/HistoryDetailsView.js rename to src/UI/History/Details/HistoryDetailsView.js diff --git a/UI/History/Details/HistoryDetailsViewTemplate.html b/src/UI/History/Details/HistoryDetailsViewTemplate.html similarity index 100% rename from UI/History/Details/HistoryDetailsViewTemplate.html rename to src/UI/History/Details/HistoryDetailsViewTemplate.html diff --git a/UI/History/HistoryCollection.js b/src/UI/History/HistoryCollection.js similarity index 100% rename from UI/History/HistoryCollection.js rename to src/UI/History/HistoryCollection.js diff --git a/UI/History/HistoryLayout.js b/src/UI/History/HistoryLayout.js similarity index 100% rename from UI/History/HistoryLayout.js rename to src/UI/History/HistoryLayout.js diff --git a/UI/History/HistoryLayoutTemplate.html b/src/UI/History/HistoryLayoutTemplate.html similarity index 100% rename from UI/History/HistoryLayoutTemplate.html rename to src/UI/History/HistoryLayoutTemplate.html diff --git a/UI/History/HistoryModel.js b/src/UI/History/HistoryModel.js similarity index 100% rename from UI/History/HistoryModel.js rename to src/UI/History/HistoryModel.js diff --git a/UI/History/Queue/QueueCollection.js b/src/UI/History/Queue/QueueCollection.js similarity index 100% rename from UI/History/Queue/QueueCollection.js rename to src/UI/History/Queue/QueueCollection.js diff --git a/UI/History/Queue/QueueLayout.js b/src/UI/History/Queue/QueueLayout.js similarity index 100% rename from UI/History/Queue/QueueLayout.js rename to src/UI/History/Queue/QueueLayout.js diff --git a/UI/History/Queue/QueueLayoutTemplate.html b/src/UI/History/Queue/QueueLayoutTemplate.html similarity index 100% rename from UI/History/Queue/QueueLayoutTemplate.html rename to src/UI/History/Queue/QueueLayoutTemplate.html diff --git a/UI/History/Queue/QueueModel.js b/src/UI/History/Queue/QueueModel.js similarity index 100% rename from UI/History/Queue/QueueModel.js rename to src/UI/History/Queue/QueueModel.js diff --git a/UI/History/Queue/TimeleftCell.js b/src/UI/History/Queue/TimeleftCell.js similarity index 100% rename from UI/History/Queue/TimeleftCell.js rename to src/UI/History/Queue/TimeleftCell.js diff --git a/UI/History/Table/ControlsColumnTemplate.html b/src/UI/History/Table/ControlsColumnTemplate.html similarity index 100% rename from UI/History/Table/ControlsColumnTemplate.html rename to src/UI/History/Table/ControlsColumnTemplate.html diff --git a/UI/History/Table/EventTypeCell.js b/src/UI/History/Table/EventTypeCell.js similarity index 100% rename from UI/History/Table/EventTypeCell.js rename to src/UI/History/Table/EventTypeCell.js diff --git a/UI/History/Table/HistoryDetailsCell.js b/src/UI/History/Table/HistoryDetailsCell.js similarity index 100% rename from UI/History/Table/HistoryDetailsCell.js rename to src/UI/History/Table/HistoryDetailsCell.js diff --git a/UI/History/Table/HistoryTableLayout.js b/src/UI/History/Table/HistoryTableLayout.js similarity index 100% rename from UI/History/Table/HistoryTableLayout.js rename to src/UI/History/Table/HistoryTableLayout.js diff --git a/UI/History/Table/HistoryTableLayoutTemplate.html b/src/UI/History/Table/HistoryTableLayoutTemplate.html similarity index 100% rename from UI/History/Table/HistoryTableLayoutTemplate.html rename to src/UI/History/Table/HistoryTableLayoutTemplate.html diff --git a/UI/Instrumentation/ErrorHandler.js b/src/UI/Instrumentation/ErrorHandler.js similarity index 100% rename from UI/Instrumentation/ErrorHandler.js rename to src/UI/Instrumentation/ErrorHandler.js diff --git a/UI/Instrumentation/StringFormat.js b/src/UI/Instrumentation/StringFormat.js similarity index 100% rename from UI/Instrumentation/StringFormat.js rename to src/UI/Instrumentation/StringFormat.js diff --git a/UI/JsLibraries/backbone.backgrid.filter.js b/src/UI/JsLibraries/backbone.backgrid.filter.js similarity index 100% rename from UI/JsLibraries/backbone.backgrid.filter.js rename to src/UI/JsLibraries/backbone.backgrid.filter.js diff --git a/UI/JsLibraries/backbone.backgrid.js b/src/UI/JsLibraries/backbone.backgrid.js similarity index 100% rename from UI/JsLibraries/backbone.backgrid.js rename to src/UI/JsLibraries/backbone.backgrid.js diff --git a/UI/JsLibraries/backbone.backgrid.paginator.js b/src/UI/JsLibraries/backbone.backgrid.paginator.js similarity index 100% rename from UI/JsLibraries/backbone.backgrid.paginator.js rename to src/UI/JsLibraries/backbone.backgrid.paginator.js diff --git a/UI/JsLibraries/backbone.deep.model.js b/src/UI/JsLibraries/backbone.deep.model.js similarity index 100% rename from UI/JsLibraries/backbone.deep.model.js rename to src/UI/JsLibraries/backbone.deep.model.js diff --git a/UI/JsLibraries/backbone.js b/src/UI/JsLibraries/backbone.js similarity index 100% rename from UI/JsLibraries/backbone.js rename to src/UI/JsLibraries/backbone.js diff --git a/UI/JsLibraries/backbone.marionette.js b/src/UI/JsLibraries/backbone.marionette.js similarity index 100% rename from UI/JsLibraries/backbone.marionette.js rename to src/UI/JsLibraries/backbone.marionette.js diff --git a/UI/JsLibraries/backbone.modelbinder.js b/src/UI/JsLibraries/backbone.modelbinder.js similarity index 100% rename from UI/JsLibraries/backbone.modelbinder.js rename to src/UI/JsLibraries/backbone.modelbinder.js diff --git a/UI/JsLibraries/backbone.pageable.js b/src/UI/JsLibraries/backbone.pageable.js similarity index 100% rename from UI/JsLibraries/backbone.pageable.js rename to src/UI/JsLibraries/backbone.pageable.js diff --git a/UI/JsLibraries/backbone.shortcuts.js b/src/UI/JsLibraries/backbone.shortcuts.js similarity index 100% rename from UI/JsLibraries/backbone.shortcuts.js rename to src/UI/JsLibraries/backbone.shortcuts.js diff --git a/UI/JsLibraries/backbone.validation.js b/src/UI/JsLibraries/backbone.validation.js similarity index 100% rename from UI/JsLibraries/backbone.validation.js rename to src/UI/JsLibraries/backbone.validation.js diff --git a/UI/JsLibraries/bootstrap.js b/src/UI/JsLibraries/bootstrap.js similarity index 100% rename from UI/JsLibraries/bootstrap.js rename to src/UI/JsLibraries/bootstrap.js diff --git a/UI/JsLibraries/filesize.js b/src/UI/JsLibraries/filesize.js similarity index 100% rename from UI/JsLibraries/filesize.js rename to src/UI/JsLibraries/filesize.js diff --git a/UI/JsLibraries/fullcalendar.js b/src/UI/JsLibraries/fullcalendar.js similarity index 100% rename from UI/JsLibraries/fullcalendar.js rename to src/UI/JsLibraries/fullcalendar.js diff --git a/UI/JsLibraries/handlebars.helpers.js b/src/UI/JsLibraries/handlebars.helpers.js similarity index 100% rename from UI/JsLibraries/handlebars.helpers.js rename to src/UI/JsLibraries/handlebars.helpers.js diff --git a/UI/JsLibraries/handlebars.runtime.js b/src/UI/JsLibraries/handlebars.runtime.js similarity index 100% rename from UI/JsLibraries/handlebars.runtime.js rename to src/UI/JsLibraries/handlebars.runtime.js diff --git a/UI/JsLibraries/jquery.backstretch.js b/src/UI/JsLibraries/jquery.backstretch.js similarity index 100% rename from UI/JsLibraries/jquery.backstretch.js rename to src/UI/JsLibraries/jquery.backstretch.js diff --git a/UI/JsLibraries/jquery.dotdotdot.js b/src/UI/JsLibraries/jquery.dotdotdot.js similarity index 100% rename from UI/JsLibraries/jquery.dotdotdot.js rename to src/UI/JsLibraries/jquery.dotdotdot.js diff --git a/UI/JsLibraries/jquery.js b/src/UI/JsLibraries/jquery.js similarity index 100% rename from UI/JsLibraries/jquery.js rename to src/UI/JsLibraries/jquery.js diff --git a/UI/JsLibraries/jquery.knob.js b/src/UI/JsLibraries/jquery.knob.js similarity index 100% rename from UI/JsLibraries/jquery.knob.js rename to src/UI/JsLibraries/jquery.knob.js diff --git a/UI/JsLibraries/jquery.signalR.js b/src/UI/JsLibraries/jquery.signalR.js similarity index 100% rename from UI/JsLibraries/jquery.signalR.js rename to src/UI/JsLibraries/jquery.signalR.js diff --git a/UI/JsLibraries/lodash.underscore.js b/src/UI/JsLibraries/lodash.underscore.js similarity index 100% rename from UI/JsLibraries/lodash.underscore.js rename to src/UI/JsLibraries/lodash.underscore.js diff --git a/UI/JsLibraries/messenger.js b/src/UI/JsLibraries/messenger.js similarity index 100% rename from UI/JsLibraries/messenger.js rename to src/UI/JsLibraries/messenger.js diff --git a/UI/JsLibraries/moment.js b/src/UI/JsLibraries/moment.js similarity index 100% rename from UI/JsLibraries/moment.js rename to src/UI/JsLibraries/moment.js diff --git a/UI/JsLibraries/require.js b/src/UI/JsLibraries/require.js similarity index 100% rename from UI/JsLibraries/require.js rename to src/UI/JsLibraries/require.js diff --git a/UI/Missing/Collection.js b/src/UI/Missing/Collection.js similarity index 100% rename from UI/Missing/Collection.js rename to src/UI/Missing/Collection.js diff --git a/UI/Missing/ControlsColumnTemplate.html b/src/UI/Missing/ControlsColumnTemplate.html similarity index 100% rename from UI/Missing/ControlsColumnTemplate.html rename to src/UI/Missing/ControlsColumnTemplate.html diff --git a/UI/Missing/MissingLayout.js b/src/UI/Missing/MissingLayout.js similarity index 100% rename from UI/Missing/MissingLayout.js rename to src/UI/Missing/MissingLayout.js diff --git a/UI/Missing/MissingLayoutTemplate.html b/src/UI/Missing/MissingLayoutTemplate.html similarity index 100% rename from UI/Missing/MissingLayoutTemplate.html rename to src/UI/Missing/MissingLayoutTemplate.html diff --git a/UI/Mixins/AsChangeTrackingModel.js b/src/UI/Mixins/AsChangeTrackingModel.js similarity index 100% rename from UI/Mixins/AsChangeTrackingModel.js rename to src/UI/Mixins/AsChangeTrackingModel.js diff --git a/UI/Mixins/AsModelBoundView.js b/src/UI/Mixins/AsModelBoundView.js similarity index 100% rename from UI/Mixins/AsModelBoundView.js rename to src/UI/Mixins/AsModelBoundView.js diff --git a/UI/Mixins/AsNamedView.js b/src/UI/Mixins/AsNamedView.js similarity index 100% rename from UI/Mixins/AsNamedView.js rename to src/UI/Mixins/AsNamedView.js diff --git a/UI/Mixins/AsValidatedView.js b/src/UI/Mixins/AsValidatedView.js similarity index 100% rename from UI/Mixins/AsValidatedView.js rename to src/UI/Mixins/AsValidatedView.js diff --git a/UI/Mixins/AutoComplete.js b/src/UI/Mixins/AutoComplete.js similarity index 100% rename from UI/Mixins/AutoComplete.js rename to src/UI/Mixins/AutoComplete.js diff --git a/UI/Mixins/backbone.marionette.region.mixin.js b/src/UI/Mixins/backbone.marionette.region.mixin.js similarity index 100% rename from UI/Mixins/backbone.marionette.region.mixin.js rename to src/UI/Mixins/backbone.marionette.region.mixin.js diff --git a/UI/Mixins/backbone.signalr.mixin.js b/src/UI/Mixins/backbone.signalr.mixin.js similarity index 100% rename from UI/Mixins/backbone.signalr.mixin.js rename to src/UI/Mixins/backbone.signalr.mixin.js diff --git a/UI/Mixins/jquery.ajax.js b/src/UI/Mixins/jquery.ajax.js similarity index 100% rename from UI/Mixins/jquery.ajax.js rename to src/UI/Mixins/jquery.ajax.js diff --git a/UI/Mixins/underscore.mixin.deepExtend.js b/src/UI/Mixins/underscore.mixin.deepExtend.js similarity index 100% rename from UI/Mixins/underscore.mixin.deepExtend.js rename to src/UI/Mixins/underscore.mixin.deepExtend.js diff --git a/UI/Navbar/NavbarTemplate.html b/src/UI/Navbar/NavbarTemplate.html similarity index 100% rename from UI/Navbar/NavbarTemplate.html rename to src/UI/Navbar/NavbarTemplate.html diff --git a/UI/Navbar/NavbarView.js b/src/UI/Navbar/NavbarView.js similarity index 100% rename from UI/Navbar/NavbarView.js rename to src/UI/Navbar/NavbarView.js diff --git a/UI/Navbar/Search.js b/src/UI/Navbar/Search.js similarity index 100% rename from UI/Navbar/Search.js rename to src/UI/Navbar/Search.js diff --git a/UI/ProgressMessaging/ProgressMessageCollection.js b/src/UI/ProgressMessaging/ProgressMessageCollection.js similarity index 100% rename from UI/ProgressMessaging/ProgressMessageCollection.js rename to src/UI/ProgressMessaging/ProgressMessageCollection.js diff --git a/UI/Quality/QualityProfileCollection.js b/src/UI/Quality/QualityProfileCollection.js similarity index 100% rename from UI/Quality/QualityProfileCollection.js rename to src/UI/Quality/QualityProfileCollection.js diff --git a/UI/Quality/QualityProfileModel.js b/src/UI/Quality/QualityProfileModel.js similarity index 100% rename from UI/Quality/QualityProfileModel.js rename to src/UI/Quality/QualityProfileModel.js diff --git a/UI/Quality/QualityProfileSelectionPartial.html b/src/UI/Quality/QualityProfileSelectionPartial.html similarity index 100% rename from UI/Quality/QualityProfileSelectionPartial.html rename to src/UI/Quality/QualityProfileSelectionPartial.html diff --git a/UI/Quality/QualitySizeCollection.js b/src/UI/Quality/QualitySizeCollection.js similarity index 100% rename from UI/Quality/QualitySizeCollection.js rename to src/UI/Quality/QualitySizeCollection.js diff --git a/UI/Quality/QualitySizeModel.js b/src/UI/Quality/QualitySizeModel.js similarity index 100% rename from UI/Quality/QualitySizeModel.js rename to src/UI/Quality/QualitySizeModel.js diff --git a/UI/Release/Collection.js b/src/UI/Release/Collection.js similarity index 100% rename from UI/Release/Collection.js rename to src/UI/Release/Collection.js diff --git a/UI/Release/DownloadReportCell.js b/src/UI/Release/DownloadReportCell.js similarity index 100% rename from UI/Release/DownloadReportCell.js rename to src/UI/Release/DownloadReportCell.js diff --git a/UI/Release/Layout.js b/src/UI/Release/Layout.js similarity index 100% rename from UI/Release/Layout.js rename to src/UI/Release/Layout.js diff --git a/UI/Release/LayoutTemplate.html b/src/UI/Release/LayoutTemplate.html similarity index 100% rename from UI/Release/LayoutTemplate.html rename to src/UI/Release/LayoutTemplate.html diff --git a/UI/Release/Model.js b/src/UI/Release/Model.js similarity index 100% rename from UI/Release/Model.js rename to src/UI/Release/Model.js diff --git a/UI/Router.js b/src/UI/Router.js similarity index 100% rename from UI/Router.js rename to src/UI/Router.js diff --git a/UI/SeasonPass/SeasonPassLayout.js b/src/UI/SeasonPass/SeasonPassLayout.js similarity index 100% rename from UI/SeasonPass/SeasonPassLayout.js rename to src/UI/SeasonPass/SeasonPassLayout.js diff --git a/UI/SeasonPass/SeasonPassLayoutTemplate.html b/src/UI/SeasonPass/SeasonPassLayoutTemplate.html similarity index 100% rename from UI/SeasonPass/SeasonPassLayoutTemplate.html rename to src/UI/SeasonPass/SeasonPassLayoutTemplate.html diff --git a/UI/SeasonPass/SeriesCollectionView.js b/src/UI/SeasonPass/SeriesCollectionView.js similarity index 100% rename from UI/SeasonPass/SeriesCollectionView.js rename to src/UI/SeasonPass/SeriesCollectionView.js diff --git a/UI/SeasonPass/SeriesLayout.js b/src/UI/SeasonPass/SeriesLayout.js similarity index 100% rename from UI/SeasonPass/SeriesLayout.js rename to src/UI/SeasonPass/SeriesLayout.js diff --git a/UI/SeasonPass/SeriesLayoutTemplate.html b/src/UI/SeasonPass/SeriesLayoutTemplate.html similarity index 100% rename from UI/SeasonPass/SeriesLayoutTemplate.html rename to src/UI/SeasonPass/SeriesLayoutTemplate.html diff --git a/UI/Series/Delete/DeleteSeriesTemplate.html b/src/UI/Series/Delete/DeleteSeriesTemplate.html similarity index 100% rename from UI/Series/Delete/DeleteSeriesTemplate.html rename to src/UI/Series/Delete/DeleteSeriesTemplate.html diff --git a/UI/Series/Delete/DeleteSeriesView.js b/src/UI/Series/Delete/DeleteSeriesView.js similarity index 100% rename from UI/Series/Delete/DeleteSeriesView.js rename to src/UI/Series/Delete/DeleteSeriesView.js diff --git a/UI/Series/Details/InfoView.js b/src/UI/Series/Details/InfoView.js similarity index 100% rename from UI/Series/Details/InfoView.js rename to src/UI/Series/Details/InfoView.js diff --git a/UI/Series/Details/InfoViewTemplate.html b/src/UI/Series/Details/InfoViewTemplate.html similarity index 100% rename from UI/Series/Details/InfoViewTemplate.html rename to src/UI/Series/Details/InfoViewTemplate.html diff --git a/UI/Series/Details/SeasonCollectionView.js b/src/UI/Series/Details/SeasonCollectionView.js similarity index 100% rename from UI/Series/Details/SeasonCollectionView.js rename to src/UI/Series/Details/SeasonCollectionView.js diff --git a/UI/Series/Details/SeasonLayout.js b/src/UI/Series/Details/SeasonLayout.js similarity index 100% rename from UI/Series/Details/SeasonLayout.js rename to src/UI/Series/Details/SeasonLayout.js diff --git a/UI/Series/Details/SeasonLayoutTemplate.html b/src/UI/Series/Details/SeasonLayoutTemplate.html similarity index 100% rename from UI/Series/Details/SeasonLayoutTemplate.html rename to src/UI/Series/Details/SeasonLayoutTemplate.html diff --git a/UI/Series/Details/SeriesDetailsLayout.js b/src/UI/Series/Details/SeriesDetailsLayout.js similarity index 100% rename from UI/Series/Details/SeriesDetailsLayout.js rename to src/UI/Series/Details/SeriesDetailsLayout.js diff --git a/UI/Series/Details/SeriesDetailsTemplate.html b/src/UI/Series/Details/SeriesDetailsTemplate.html similarity index 100% rename from UI/Series/Details/SeriesDetailsTemplate.html rename to src/UI/Series/Details/SeriesDetailsTemplate.html diff --git a/UI/Series/Edit/EditSeriesTemplate.html b/src/UI/Series/Edit/EditSeriesTemplate.html similarity index 100% rename from UI/Series/Edit/EditSeriesTemplate.html rename to src/UI/Series/Edit/EditSeriesTemplate.html diff --git a/UI/Series/Edit/EditSeriesView.js b/src/UI/Series/Edit/EditSeriesView.js similarity index 100% rename from UI/Series/Edit/EditSeriesView.js rename to src/UI/Series/Edit/EditSeriesView.js diff --git a/UI/Series/EpisodeCollection.js b/src/UI/Series/EpisodeCollection.js similarity index 100% rename from UI/Series/EpisodeCollection.js rename to src/UI/Series/EpisodeCollection.js diff --git a/UI/Series/EpisodeFileCollection.js b/src/UI/Series/EpisodeFileCollection.js similarity index 100% rename from UI/Series/EpisodeFileCollection.js rename to src/UI/Series/EpisodeFileCollection.js diff --git a/UI/Series/EpisodeFileModel.js b/src/UI/Series/EpisodeFileModel.js similarity index 100% rename from UI/Series/EpisodeFileModel.js rename to src/UI/Series/EpisodeFileModel.js diff --git a/UI/Series/EpisodeModel.js b/src/UI/Series/EpisodeModel.js similarity index 100% rename from UI/Series/EpisodeModel.js rename to src/UI/Series/EpisodeModel.js diff --git a/UI/Series/Index/EmptySeriesIndexView.js b/src/UI/Series/Index/EmptySeriesIndexView.js similarity index 100% rename from UI/Series/Index/EmptySeriesIndexView.js rename to src/UI/Series/Index/EmptySeriesIndexView.js diff --git a/UI/Series/Index/EmptyTemplate.html b/src/UI/Series/Index/EmptyTemplate.html similarity index 100% rename from UI/Series/Index/EmptyTemplate.html rename to src/UI/Series/Index/EmptyTemplate.html diff --git a/UI/Series/Index/EmptyView.js b/src/UI/Series/Index/EmptyView.js similarity index 100% rename from UI/Series/Index/EmptyView.js rename to src/UI/Series/Index/EmptyView.js diff --git a/UI/Series/Index/EpisodeProgressPartial.html b/src/UI/Series/Index/EpisodeProgressPartial.html similarity index 100% rename from UI/Series/Index/EpisodeProgressPartial.html rename to src/UI/Series/Index/EpisodeProgressPartial.html diff --git a/UI/Series/Index/FooterModel.js b/src/UI/Series/Index/FooterModel.js similarity index 100% rename from UI/Series/Index/FooterModel.js rename to src/UI/Series/Index/FooterModel.js diff --git a/UI/Series/Index/FooterView.js b/src/UI/Series/Index/FooterView.js similarity index 100% rename from UI/Series/Index/FooterView.js rename to src/UI/Series/Index/FooterView.js diff --git a/UI/Series/Index/FooterViewTemplate.html b/src/UI/Series/Index/FooterViewTemplate.html similarity index 100% rename from UI/Series/Index/FooterViewTemplate.html rename to src/UI/Series/Index/FooterViewTemplate.html diff --git a/UI/Series/Index/List/CollectionTemplate.html b/src/UI/Series/Index/List/CollectionTemplate.html similarity index 100% rename from UI/Series/Index/List/CollectionTemplate.html rename to src/UI/Series/Index/List/CollectionTemplate.html diff --git a/UI/Series/Index/List/CollectionView.js b/src/UI/Series/Index/List/CollectionView.js similarity index 100% rename from UI/Series/Index/List/CollectionView.js rename to src/UI/Series/Index/List/CollectionView.js diff --git a/UI/Series/Index/List/ItemTemplate.html b/src/UI/Series/Index/List/ItemTemplate.html similarity index 100% rename from UI/Series/Index/List/ItemTemplate.html rename to src/UI/Series/Index/List/ItemTemplate.html diff --git a/UI/Series/Index/List/ItemView.js b/src/UI/Series/Index/List/ItemView.js similarity index 100% rename from UI/Series/Index/List/ItemView.js rename to src/UI/Series/Index/List/ItemView.js diff --git a/UI/Series/Index/Posters/CollectionTemplate.html b/src/UI/Series/Index/Posters/CollectionTemplate.html similarity index 100% rename from UI/Series/Index/Posters/CollectionTemplate.html rename to src/UI/Series/Index/Posters/CollectionTemplate.html diff --git a/UI/Series/Index/Posters/CollectionView.js b/src/UI/Series/Index/Posters/CollectionView.js similarity index 100% rename from UI/Series/Index/Posters/CollectionView.js rename to src/UI/Series/Index/Posters/CollectionView.js diff --git a/UI/Series/Index/Posters/ItemTemplate.html b/src/UI/Series/Index/Posters/ItemTemplate.html similarity index 100% rename from UI/Series/Index/Posters/ItemTemplate.html rename to src/UI/Series/Index/Posters/ItemTemplate.html diff --git a/UI/Series/Index/Posters/ItemView.js b/src/UI/Series/Index/Posters/ItemView.js similarity index 100% rename from UI/Series/Index/Posters/ItemView.js rename to src/UI/Series/Index/Posters/ItemView.js diff --git a/UI/Series/Index/SeriesIndexLayout.js b/src/UI/Series/Index/SeriesIndexLayout.js similarity index 100% rename from UI/Series/Index/SeriesIndexLayout.js rename to src/UI/Series/Index/SeriesIndexLayout.js diff --git a/UI/Series/Index/SeriesIndexLayoutTemplate.html b/src/UI/Series/Index/SeriesIndexLayoutTemplate.html similarity index 100% rename from UI/Series/Index/SeriesIndexLayoutTemplate.html rename to src/UI/Series/Index/SeriesIndexLayoutTemplate.html diff --git a/UI/Series/SeasonCollection.js b/src/UI/Series/SeasonCollection.js similarity index 100% rename from UI/Series/SeasonCollection.js rename to src/UI/Series/SeasonCollection.js diff --git a/UI/Series/SeasonModel.js b/src/UI/Series/SeasonModel.js similarity index 100% rename from UI/Series/SeasonModel.js rename to src/UI/Series/SeasonModel.js diff --git a/UI/Series/SeriesCollection.js b/src/UI/Series/SeriesCollection.js similarity index 100% rename from UI/Series/SeriesCollection.js rename to src/UI/Series/SeriesCollection.js diff --git a/UI/Series/SeriesModel.js b/src/UI/Series/SeriesModel.js similarity index 100% rename from UI/Series/SeriesModel.js rename to src/UI/Series/SeriesModel.js diff --git a/UI/Series/series.less b/src/UI/Series/series.less similarity index 100% rename from UI/Series/series.less rename to src/UI/Series/series.less diff --git a/UI/ServerStatus.js b/src/UI/ServerStatus.js similarity index 100% rename from UI/ServerStatus.js rename to src/UI/ServerStatus.js diff --git a/UI/Settings/DownloadClient/BlackholeView.js b/src/UI/Settings/DownloadClient/BlackholeView.js similarity index 100% rename from UI/Settings/DownloadClient/BlackholeView.js rename to src/UI/Settings/DownloadClient/BlackholeView.js diff --git a/UI/Settings/DownloadClient/BlackholeViewTemplate.html b/src/UI/Settings/DownloadClient/BlackholeViewTemplate.html similarity index 100% rename from UI/Settings/DownloadClient/BlackholeViewTemplate.html rename to src/UI/Settings/DownloadClient/BlackholeViewTemplate.html diff --git a/UI/Settings/DownloadClient/Layout.js b/src/UI/Settings/DownloadClient/Layout.js similarity index 100% rename from UI/Settings/DownloadClient/Layout.js rename to src/UI/Settings/DownloadClient/Layout.js diff --git a/UI/Settings/DownloadClient/LayoutTemplate.html b/src/UI/Settings/DownloadClient/LayoutTemplate.html similarity index 100% rename from UI/Settings/DownloadClient/LayoutTemplate.html rename to src/UI/Settings/DownloadClient/LayoutTemplate.html diff --git a/UI/Settings/DownloadClient/NzbgetView.js b/src/UI/Settings/DownloadClient/NzbgetView.js similarity index 100% rename from UI/Settings/DownloadClient/NzbgetView.js rename to src/UI/Settings/DownloadClient/NzbgetView.js diff --git a/UI/Settings/DownloadClient/NzbgetViewTemplate.html b/src/UI/Settings/DownloadClient/NzbgetViewTemplate.html similarity index 100% rename from UI/Settings/DownloadClient/NzbgetViewTemplate.html rename to src/UI/Settings/DownloadClient/NzbgetViewTemplate.html diff --git a/UI/Settings/DownloadClient/PneumaticView.js b/src/UI/Settings/DownloadClient/PneumaticView.js similarity index 100% rename from UI/Settings/DownloadClient/PneumaticView.js rename to src/UI/Settings/DownloadClient/PneumaticView.js diff --git a/UI/Settings/DownloadClient/PneumaticViewTemplate.html b/src/UI/Settings/DownloadClient/PneumaticViewTemplate.html similarity index 100% rename from UI/Settings/DownloadClient/PneumaticViewTemplate.html rename to src/UI/Settings/DownloadClient/PneumaticViewTemplate.html diff --git a/UI/Settings/DownloadClient/SabView.js b/src/UI/Settings/DownloadClient/SabView.js similarity index 100% rename from UI/Settings/DownloadClient/SabView.js rename to src/UI/Settings/DownloadClient/SabView.js diff --git a/UI/Settings/DownloadClient/SabViewTemplate.html b/src/UI/Settings/DownloadClient/SabViewTemplate.html similarity index 100% rename from UI/Settings/DownloadClient/SabViewTemplate.html rename to src/UI/Settings/DownloadClient/SabViewTemplate.html diff --git a/UI/Settings/General/GeneralSettingsModel.js b/src/UI/Settings/General/GeneralSettingsModel.js similarity index 100% rename from UI/Settings/General/GeneralSettingsModel.js rename to src/UI/Settings/General/GeneralSettingsModel.js diff --git a/UI/Settings/General/GeneralTemplate.html b/src/UI/Settings/General/GeneralTemplate.html similarity index 100% rename from UI/Settings/General/GeneralTemplate.html rename to src/UI/Settings/General/GeneralTemplate.html diff --git a/UI/Settings/General/GeneralView.js b/src/UI/Settings/General/GeneralView.js similarity index 100% rename from UI/Settings/General/GeneralView.js rename to src/UI/Settings/General/GeneralView.js diff --git a/UI/Settings/Indexers/Collection.js b/src/UI/Settings/Indexers/Collection.js similarity index 100% rename from UI/Settings/Indexers/Collection.js rename to src/UI/Settings/Indexers/Collection.js diff --git a/UI/Settings/Indexers/CollectionTemplate.html b/src/UI/Settings/Indexers/CollectionTemplate.html similarity index 100% rename from UI/Settings/Indexers/CollectionTemplate.html rename to src/UI/Settings/Indexers/CollectionTemplate.html diff --git a/UI/Settings/Indexers/CollectionView.js b/src/UI/Settings/Indexers/CollectionView.js similarity index 100% rename from UI/Settings/Indexers/CollectionView.js rename to src/UI/Settings/Indexers/CollectionView.js diff --git a/UI/Settings/Indexers/DeleteTemplate.html b/src/UI/Settings/Indexers/DeleteTemplate.html similarity index 100% rename from UI/Settings/Indexers/DeleteTemplate.html rename to src/UI/Settings/Indexers/DeleteTemplate.html diff --git a/UI/Settings/Indexers/DeleteView.js b/src/UI/Settings/Indexers/DeleteView.js similarity index 100% rename from UI/Settings/Indexers/DeleteView.js rename to src/UI/Settings/Indexers/DeleteView.js diff --git a/UI/Settings/Indexers/EditTemplate.html b/src/UI/Settings/Indexers/EditTemplate.html similarity index 100% rename from UI/Settings/Indexers/EditTemplate.html rename to src/UI/Settings/Indexers/EditTemplate.html diff --git a/UI/Settings/Indexers/EditView.js b/src/UI/Settings/Indexers/EditView.js similarity index 100% rename from UI/Settings/Indexers/EditView.js rename to src/UI/Settings/Indexers/EditView.js diff --git a/UI/Settings/Indexers/IndexerLayout.js b/src/UI/Settings/Indexers/IndexerLayout.js similarity index 100% rename from UI/Settings/Indexers/IndexerLayout.js rename to src/UI/Settings/Indexers/IndexerLayout.js diff --git a/UI/Settings/Indexers/IndexerLayoutTemplate.html b/src/UI/Settings/Indexers/IndexerLayoutTemplate.html similarity index 100% rename from UI/Settings/Indexers/IndexerLayoutTemplate.html rename to src/UI/Settings/Indexers/IndexerLayoutTemplate.html diff --git a/UI/Settings/Indexers/ItemTemplate.html b/src/UI/Settings/Indexers/ItemTemplate.html similarity index 100% rename from UI/Settings/Indexers/ItemTemplate.html rename to src/UI/Settings/Indexers/ItemTemplate.html diff --git a/UI/Settings/Indexers/ItemView.js b/src/UI/Settings/Indexers/ItemView.js similarity index 100% rename from UI/Settings/Indexers/ItemView.js rename to src/UI/Settings/Indexers/ItemView.js diff --git a/UI/Settings/Indexers/Model.js b/src/UI/Settings/Indexers/Model.js similarity index 100% rename from UI/Settings/Indexers/Model.js rename to src/UI/Settings/Indexers/Model.js diff --git a/UI/Settings/Indexers/Options/IndexerOptionsView.js b/src/UI/Settings/Indexers/Options/IndexerOptionsView.js similarity index 100% rename from UI/Settings/Indexers/Options/IndexerOptionsView.js rename to src/UI/Settings/Indexers/Options/IndexerOptionsView.js diff --git a/UI/Settings/Indexers/Options/IndexerOptionsViewTemplate.html b/src/UI/Settings/Indexers/Options/IndexerOptionsViewTemplate.html similarity index 100% rename from UI/Settings/Indexers/Options/IndexerOptionsViewTemplate.html rename to src/UI/Settings/Indexers/Options/IndexerOptionsViewTemplate.html diff --git a/UI/Settings/Indexers/indexers.less b/src/UI/Settings/Indexers/indexers.less similarity index 100% rename from UI/Settings/Indexers/indexers.less rename to src/UI/Settings/Indexers/indexers.less diff --git a/UI/Settings/MediaManagement/FileManagement/FileManagementView.js b/src/UI/Settings/MediaManagement/FileManagement/FileManagementView.js similarity index 100% rename from UI/Settings/MediaManagement/FileManagement/FileManagementView.js rename to src/UI/Settings/MediaManagement/FileManagement/FileManagementView.js diff --git a/UI/Settings/MediaManagement/FileManagement/FileManagementViewTemplate.html b/src/UI/Settings/MediaManagement/FileManagement/FileManagementViewTemplate.html similarity index 100% rename from UI/Settings/MediaManagement/FileManagement/FileManagementViewTemplate.html rename to src/UI/Settings/MediaManagement/FileManagement/FileManagementViewTemplate.html diff --git a/UI/Settings/MediaManagement/MediaManagementLayout.js b/src/UI/Settings/MediaManagement/MediaManagementLayout.js similarity index 100% rename from UI/Settings/MediaManagement/MediaManagementLayout.js rename to src/UI/Settings/MediaManagement/MediaManagementLayout.js diff --git a/UI/Settings/MediaManagement/MediaManagementLayoutTemplate.html b/src/UI/Settings/MediaManagement/MediaManagementLayoutTemplate.html similarity index 100% rename from UI/Settings/MediaManagement/MediaManagementLayoutTemplate.html rename to src/UI/Settings/MediaManagement/MediaManagementLayoutTemplate.html diff --git a/UI/Settings/MediaManagement/Naming/Model.js b/src/UI/Settings/MediaManagement/Naming/Model.js similarity index 100% rename from UI/Settings/MediaManagement/Naming/Model.js rename to src/UI/Settings/MediaManagement/Naming/Model.js diff --git a/UI/Settings/MediaManagement/Naming/View.js b/src/UI/Settings/MediaManagement/Naming/View.js similarity index 100% rename from UI/Settings/MediaManagement/Naming/View.js rename to src/UI/Settings/MediaManagement/Naming/View.js diff --git a/UI/Settings/MediaManagement/Naming/ViewTemplate.html b/src/UI/Settings/MediaManagement/Naming/ViewTemplate.html similarity index 100% rename from UI/Settings/MediaManagement/Naming/ViewTemplate.html rename to src/UI/Settings/MediaManagement/Naming/ViewTemplate.html diff --git a/UI/Settings/MediaManagement/Sorting/View.js b/src/UI/Settings/MediaManagement/Sorting/View.js similarity index 100% rename from UI/Settings/MediaManagement/Sorting/View.js rename to src/UI/Settings/MediaManagement/Sorting/View.js diff --git a/UI/Settings/MediaManagement/Sorting/ViewTemplate.html b/src/UI/Settings/MediaManagement/Sorting/ViewTemplate.html similarity index 100% rename from UI/Settings/MediaManagement/Sorting/ViewTemplate.html rename to src/UI/Settings/MediaManagement/Sorting/ViewTemplate.html diff --git a/UI/Settings/Notifications/AddItemTemplate.html b/src/UI/Settings/Notifications/AddItemTemplate.html similarity index 100% rename from UI/Settings/Notifications/AddItemTemplate.html rename to src/UI/Settings/Notifications/AddItemTemplate.html diff --git a/UI/Settings/Notifications/AddItemView.js b/src/UI/Settings/Notifications/AddItemView.js similarity index 100% rename from UI/Settings/Notifications/AddItemView.js rename to src/UI/Settings/Notifications/AddItemView.js diff --git a/UI/Settings/Notifications/AddTemplate.html b/src/UI/Settings/Notifications/AddTemplate.html similarity index 100% rename from UI/Settings/Notifications/AddTemplate.html rename to src/UI/Settings/Notifications/AddTemplate.html diff --git a/UI/Settings/Notifications/AddView.js b/src/UI/Settings/Notifications/AddView.js similarity index 100% rename from UI/Settings/Notifications/AddView.js rename to src/UI/Settings/Notifications/AddView.js diff --git a/UI/Settings/Notifications/Collection.js b/src/UI/Settings/Notifications/Collection.js similarity index 100% rename from UI/Settings/Notifications/Collection.js rename to src/UI/Settings/Notifications/Collection.js diff --git a/UI/Settings/Notifications/CollectionTemplate.html b/src/UI/Settings/Notifications/CollectionTemplate.html similarity index 100% rename from UI/Settings/Notifications/CollectionTemplate.html rename to src/UI/Settings/Notifications/CollectionTemplate.html diff --git a/UI/Settings/Notifications/CollectionView.js b/src/UI/Settings/Notifications/CollectionView.js similarity index 100% rename from UI/Settings/Notifications/CollectionView.js rename to src/UI/Settings/Notifications/CollectionView.js diff --git a/UI/Settings/Notifications/DeleteTemplate.html b/src/UI/Settings/Notifications/DeleteTemplate.html similarity index 100% rename from UI/Settings/Notifications/DeleteTemplate.html rename to src/UI/Settings/Notifications/DeleteTemplate.html diff --git a/UI/Settings/Notifications/DeleteView.js b/src/UI/Settings/Notifications/DeleteView.js similarity index 100% rename from UI/Settings/Notifications/DeleteView.js rename to src/UI/Settings/Notifications/DeleteView.js diff --git a/UI/Settings/Notifications/EditTemplate.html b/src/UI/Settings/Notifications/EditTemplate.html similarity index 100% rename from UI/Settings/Notifications/EditTemplate.html rename to src/UI/Settings/Notifications/EditTemplate.html diff --git a/UI/Settings/Notifications/EditView.js b/src/UI/Settings/Notifications/EditView.js similarity index 100% rename from UI/Settings/Notifications/EditView.js rename to src/UI/Settings/Notifications/EditView.js diff --git a/UI/Settings/Notifications/ItemTemplate.html b/src/UI/Settings/Notifications/ItemTemplate.html similarity index 100% rename from UI/Settings/Notifications/ItemTemplate.html rename to src/UI/Settings/Notifications/ItemTemplate.html diff --git a/UI/Settings/Notifications/ItemView.js b/src/UI/Settings/Notifications/ItemView.js similarity index 100% rename from UI/Settings/Notifications/ItemView.js rename to src/UI/Settings/Notifications/ItemView.js diff --git a/UI/Settings/Notifications/Model.js b/src/UI/Settings/Notifications/Model.js similarity index 100% rename from UI/Settings/Notifications/Model.js rename to src/UI/Settings/Notifications/Model.js diff --git a/UI/Settings/Notifications/SchemaModal.js b/src/UI/Settings/Notifications/SchemaModal.js similarity index 100% rename from UI/Settings/Notifications/SchemaModal.js rename to src/UI/Settings/Notifications/SchemaModal.js diff --git a/UI/Settings/Notifications/notifications.less b/src/UI/Settings/Notifications/notifications.less similarity index 100% rename from UI/Settings/Notifications/notifications.less rename to src/UI/Settings/Notifications/notifications.less diff --git a/UI/Settings/Quality/Profile/AllowedLabeler.js b/src/UI/Settings/Quality/Profile/AllowedLabeler.js similarity index 100% rename from UI/Settings/Quality/Profile/AllowedLabeler.js rename to src/UI/Settings/Quality/Profile/AllowedLabeler.js diff --git a/UI/Settings/Quality/Profile/DeleteTemplate.html b/src/UI/Settings/Quality/Profile/DeleteTemplate.html similarity index 100% rename from UI/Settings/Quality/Profile/DeleteTemplate.html rename to src/UI/Settings/Quality/Profile/DeleteTemplate.html diff --git a/UI/Settings/Quality/Profile/DeleteView.js b/src/UI/Settings/Quality/Profile/DeleteView.js similarity index 100% rename from UI/Settings/Quality/Profile/DeleteView.js rename to src/UI/Settings/Quality/Profile/DeleteView.js diff --git a/UI/Settings/Quality/Profile/EditQualityProfileTemplate.html b/src/UI/Settings/Quality/Profile/EditQualityProfileTemplate.html similarity index 100% rename from UI/Settings/Quality/Profile/EditQualityProfileTemplate.html rename to src/UI/Settings/Quality/Profile/EditQualityProfileTemplate.html diff --git a/UI/Settings/Quality/Profile/EditQualityProfileView.js b/src/UI/Settings/Quality/Profile/EditQualityProfileView.js similarity index 100% rename from UI/Settings/Quality/Profile/EditQualityProfileView.js rename to src/UI/Settings/Quality/Profile/EditQualityProfileView.js diff --git a/UI/Settings/Quality/Profile/QualityProfileCollectionTemplate.html b/src/UI/Settings/Quality/Profile/QualityProfileCollectionTemplate.html similarity index 100% rename from UI/Settings/Quality/Profile/QualityProfileCollectionTemplate.html rename to src/UI/Settings/Quality/Profile/QualityProfileCollectionTemplate.html diff --git a/UI/Settings/Quality/Profile/QualityProfileCollectionView.js b/src/UI/Settings/Quality/Profile/QualityProfileCollectionView.js similarity index 100% rename from UI/Settings/Quality/Profile/QualityProfileCollectionView.js rename to src/UI/Settings/Quality/Profile/QualityProfileCollectionView.js diff --git a/UI/Settings/Quality/Profile/QualityProfileSchemaCollection.js b/src/UI/Settings/Quality/Profile/QualityProfileSchemaCollection.js similarity index 100% rename from UI/Settings/Quality/Profile/QualityProfileSchemaCollection.js rename to src/UI/Settings/Quality/Profile/QualityProfileSchemaCollection.js diff --git a/UI/Settings/Quality/Profile/QualityProfileTemplate.html b/src/UI/Settings/Quality/Profile/QualityProfileTemplate.html similarity index 100% rename from UI/Settings/Quality/Profile/QualityProfileTemplate.html rename to src/UI/Settings/Quality/Profile/QualityProfileTemplate.html diff --git a/UI/Settings/Quality/Profile/QualityProfileView.js b/src/UI/Settings/Quality/Profile/QualityProfileView.js similarity index 100% rename from UI/Settings/Quality/Profile/QualityProfileView.js rename to src/UI/Settings/Quality/Profile/QualityProfileView.js diff --git a/UI/Settings/Quality/QualityLayout.js b/src/UI/Settings/Quality/QualityLayout.js similarity index 100% rename from UI/Settings/Quality/QualityLayout.js rename to src/UI/Settings/Quality/QualityLayout.js diff --git a/UI/Settings/Quality/QualityLayoutTemplate.html b/src/UI/Settings/Quality/QualityLayoutTemplate.html similarity index 100% rename from UI/Settings/Quality/QualityLayoutTemplate.html rename to src/UI/Settings/Quality/QualityLayoutTemplate.html diff --git a/UI/Settings/Quality/Size/QualitySizeCollectionTemplate.html b/src/UI/Settings/Quality/Size/QualitySizeCollectionTemplate.html similarity index 100% rename from UI/Settings/Quality/Size/QualitySizeCollectionTemplate.html rename to src/UI/Settings/Quality/Size/QualitySizeCollectionTemplate.html diff --git a/UI/Settings/Quality/Size/QualitySizeCollectionView.js b/src/UI/Settings/Quality/Size/QualitySizeCollectionView.js similarity index 100% rename from UI/Settings/Quality/Size/QualitySizeCollectionView.js rename to src/UI/Settings/Quality/Size/QualitySizeCollectionView.js diff --git a/UI/Settings/Quality/Size/QualitySizeTemplate.html b/src/UI/Settings/Quality/Size/QualitySizeTemplate.html similarity index 100% rename from UI/Settings/Quality/Size/QualitySizeTemplate.html rename to src/UI/Settings/Quality/Size/QualitySizeTemplate.html diff --git a/UI/Settings/Quality/Size/QualitySizeView.js b/src/UI/Settings/Quality/Size/QualitySizeView.js similarity index 100% rename from UI/Settings/Quality/Size/QualitySizeView.js rename to src/UI/Settings/Quality/Size/QualitySizeView.js diff --git a/UI/Settings/Quality/quality.less b/src/UI/Settings/Quality/quality.less similarity index 100% rename from UI/Settings/Quality/quality.less rename to src/UI/Settings/Quality/quality.less diff --git a/UI/Settings/SettingsLayout.js b/src/UI/Settings/SettingsLayout.js similarity index 100% rename from UI/Settings/SettingsLayout.js rename to src/UI/Settings/SettingsLayout.js diff --git a/UI/Settings/SettingsLayoutTemplate.html b/src/UI/Settings/SettingsLayoutTemplate.html similarity index 100% rename from UI/Settings/SettingsLayoutTemplate.html rename to src/UI/Settings/SettingsLayoutTemplate.html diff --git a/UI/Settings/SettingsModel.js b/src/UI/Settings/SettingsModel.js similarity index 100% rename from UI/Settings/SettingsModel.js rename to src/UI/Settings/SettingsModel.js diff --git a/UI/Settings/SettingsModelBase.js b/src/UI/Settings/SettingsModelBase.js similarity index 100% rename from UI/Settings/SettingsModelBase.js rename to src/UI/Settings/SettingsModelBase.js diff --git a/UI/Settings/settings.less b/src/UI/Settings/settings.less similarity index 100% rename from UI/Settings/settings.less rename to src/UI/Settings/settings.less diff --git a/UI/Shared/Footer/Template.html b/src/UI/Shared/Footer/Template.html similarity index 100% rename from UI/Shared/Footer/Template.html rename to src/UI/Shared/Footer/Template.html diff --git a/UI/Shared/Footer/View.js b/src/UI/Shared/Footer/View.js similarity index 100% rename from UI/Shared/Footer/View.js rename to src/UI/Shared/Footer/View.js diff --git a/UI/Shared/FormatHelpers.js b/src/UI/Shared/FormatHelpers.js similarity index 100% rename from UI/Shared/FormatHelpers.js rename to src/UI/Shared/FormatHelpers.js diff --git a/UI/Shared/Grid/DateHeaderCell.js b/src/UI/Shared/Grid/DateHeaderCell.js similarity index 100% rename from UI/Shared/Grid/DateHeaderCell.js rename to src/UI/Shared/Grid/DateHeaderCell.js diff --git a/UI/Shared/Grid/HeaderCell.js b/src/UI/Shared/Grid/HeaderCell.js similarity index 100% rename from UI/Shared/Grid/HeaderCell.js rename to src/UI/Shared/Grid/HeaderCell.js diff --git a/UI/Shared/Grid/Pager.js b/src/UI/Shared/Grid/Pager.js similarity index 100% rename from UI/Shared/Grid/Pager.js rename to src/UI/Shared/Grid/Pager.js diff --git a/UI/Shared/Grid/PagerTemplate.html b/src/UI/Shared/Grid/PagerTemplate.html similarity index 100% rename from UI/Shared/Grid/PagerTemplate.html rename to src/UI/Shared/Grid/PagerTemplate.html diff --git a/UI/Shared/LoadingTemplate.html b/src/UI/Shared/LoadingTemplate.html similarity index 100% rename from UI/Shared/LoadingTemplate.html rename to src/UI/Shared/LoadingTemplate.html diff --git a/UI/Shared/LoadingView.js b/src/UI/Shared/LoadingView.js similarity index 100% rename from UI/Shared/LoadingView.js rename to src/UI/Shared/LoadingView.js diff --git a/UI/Shared/Messenger.js b/src/UI/Shared/Messenger.js similarity index 100% rename from UI/Shared/Messenger.js rename to src/UI/Shared/Messenger.js diff --git a/UI/Shared/Modal/Controller.js b/src/UI/Shared/Modal/Controller.js similarity index 100% rename from UI/Shared/Modal/Controller.js rename to src/UI/Shared/Modal/Controller.js diff --git a/UI/Shared/Modal/Region.js b/src/UI/Shared/Modal/Region.js similarity index 100% rename from UI/Shared/Modal/Region.js rename to src/UI/Shared/Modal/Region.js diff --git a/UI/Shared/NotFoundTemplate.html b/src/UI/Shared/NotFoundTemplate.html similarity index 100% rename from UI/Shared/NotFoundTemplate.html rename to src/UI/Shared/NotFoundTemplate.html diff --git a/UI/Shared/NotFoundView.js b/src/UI/Shared/NotFoundView.js similarity index 100% rename from UI/Shared/NotFoundView.js rename to src/UI/Shared/NotFoundView.js diff --git a/UI/Shared/SignalRBroadcaster.js b/src/UI/Shared/SignalRBroadcaster.js similarity index 100% rename from UI/Shared/SignalRBroadcaster.js rename to src/UI/Shared/SignalRBroadcaster.js diff --git a/UI/Shared/Styles/card.less b/src/UI/Shared/Styles/card.less similarity index 100% rename from UI/Shared/Styles/card.less rename to src/UI/Shared/Styles/card.less diff --git a/UI/Shared/Styles/clickable.less b/src/UI/Shared/Styles/clickable.less similarity index 100% rename from UI/Shared/Styles/clickable.less rename to src/UI/Shared/Styles/clickable.less diff --git a/UI/Shared/Toolbar/Button/ButtonCollectionView.js b/src/UI/Shared/Toolbar/Button/ButtonCollectionView.js similarity index 100% rename from UI/Shared/Toolbar/Button/ButtonCollectionView.js rename to src/UI/Shared/Toolbar/Button/ButtonCollectionView.js diff --git a/UI/Shared/Toolbar/Button/ButtonView.js b/src/UI/Shared/Toolbar/Button/ButtonView.js similarity index 100% rename from UI/Shared/Toolbar/Button/ButtonView.js rename to src/UI/Shared/Toolbar/Button/ButtonView.js diff --git a/UI/Shared/Toolbar/ButtonCollection.js b/src/UI/Shared/Toolbar/ButtonCollection.js similarity index 100% rename from UI/Shared/Toolbar/ButtonCollection.js rename to src/UI/Shared/Toolbar/ButtonCollection.js diff --git a/UI/Shared/Toolbar/ButtonModel.js b/src/UI/Shared/Toolbar/ButtonModel.js similarity index 100% rename from UI/Shared/Toolbar/ButtonModel.js rename to src/UI/Shared/Toolbar/ButtonModel.js diff --git a/UI/Shared/Toolbar/ButtonTemplate.html b/src/UI/Shared/Toolbar/ButtonTemplate.html similarity index 100% rename from UI/Shared/Toolbar/ButtonTemplate.html rename to src/UI/Shared/Toolbar/ButtonTemplate.html diff --git a/UI/Shared/Toolbar/Radio/RadioButtonCollectionView.js b/src/UI/Shared/Toolbar/Radio/RadioButtonCollectionView.js similarity index 100% rename from UI/Shared/Toolbar/Radio/RadioButtonCollectionView.js rename to src/UI/Shared/Toolbar/Radio/RadioButtonCollectionView.js diff --git a/UI/Shared/Toolbar/Radio/RadioButtonView.js b/src/UI/Shared/Toolbar/Radio/RadioButtonView.js similarity index 100% rename from UI/Shared/Toolbar/Radio/RadioButtonView.js rename to src/UI/Shared/Toolbar/Radio/RadioButtonView.js diff --git a/UI/Shared/Toolbar/ToolbarLayout.js b/src/UI/Shared/Toolbar/ToolbarLayout.js similarity index 100% rename from UI/Shared/Toolbar/ToolbarLayout.js rename to src/UI/Shared/Toolbar/ToolbarLayout.js diff --git a/UI/Shared/Toolbar/ToolbarLayoutTemplate.html b/src/UI/Shared/Toolbar/ToolbarLayoutTemplate.html similarity index 100% rename from UI/Shared/Toolbar/ToolbarLayoutTemplate.html rename to src/UI/Shared/Toolbar/ToolbarLayoutTemplate.html diff --git a/UI/System/About/AboutView.js b/src/UI/System/About/AboutView.js similarity index 100% rename from UI/System/About/AboutView.js rename to src/UI/System/About/AboutView.js diff --git a/UI/System/About/AboutViewTemplate.html b/src/UI/System/About/AboutViewTemplate.html similarity index 100% rename from UI/System/About/AboutViewTemplate.html rename to src/UI/System/About/AboutViewTemplate.html diff --git a/UI/System/Logs/Files/ContentsModel.js b/src/UI/System/Logs/Files/ContentsModel.js similarity index 100% rename from UI/System/Logs/Files/ContentsModel.js rename to src/UI/System/Logs/Files/ContentsModel.js diff --git a/UI/System/Logs/Files/ContentsView.js b/src/UI/System/Logs/Files/ContentsView.js similarity index 100% rename from UI/System/Logs/Files/ContentsView.js rename to src/UI/System/Logs/Files/ContentsView.js diff --git a/UI/System/Logs/Files/ContentsViewTemplate.html b/src/UI/System/Logs/Files/ContentsViewTemplate.html similarity index 100% rename from UI/System/Logs/Files/ContentsViewTemplate.html rename to src/UI/System/Logs/Files/ContentsViewTemplate.html diff --git a/UI/System/Logs/Files/FilenameCell.js b/src/UI/System/Logs/Files/FilenameCell.js similarity index 100% rename from UI/System/Logs/Files/FilenameCell.js rename to src/UI/System/Logs/Files/FilenameCell.js diff --git a/UI/System/Logs/Files/LogFileCollection.js b/src/UI/System/Logs/Files/LogFileCollection.js similarity index 100% rename from UI/System/Logs/Files/LogFileCollection.js rename to src/UI/System/Logs/Files/LogFileCollection.js diff --git a/UI/System/Logs/Files/LogFileLayout.js b/src/UI/System/Logs/Files/LogFileLayout.js similarity index 100% rename from UI/System/Logs/Files/LogFileLayout.js rename to src/UI/System/Logs/Files/LogFileLayout.js diff --git a/UI/System/Logs/Files/LogFileLayoutTemplate.html b/src/UI/System/Logs/Files/LogFileLayoutTemplate.html similarity index 100% rename from UI/System/Logs/Files/LogFileLayoutTemplate.html rename to src/UI/System/Logs/Files/LogFileLayoutTemplate.html diff --git a/UI/System/Logs/Files/LogFileModel.js b/src/UI/System/Logs/Files/LogFileModel.js similarity index 100% rename from UI/System/Logs/Files/LogFileModel.js rename to src/UI/System/Logs/Files/LogFileModel.js diff --git a/UI/System/Logs/Files/Row.js b/src/UI/System/Logs/Files/Row.js similarity index 100% rename from UI/System/Logs/Files/Row.js rename to src/UI/System/Logs/Files/Row.js diff --git a/UI/System/Logs/Logs.less b/src/UI/System/Logs/Logs.less similarity index 100% rename from UI/System/Logs/Logs.less rename to src/UI/System/Logs/Logs.less diff --git a/UI/System/Logs/LogsCollection.js b/src/UI/System/Logs/LogsCollection.js similarity index 100% rename from UI/System/Logs/LogsCollection.js rename to src/UI/System/Logs/LogsCollection.js diff --git a/UI/System/Logs/LogsLayout.js b/src/UI/System/Logs/LogsLayout.js similarity index 100% rename from UI/System/Logs/LogsLayout.js rename to src/UI/System/Logs/LogsLayout.js diff --git a/UI/System/Logs/LogsLayoutTemplate.html b/src/UI/System/Logs/LogsLayoutTemplate.html similarity index 100% rename from UI/System/Logs/LogsLayoutTemplate.html rename to src/UI/System/Logs/LogsLayoutTemplate.html diff --git a/UI/System/Logs/LogsModel.js b/src/UI/System/Logs/LogsModel.js similarity index 100% rename from UI/System/Logs/LogsModel.js rename to src/UI/System/Logs/LogsModel.js diff --git a/UI/System/Logs/Table/LogLevelCell.js b/src/UI/System/Logs/Table/LogLevelCell.js similarity index 100% rename from UI/System/Logs/Table/LogLevelCell.js rename to src/UI/System/Logs/Table/LogLevelCell.js diff --git a/UI/System/Logs/Table/LogTimeCell.js b/src/UI/System/Logs/Table/LogTimeCell.js similarity index 100% rename from UI/System/Logs/Table/LogTimeCell.js rename to src/UI/System/Logs/Table/LogTimeCell.js diff --git a/UI/System/Logs/Table/LogsTableLayout.js b/src/UI/System/Logs/Table/LogsTableLayout.js similarity index 100% rename from UI/System/Logs/Table/LogsTableLayout.js rename to src/UI/System/Logs/Table/LogsTableLayout.js diff --git a/UI/System/Logs/Table/LogsTableLayoutTemplate.html b/src/UI/System/Logs/Table/LogsTableLayoutTemplate.html similarity index 100% rename from UI/System/Logs/Table/LogsTableLayoutTemplate.html rename to src/UI/System/Logs/Table/LogsTableLayoutTemplate.html diff --git a/UI/System/StatusModel.js b/src/UI/System/StatusModel.js similarity index 100% rename from UI/System/StatusModel.js rename to src/UI/System/StatusModel.js diff --git a/UI/System/SystemLayout.js b/src/UI/System/SystemLayout.js similarity index 100% rename from UI/System/SystemLayout.js rename to src/UI/System/SystemLayout.js diff --git a/UI/System/SystemLayoutTemplate.html b/src/UI/System/SystemLayoutTemplate.html similarity index 100% rename from UI/System/SystemLayoutTemplate.html rename to src/UI/System/SystemLayoutTemplate.html diff --git a/UI/System/Update/UpdateCollection.js b/src/UI/System/Update/UpdateCollection.js similarity index 100% rename from UI/System/Update/UpdateCollection.js rename to src/UI/System/Update/UpdateCollection.js diff --git a/UI/System/Update/UpdateCollectionView.js b/src/UI/System/Update/UpdateCollectionView.js similarity index 100% rename from UI/System/Update/UpdateCollectionView.js rename to src/UI/System/Update/UpdateCollectionView.js diff --git a/UI/System/Update/UpdateItemView.js b/src/UI/System/Update/UpdateItemView.js similarity index 100% rename from UI/System/Update/UpdateItemView.js rename to src/UI/System/Update/UpdateItemView.js diff --git a/UI/System/Update/UpdateItemViewTemplate.html b/src/UI/System/Update/UpdateItemViewTemplate.html similarity index 100% rename from UI/System/Update/UpdateItemViewTemplate.html rename to src/UI/System/Update/UpdateItemViewTemplate.html diff --git a/UI/System/Update/UpdateLayout.js b/src/UI/System/Update/UpdateLayout.js similarity index 100% rename from UI/System/Update/UpdateLayout.js rename to src/UI/System/Update/UpdateLayout.js diff --git a/UI/System/Update/UpdateLayoutTemplate.html b/src/UI/System/Update/UpdateLayoutTemplate.html similarity index 100% rename from UI/System/Update/UpdateLayoutTemplate.html rename to src/UI/System/Update/UpdateLayoutTemplate.html diff --git a/UI/System/Update/UpdateModel.js b/src/UI/System/Update/UpdateModel.js similarity index 100% rename from UI/System/Update/UpdateModel.js rename to src/UI/System/Update/UpdateModel.js diff --git a/UI/System/Update/update.less b/src/UI/System/Update/update.less similarity index 100% rename from UI/System/Update/update.less rename to src/UI/System/Update/update.less diff --git a/UI/app.js b/src/UI/app.js similarity index 100% rename from UI/app.js rename to src/UI/app.js diff --git a/UI/favicon.ico b/src/UI/favicon.ico similarity index 100% rename from UI/favicon.ico rename to src/UI/favicon.ico diff --git a/UI/index.html b/src/UI/index.html similarity index 100% rename from UI/index.html rename to src/UI/index.html diff --git a/UI/jQuery/RouteBinder.js b/src/UI/jQuery/RouteBinder.js similarity index 100% rename from UI/jQuery/RouteBinder.js rename to src/UI/jQuery/RouteBinder.js diff --git a/UI/jQuery/ToTheTop.js b/src/UI/jQuery/ToTheTop.js similarity index 100% rename from UI/jQuery/ToTheTop.js rename to src/UI/jQuery/ToTheTop.js diff --git a/UI/jQuery/TooltipBinder.js b/src/UI/jQuery/TooltipBinder.js similarity index 100% rename from UI/jQuery/TooltipBinder.js rename to src/UI/jQuery/TooltipBinder.js diff --git a/UI/jQuery/jquery.spin.js b/src/UI/jQuery/jquery.spin.js similarity index 100% rename from UI/jQuery/jquery.spin.js rename to src/UI/jQuery/jquery.spin.js diff --git a/UI/jQuery/jquery.validation.js b/src/UI/jQuery/jquery.validation.js similarity index 100% rename from UI/jQuery/jquery.validation.js rename to src/UI/jQuery/jquery.validation.js diff --git a/UI/polyfills.js b/src/UI/polyfills.js similarity index 100% rename from UI/polyfills.js rename to src/UI/polyfills.js