Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

.NET Core support for Hangfire #604

Merged
merged 65 commits into from
Jul 7, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
c812cbb
Compile Hangfire.Core agains NETStandard 1.3
odinserj Jun 28, 2016
289d7f0
Get rid of "project.json doesn't have a runtimes section" message
odinserj Jun 28, 2016
ade4e37
Don't compile obsolete members under .NET Core
odinserj Jun 29, 2016
be438fd
Add all the required dashboard abstractions
odinserj Jun 29, 2016
587678a
Add MvcCoreSample project based on ASP.NET Core
odinserj Jun 29, 2016
36c2482
Add Hangfire.SqlServer.NetCore project
odinserj Jun 29, 2016
ae09f80
Add dashboard middleware
odinserj Jun 29, 2016
4d67a41
Use portable projects based on .NET Standard target
odinserj Jun 30, 2016
9440086
Merge remote-tracking branch 'refs/remotes/origin/dev' into netcore
odinserj Jun 30, 2016
6791c26
Merge remote-tracking branch 'refs/remotes/origin/dev' into netcore
odinserj Jun 30, 2016
59381d2
Remove some conditional defines to minimize branches
odinserj Jun 30, 2016
a7693a3
Add missing StateContext class link to NetStandard
odinserj Jun 30, 2016
7857965
Add own internal ExcludeFromCodeCoverageAttribute
odinserj Jun 30, 2016
9596ef5
Add the blank line that was removed by an accident
odinserj Jun 30, 2016
94e91d1
Add missing file headers
odinserj Jun 30, 2016
238216a
Temporarily disable compiling recurring jobs
odinserj Jul 1, 2016
d1e40f3
Update nuspec and project.json files
odinserj Jul 1, 2016
da7acee
Allow to build NuGet package for Hangfire.AspNetCore
odinserj Jul 1, 2016
46370a5
Exclude **\obj\* files from symbol packages
odinserj Jul 1, 2016
a0c03a7
Fix ServerHeartbeatFacts
odinserj Jul 1, 2016
b8c40a8
Move netstandard project to the same project folder as net45
odinserj Jul 1, 2016
3562bfe
Remove diffs with `dev` branch that don't make sense
odinserj Jul 1, 2016
696bdc3
Remove other unnecessary differences
odinserj Jul 1, 2016
f1e6ba0
Move obsolete files to the Obsolete folder
odinserj Jul 1, 2016
1988bfa
Fix Hangfire.Core.csproj
odinserj Jul 1, 2016
6831c01
Pass transaction instance to Dapper queries
odinserj Jul 1, 2016
ad18001
Reduce conditional branches in SqlServerStorage
odinserj Jul 1, 2016
deeeaeb
Lower the verbosity of NuGet install command
odinserj Jul 1, 2016
b4dd256
Pass transaction instance to the SqlServerJobQueue.Enqueue method
odinserj Jul 4, 2016
2ae291f
Add Microsoft.NETCore.Portable.Compatibility to the dependency list
odinserj Jul 4, 2016
91cedd5
Add required dependencies to the Hangfire.SqlServer nuspec
odinserj Jul 4, 2016
771e4a6
Move AspNetCore classes to the Dashboard folder
odinserj Jul 4, 2016
fe39dd0
Authorize dashboard requests if no remote ip address found in Core
odinserj Jul 4, 2016
ff35100
Revert authorization filter implementation
odinserj Jul 4, 2016
6d442c8
Add deep integration with ASP.NET Core
odinserj Jul 4, 2016
bfe1983
Add missing System.ComponentModel dependency
odinserj Jul 5, 2016
bab23f4
Revert "Add missing System.ComponentModel dependency"
odinserj Jul 5, 2016
8cc0360
Add missing AspNetCoreJobActivatorScope reference
odinserj Jul 5, 2016
e97dc57
Add missing System.ComponentModel dependency again
odinserj Jul 5, 2016
1211ecf
Remove "imports" directive
odinserj Jul 5, 2016
816d85c
*
odinserj Jul 5, 2016
b374633
Use HOSTNAME environment variable for unix
odinserj Jul 5, 2016
c3b50ac
Export HOSTNAME variable on Travis CI
odinserj Jul 5, 2016
3292f9e
Fix compiler warnings
odinserj Jul 5, 2016
f391d22
Place System.ComponentModel under Microsoft.NETCore.Compatibility
odinserj Jul 5, 2016
931c1d5
Fix Dapper dependency version
odinserj Jul 5, 2016
3d0babc
Add Hangfire.AspNetCore dependency to the Hangfire package
odinserj Jul 5, 2016
b868757
Fix POST method handling in CommandDispatcher
odinserj Jul 5, 2016
2b3b7a3
Remove conditionals for recurring jobs under .NET Core
odinserj Jul 5, 2016
2ca9587
Bring the ServerName option back
odinserj Jul 5, 2016
d7ddfaa
Fix UrlHelper that's working in OWIN environment
odinserj Jul 5, 2016
af97b44
Remove dependency on System.ComponentModel.Primitives in .NET Core
odinserj Jul 5, 2016
6a8aba0
Replace `param` with `paramref` tag to prevent warnings
odinserj Jul 5, 2016
234e808
Simplify the Dapper dependency version value
odinserj Jul 5, 2016
144d35d
Use explicit `targetFramework` sections in nuspec files
odinserj Jul 5, 2016
1090cf4
Place configuration logic to the right place
odinserj Jul 5, 2016
c4990fa
Move Microsoft.NETCore.Portable.Compatibility to the top
odinserj Jul 5, 2016
ea447cf
Migrate to Hangfire.Build 0.2.2
odinserj Jul 7, 2016
5a3c294
Update Hangfire.Build to 0.2.4
odinserj Jul 7, 2016
40ddb00
Update Hangfire.Build to 0.2.5
odinserj Jul 7, 2016
9f14768
Wrap CRON string in a code block on recurring jobs page
odinserj Jul 7, 2016
5e97b9f
Register IGlobalConfiguration instance, remove marker service
odinserj Jul 7, 2016
8e35b1b
Register all the other interfaces and implementations
odinserj Jul 7, 2016
dbca416
Configuration action is now called when JobStorage instance is resolved
odinserj Jul 7, 2016
587801f
Add non-blocking Server.SendStop method, that requests for a shutdown
odinserj Jul 7, 2016
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified .nuget/NuGet.exe
Binary file not shown.
2 changes: 1 addition & 1 deletion .nuget/packages.config
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<packages>
<package id="7-Zip.CommandLine" version="9.20.0" />
<package id="coveralls.io" version="1.3.4" />
<package id="Hangfire.Build" version="0.1.3" />
<package id="Hangfire.Build" version="0.2.5" />
<package id="ilmerge" version="2.14.1208" />
<package id="OpenCover" version="4.5.3723" />
<package id="psake" version="4.4.1" />
Expand Down
1 change: 1 addition & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ sudo: required

# Make sure build dependencies are installed.
install:
- export HOSTNAME=localhost
- travis_retry nuget install .nuget/packages.config -OutputDirectory packages
- travis_retry nuget restore Hangfire.Mono.sln

Expand Down
26 changes: 25 additions & 1 deletion Hangfire.sln
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.24720.0
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleSample", "samples\ConsoleSample\ConsoleSample.csproj", "{C02BB718-2AE4-434C-8668-C894FF663FCE}"
EndProject
Expand All @@ -24,6 +24,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{15E186DF
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "nuspecs", "nuspecs", "{5E687025-A525-4534-8869-CB685C7B11C4}"
ProjectSection(SolutionItems) = preProject
nuspecs\Hangfire.AspNetCore.nuspec = nuspecs\Hangfire.AspNetCore.nuspec
nuspecs\Hangfire.Core.nuspec = nuspecs\Hangfire.Core.nuspec
nuspecs\Hangfire.nuspec = nuspecs\Hangfire.nuspec
nuspecs\Hangfire.SqlServer.MSMQ.nuspec = nuspecs\Hangfire.SqlServer.MSMQ.nuspec
Expand All @@ -48,6 +49,17 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{F710C9
.nuget\packages.config = .nuget\packages.config
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{8667E5ED-006A-4542-B200-9C0C2C48FF13}"
ProjectSection(SolutionItems) = preProject
global.json = global.json
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hangfire.Core.NetStandard", "src\Hangfire.Core\Hangfire.Core.NetStandard.csproj", "{2A528F3A-5120-430A-B881-E265FA09ABB5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hangfire.SqlServer.NetStandard", "src\Hangfire.SqlServer\Hangfire.SqlServer.NetStandard.csproj", "{1513919A-5746-46CE-B8C6-C2FDB3361C2D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hangfire.AspNetCore", "src\Hangfire.AspNetCore\Hangfire.AspNetCore.csproj", "{6DCC60C2-4F6E-4855-82EC-E8E1ABB36700}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -86,6 +98,18 @@ Global
{DBC6BC12-06AD-4597-9E0F-B77BE754FA2C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DBC6BC12-06AD-4597-9E0F-B77BE754FA2C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DBC6BC12-06AD-4597-9E0F-B77BE754FA2C}.Release|Any CPU.Build.0 = Release|Any CPU
{2A528F3A-5120-430A-B881-E265FA09ABB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2A528F3A-5120-430A-B881-E265FA09ABB5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2A528F3A-5120-430A-B881-E265FA09ABB5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2A528F3A-5120-430A-B881-E265FA09ABB5}.Release|Any CPU.Build.0 = Release|Any CPU
{1513919A-5746-46CE-B8C6-C2FDB3361C2D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1513919A-5746-46CE-B8C6-C2FDB3361C2D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1513919A-5746-46CE-B8C6-C2FDB3361C2D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1513919A-5746-46CE-B8C6-C2FDB3361C2D}.Release|Any CPU.Build.0 = Release|Any CPU
{6DCC60C2-4F6E-4855-82EC-E8E1ABB36700}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6DCC60C2-4F6E-4855-82EC-E8E1ABB36700}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6DCC60C2-4F6E-4855-82EC-E8E1ABB36700}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6DCC60C2-4F6E-4855-82EC-E8E1ABB36700}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
2 changes: 1 addition & 1 deletion build.bat
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
@echo off
.nuget\NuGet.exe install .nuget\packages.config -OutputDirectory packages
.nuget\NuGet.exe install .nuget\packages.config -OutputDirectory packages -Verbosity normal
powershell.exe -NoProfile -ExecutionPolicy unrestricted -Command "& {Import-Module '.\packages\psake.*\tools\psake.psm1'; invoke-psake .\psake-project.ps1 %*; if ($LastExitCode -and $LastExitCode -ne 0) {write-host "ERROR CODE: $LastExitCode" -fore RED; exit $lastexitcode} }"
3 changes: 3 additions & 0 deletions global.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"projects": [ "src" ]
}
39 changes: 39 additions & 0 deletions nuspecs/Hangfire.AspNetCore.nuspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<?xml version="1.0"?>
<package >
<metadata>
<id>Hangfire.AspNetCore</id>
<version>0.0.0</version>
<title>Hangfire ASP.NET Core Support</title>
<authors>Sergey Odinokov</authors>
<owners>odinserj</owners>
<projectUrl>http://hangfire.io/</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<licenseUrl>https://raw.github.com/HangfireIO/Hangfire/master/LICENSE.md</licenseUrl>
<description>ASP.NET Core support for Hangfire (background job system for ASP.NET applications).</description>
<copyright>Copyright © 2016 Sergey Odinokov</copyright>
<tags>hangfire aspnetcore</tags>
<releaseNotes>http://hangfire.io/blog/

1.6.0 – Initial Release
</releaseNotes>
<dependencies>
<group targetFramework="netstandard1.3">
<dependency id="Microsoft.NETCore.Portable.Compatibility" version="1.0.1" />
<dependency id="NETStandard.Library" version="1.6.0" />
<dependency id="System.ComponentModel" version="4.0.1" />
<dependency id="Microsoft.AspNetCore.Hosting.Abstractions" version="1.0.0" />
<dependency id="Microsoft.AspNetCore.Http.Abstractions" version="1.0.0" />
<dependency id="Microsoft.Extensions.DependencyInjection.Abstractions" version="1.0.0" />
<dependency id="Microsoft.Extensions.Logging.Abstractions" version="1.0.0" />
<dependency id="Hangfire.Core" version="[0.0.0]" />
</group>
</dependencies>
</metadata>
<files>
<file src="netstandard1.3\Hangfire.AspNetCore.dll" target="lib\netstandard1.3" />
<file src="netstandard1.3\Hangfire.AspNetCore.xml" target="lib\netstandard1.3" />
<file src="netstandard1.3\Hangfire.AspNetCore.pdb" target="lib\netstandard1.3" />

<file src="..\src\Hangfire.AspNetCore\**\*.cs" target="src" exclude="**\obj*\**\*.cs" />
</files>
</package>
25 changes: 19 additions & 6 deletions nuspecs/Hangfire.Core.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,27 @@ Backported from 1.5.5
* Fixed – ToGenericTypeString method now supports nested classes.
</releaseNotes>
<dependencies>
<dependency id="Owin" version="1.0" />
<dependency id="Newtonsoft.Json" version="5.0.0" />
<group targetFramework="net45">
<dependency id="Owin" version="1.0" />
<dependency id="Newtonsoft.Json" version="5.0.0" />
</group>
<group targetFramework="netstandard1.3">
<dependency id="Microsoft.NETCore.Portable.Compatibility" version="1.0.1" />
<dependency id="NETStandard.Library" version="1.6.0" />
<dependency id="System.Threading.Thread" version="4.0.0" />
<dependency id="Newtonsoft.Json" version="9.0.1" />
</group>
</dependencies>
</metadata>
<files>
<file src="Net45\Hangfire.Core.dll" target="lib\net45" />
<file src="Net45\Hangfire.Core.xml" target="lib\net45" />
<file src="Net45\Hangfire.Core.pdb" target="lib\net45" />
<file src="..\src\Hangfire.Core\**\*.cs;..\src\Hangfire.Core\**\*.cshtml" target="src" />
<file src="net45\Hangfire.Core.dll" target="lib\net45" />
<file src="net45\Hangfire.Core.xml" target="lib\net45" />
<file src="net45\Hangfire.Core.pdb" target="lib\net45" />

<file src="netstandard1.3\Hangfire.Core.dll" target="lib\netstandard1.3" />
<file src="netstandard1.3\Hangfire.Core.xml" target="lib\netstandard1.3" />
<file src="netstandard1.3\Hangfire.Core.pdb" target="lib\netstandard1.3" />

<file src="..\src\Hangfire.Core\**\*.cs;..\src\Hangfire.Core\**\*.cshtml" target="src" exclude="**\obj*\**\*.cs" />
</files>
</package>
8 changes: 4 additions & 4 deletions nuspecs/Hangfire.SqlServer.MSMQ.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,9 @@
</dependencies>
</metadata>
<files>
<file src="Net45\Hangfire.SqlServer.Msmq.dll" target="lib\net45" />
<file src="Net45\Hangfire.SqlServer.Msmq.xml" target="lib\net45" />
<file src="Net45\Hangfire.SqlServer.Msmq.pdb" target="lib\net45" />
<file src="..\src\Hangfire.SqlServer.Msmq\**\*.cs" target="src" />
<file src="net45\Hangfire.SqlServer.Msmq.dll" target="lib\net45" />
<file src="net45\Hangfire.SqlServer.Msmq.xml" target="lib\net45" />
<file src="net45\Hangfire.SqlServer.Msmq.pdb" target="lib\net45" />
<file src="..\src\Hangfire.SqlServer.Msmq\**\*.cs" target="src" exclude="**\obj*\**\*.cs" />
</files>
</package>
26 changes: 21 additions & 5 deletions nuspecs/Hangfire.SqlServer.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,30 @@ Backported from 1.5.6
* Changed – `SqlServerStorage` class constructor now takes `DbConnection` instances.
</releaseNotes>
<dependencies>
<dependency id="Hangfire.Core" version="[0.0.0]" />
<group targetFramework="net45">
<dependency id="Hangfire.Core" version="[0.0.0]" />
</group>

<group targetFramework="netstandard1.3">
<dependency id="Microsoft.NETCore.Portable.Compatibility" version="1.0.1" />
<dependency id="NETStandard.Library" version="1.6.0" />
<dependency id="System.Data.Common" version="4.1.0" />
<dependency id="System.Data.SqlClient" version="4.1.0" />
<dependency id="Dapper" version="1.50.0-rc3" />
<dependency id="Hangfire.Core" version="[0.0.0]" />
</group>
</dependencies>
</metadata>
<files>
<file src="Net45\Hangfire.SqlServer.dll" target="lib\net45" />
<file src="Net45\Hangfire.SqlServer.xml" target="lib\net45" />
<file src="Net45\Hangfire.SqlServer.pdb" target="lib\net45" />
<file src="net45\Hangfire.SqlServer.dll" target="lib\net45" />
<file src="net45\Hangfire.SqlServer.xml" target="lib\net45" />
<file src="net45\Hangfire.SqlServer.pdb" target="lib\net45" />

<file src="netstandard1.3\Hangfire.SqlServer.dll" target="lib\netstandard1.3" />
<file src="netstandard1.3\Hangfire.SqlServer.xml" target="lib\netstandard1.3" />
<file src="netstandard1.3\Hangfire.SqlServer.pdb" target="lib\netstandard1.3" />

<file src="Tools\DefaultInstall.sql" target="tools\install.sql" />
<file src="..\src\Hangfire.SqlServer\**\*.cs" target="src" />
<file src="..\src\Hangfire.SqlServer\**\*.cs" target="src" exclude="**\obj*\**\*.cs" />
</files>
</package>
13 changes: 10 additions & 3 deletions nuspecs/Hangfire.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -77,9 +77,16 @@ Hangfire.SqlServer.Msmq
* Fixed – Package now depends on the latest Hangfire.SqlServer instead of version 1.2.2.
</releaseNotes>
<dependencies>
<dependency id="Hangfire.Core" version="[0.0.0]" />
<dependency id="Hangfire.SqlServer" version="[0.0.0]" />
<dependency id="Microsoft.Owin.Host.SystemWeb" version="3.0.0" />
<group targetFramework="net45">
<dependency id="Hangfire.Core" version="[0.0.0]" />
<dependency id="Hangfire.SqlServer" version="[0.0.0]" />
<dependency id="Microsoft.Owin.Host.SystemWeb" version="3.0.0" />
</group>
<group targetFramework="netstandard1.3">
<dependency id="Hangfire.Core" version="[0.0.0]" />
<dependency id="Hangfire.SqlServer" version="[0.0.0]" />
<dependency id="Hangfire.AspNetCore" version="[0.0.0]" />
</group>
</dependencies>
</metadata>
<files>
Expand Down
52 changes: 16 additions & 36 deletions psake-project.ps1
Original file line number Diff line number Diff line change
@@ -1,71 +1,51 @@
Framework 4.5.1
Include "packages\Hangfire.Build.0.2.5\tools\psake-common.ps1"

Properties {
$solution = "Hangfire.sln"
$opencover = "packages\OpenCover.*\opencover.console.exe"
$coverage_file = "coverage.xml"
$coverage_filter = "+[Hangfire.*]* -[*.Tests]* -[*]*.Annotations.* -[*]*.Dashboard.* -[*]*.Logging.* -[*]*.ExpressionUtil.*"
}

Include "packages\Hangfire.Build.0.1.3\tools\psake-common.ps1"

Task Default -Depends Collect

Task Test -Depends Compile -Description "Run unit and integration tests under OpenCover." {
If (Test-Path $coverage_file) {
"Removing '$coverage_file'..."
Remove-Item $coverage_file -Force
}
Remove-File $coverage_file

Run-OpenCover "Hangfire.Core.Tests"
Run-OpenCover "Hangfire.SqlServer.Tests"
Run-OpenCover "Hangfire.SqlServer.Msmq.Tests"
Run-OpenCover "Hangfire.Core.Tests" $coverage_file $coverage_filter
Run-OpenCover "Hangfire.SqlServer.Tests" $coverage_file $coverage_filter
Run-OpenCover "Hangfire.SqlServer.Msmq.Tests" $coverage_file $coverage_filter
}

Task Merge -Depends Test -Description "Run ILMerge /internalize to merge assemblies." {
# Remove `*.pdb` file to be able to prepare NuGet symbol packages.
Remove-Item ((Get-SrcOutputDir "Hangfire.SqlServer") + "\Dapper.pdb")
Remove-File ((Get-SrcOutputDir "Hangfire.SqlServer") + "\Dapper.pdb")

Merge-Assembly "Hangfire.Core" @("NCrontab", "CronExpressionDescriptor", "Microsoft.Owin")
Merge-Assembly "Hangfire.SqlServer" @("Dapper")
}

Task Collect -Depends Merge -Description "Copy all artifacts to the build folder." {
Collect-Assembly "Hangfire.Core" "Net45"
Collect-Assembly "Hangfire.SqlServer" "Net45"
Collect-Assembly "Hangfire.SqlServer.Msmq" "Net45"
Collect-Assembly "Hangfire.Core" "net45"
Collect-Assembly "Hangfire.SqlServer" "net45"
Collect-Assembly "Hangfire.SqlServer.Msmq" "net45"

Collect-Assembly "Hangfire.Core" "netstandard1.3"
Collect-Assembly "Hangfire.SqlServer" "netstandard1.3"
Collect-Assembly "Hangfire.AspNetCore" "netstandard1.3"

Collect-Content "content\readme.txt"
Collect-Tool "src\Hangfire.SqlServer\DefaultInstall.sql"
}

Task Pack -Depends Collect -Description "Create NuGet packages and archive files." {
$version = Get-BuildVersion
$version = Get-PackageVersion

$tag = $env:APPVEYOR_REPO_TAG_NAME
if ($tag -And $tag.StartsWith("v$version-")) {
"Using tag-based version for packages."
$version = $tag.Substring(1)
}

Create-Archive "Hangfire-$version"

Create-Package "Hangfire" $version
Create-Package "Hangfire.Core" $version
Create-Package "Hangfire.SqlServer" $version
Create-Package "Hangfire.SqlServer.Msmq" $version
}

function Run-OpenCover($assembly) {
Exec {
if ($env:APPVEYOR) {
$xunit_path = Get-Command "xunit.console.clr4.exe" | Select-Object -ExpandProperty Definition
$extra = "/appveyor"
}
else {
$xunit_path = Resolve-Path $xunit
}

$opencover_path = Resolve-Path $opencover
.$opencover_path `"-target:$xunit_path`" `"-targetargs:$base_dir\tests\$assembly\bin\$config\$assembly.dll /noshadow $extra`" `"-filter:$coverage_filter`" -mergeoutput `"-output:$coverage_file`" -register:user -returntargetcode
}
Create-Package "Hangfire.AspNetCore" $version
}
38 changes: 38 additions & 0 deletions src/Hangfire.AspNetCore/AspNetCore/AspNetCoreJobActivator.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
// This file is part of Hangfire.
// Copyright © 2016 Sergey Odinokov.
//
// Hangfire is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3
// of the License, or any later version.
//
// Hangfire is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with Hangfire. If not, see <http://www.gnu.org/licenses/>.

using System;
using Hangfire.Annotations;
using Microsoft.Extensions.DependencyInjection;

namespace Hangfire.AspNetCore
{
public class AspNetCoreJobActivator : JobActivator
{
private readonly IServiceScopeFactory _serviceScopeFactory;

public AspNetCoreJobActivator([NotNull] IServiceScopeFactory serviceScopeFactory)
{
if (serviceScopeFactory == null) throw new ArgumentNullException(nameof(serviceScopeFactory));
_serviceScopeFactory = serviceScopeFactory;
}

public override JobActivatorScope BeginScope(JobActivatorContext context)
{
return new AspNetCoreJobActivatorScope(_serviceScopeFactory.CreateScope());
}
}
}
Loading