diff --git a/Parbad.sln b/Parbad.sln
index e4f5c64a..6a0a4470 100644
--- a/Parbad.sln
+++ b/Parbad.sln
@@ -107,6 +107,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Parbad.Gateway.IranKish", "
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Parbad.Gateway.IranKish.Tests", "src\Parbad.Gateway\IranKish\tests\Parbad.Gateway.IranKish.Tests.csproj", "{8A1C135B-12A5-42AB-A2F2-2660146ACB0C}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Parbad.FrameworkCompatibility.Tests", "tests\Parbad.FrameworkCompatibility.Tests\Parbad.FrameworkCompatibility.Tests.csproj", "{60BF4F46-AB43-4164-B55F-229F6FCCE0DC}"
+EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
src\Parbad.Shared\Parbad.Shared.projitems*{2e124fc2-6fa6-45e1-9912-edca1c19cef7}*SharedItemsImports = 13
@@ -210,6 +212,10 @@ Global
{8A1C135B-12A5-42AB-A2F2-2660146ACB0C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8A1C135B-12A5-42AB-A2F2-2660146ACB0C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8A1C135B-12A5-42AB-A2F2-2660146ACB0C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {60BF4F46-AB43-4164-B55F-229F6FCCE0DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {60BF4F46-AB43-4164-B55F-229F6FCCE0DC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {60BF4F46-AB43-4164-B55F-229F6FCCE0DC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {60BF4F46-AB43-4164-B55F-229F6FCCE0DC}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -258,6 +264,7 @@ Global
{9D40B01A-7B71-40F8-8AEC-91C63438DFA0} = {B1447D20-66E0-46FB-B0DB-BCBEBA7B337A}
{9252FE79-9908-46C3-AAF2-C5F7426EDF84} = {9D40B01A-7B71-40F8-8AEC-91C63438DFA0}
{8A1C135B-12A5-42AB-A2F2-2660146ACB0C} = {9D40B01A-7B71-40F8-8AEC-91C63438DFA0}
+ {60BF4F46-AB43-4164-B55F-229F6FCCE0DC} = {6BB6AFB4-7951-4435-8C10-95AF86B200F8}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {CBDDB699-C14A-4235-B0AE-32725230B4ED}
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index 3586eeea..26042ecd 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -11,53 +11,112 @@ pool:
variables:
buildConfiguration: 'release'
projects: 'src/**/*.csproj'
+ dotnetRoot: '$(Agent.ToolsDirectory)/dotnet'
steps:
-- task: NuGetToolInstaller@1
- displayName: 'Use Nuget'
+- task: UseDotNet@2
+ displayName: 'Use .NET Core 3.0 SDK'
+ inputs:
+ packageType: 'sdk'
+ version: '3.0.x'
+ installationPath: '$(dotnetRoot)'
+
+- task: UseDotNet@2
+ displayName: 'Use .NET Core 3.1 SDK'
+ inputs:
+ packageType: 'sdk'
+ version: '3.1.x'
+ installationPath: '$(dotnetRoot)'
+
+- task: UseDotNet@2
+ displayName: 'Use .NET 5 SDK'
+ inputs:
+ packageType: 'sdk'
+ version: '5.0.x'
+ installationPath: '$(dotnetRoot)'
+
+- task: UseDotNet@2
+ displayName: 'Use .NET 6 SDK'
+ inputs:
+ packageType: 'sdk'
+ version: '6.0.x'
+ installationPath: '$(dotnetRoot)'
+
+- task: UseDotNet@2
+ displayName: 'Use .NET 7 SDK'
+ inputs:
+ packageType: 'sdk'
+ version: '7.0.x'
+ installationPath: '$(dotnetRoot)'
+
+- task: UseDotNet@2
+ displayName: 'Use .NET 8 SDK'
inputs:
- versionSpec:
- checkLatest: true
+ packageType: 'sdk'
+ version: '8.0.x'
+ installationPath: '$(dotnetRoot)'
+
- task: UseDotNet@2
- displayName: Use Dotnet
+ displayName: 'Use .NET 9 SDK'
inputs:
- packageType: sdk
- version: 9.x
-- task: NuGetCommand@2
+ packageType: 'sdk'
+ version: '9.0.x'
+ installationPath: '$(dotnetRoot)'
+
+- task: UseDotNet@2
+ displayName: 'Use .NET 10 SDK'
+ inputs:
+ packageType: 'sdk'
+ version: '10.0.x'
+ installationPath: '$(dotnetRoot)'
+
+- script: |
+ dotnet --info
+ dotnet --list-sdks
+ dotnet --list-runtimes
+ displayName: 'Show .NET SDKs and runtimes'
+
+- task: DotNetCoreCLI@2
displayName: 'restoring'
inputs:
command: 'restore'
- restoreSolution: '**/*.sln'
+ projects: '**/*.sln'
feedsToUse: 'select'
+
- task: DotNetCoreCLI@2
displayName: 'building'
inputs:
command: 'build'
- projects: $(projects)
- arguments: '-c $(buildConfiguration)'
+ projects: '$(projects)'
+ arguments: '-c $(buildConfiguration) --no-restore'
+
- task: DotNetCoreCLI@2
displayName: 'testing'
inputs:
command: 'test'
projects: '**/*.Tests.csproj'
+ arguments: '-c $(buildConfiguration) --no-restore --verbosity normal'
+
- task: DotNetCoreCLI@2
displayName: 'packing'
condition: eq(variables['build.sourceBranch'], 'refs/heads/dev')
inputs:
command: 'custom'
- projects: $(projects)
+ projects: '$(projects)'
custom: 'pack'
arguments: '-c $(buildConfiguration) --no-build -o $(Build.ArtifactStagingDirectory) --version-suffix dev$(Build.BuildNumber)'
+
- task: DotNetCoreCLI@2
displayName: 'packing'
condition: eq(variables['build.sourceBranch'], 'refs/heads/master')
inputs:
command: 'custom'
- projects: $(projects)
+ projects: '$(projects)'
custom: 'pack'
arguments: '-c $(buildConfiguration) --no-build -o $(Build.ArtifactStagingDirectory)'
+
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'packages'
- publishLocation: 'Container'
+ publishLocation: 'Container'
\ No newline at end of file
diff --git a/src/Parbad.AspNetCore/src/Parbad.AspNetCore.csproj b/src/Parbad.AspNetCore/src/Parbad.AspNetCore.csproj
index 187016de..b36aaee5 100644
--- a/src/Parbad.AspNetCore/src/Parbad.AspNetCore.csproj
+++ b/src/Parbad.AspNetCore/src/Parbad.AspNetCore.csproj
@@ -3,8 +3,8 @@
Parbad.AspNetCore
Parbad.AspNetCore
- 1.5.0
- netstandard2.0;netstandard2.1;netcoreapp3.0;netcoreapp3.1;net5.0;net6.0;net7.0;net8.0;net9.0
+ 1.6.0
+ netstandard2.0;netstandard2.1;netcoreapp3.0;netcoreapp3.1;net5.0;net6.0;net7.0;net8.0;net9.0;net10.0
latest
Sina Soltani
Copyright © Sina Soltani 2016
@@ -20,7 +20,7 @@ For more information see: https://www.nuget.org/packages/Parbad/
parbad aspnetcore Payment Gateway Bank Iran Shetab IranKish Mellat Melli Sadad Parsian Pasargad Saman Asan-Pardakht پرداخت درگاه بانک ایران شتاب ایران-کیش ملت ملی سداد پارسیان پاسارگاد سامان آسان-پرداخت
true
LGPL-3.0-or-later
- https://github.com/Sina-Soltani/Parbad/releases/tag/v3.10.0
+ https://github.com/Sina-Soltani/Parbad/releases/tag/v3.12.0
@@ -36,9 +36,10 @@ For more information see: https://www.nuget.org/packages/Parbad/
+
-
+
diff --git a/src/Parbad.AspNetCore/src/VirtualGateway/ParbadVirtualGatewayMiddlewareExtensions.cs b/src/Parbad.AspNetCore/src/VirtualGateway/ParbadVirtualGatewayMiddlewareExtensions.cs
index 405b83c8..654287e2 100644
--- a/src/Parbad.AspNetCore/src/VirtualGateway/ParbadVirtualGatewayMiddlewareExtensions.cs
+++ b/src/Parbad.AspNetCore/src/VirtualGateway/ParbadVirtualGatewayMiddlewareExtensions.cs
@@ -21,9 +21,9 @@ public static IApplicationBuilder UseParbadVirtualGatewayWhenDeveloping(this IAp
{
if (builder == null) throw new ArgumentNullException(nameof(builder));
-#if NETCOREAPP3_0 || Net_5 || Net_6 || Net_7 || Net_8
- var hostEnvironment = builder.ApplicationServices.GetRequiredService();
- var isDevelopment = Microsoft.Extensions.Hosting.HostEnvironmentEnvExtensions.IsDevelopment(hostEnvironment);
+#if NETCOREAPP3_0 || NETCOREAPP3_1 || NET5_0_OR_GREATER
+ var hostEnvironment = builder.ApplicationServices.GetRequiredService();
+ var isDevelopment = Microsoft.Extensions.Hosting.HostEnvironmentEnvExtensions.IsDevelopment(hostEnvironment);
#else
var hostEnvironment = builder.ApplicationServices.GetRequiredService();
var isDevelopment = Hosting.HostingEnvironmentExtensions.IsDevelopment(hostEnvironment);
@@ -68,4 +68,4 @@ public static IApplicationBuilder UseParbadVirtualGateway(this IApplicationBuild
return builder.Map(options.Value.GatewayPath,
applicationBuilder => applicationBuilder.UseMiddleware());
}
-}
\ No newline at end of file
+}
diff --git a/src/Parbad.Gateway/FanAva/src/Parbad.Gateway.FanAva.csproj b/src/Parbad.Gateway/FanAva/src/Parbad.Gateway.FanAva.csproj
index 2c8c83e5..5af53543 100644
--- a/src/Parbad.Gateway/FanAva/src/Parbad.Gateway.FanAva.csproj
+++ b/src/Parbad.Gateway/FanAva/src/Parbad.Gateway.FanAva.csproj
@@ -2,8 +2,8 @@
Parbad.Gateway.FanAva
- netstandard2.0;netstandard2.1;netcoreapp3.0;net5.0;net6.0;net7.0;net8.0;net9.0
- 1.4.0
+ netstandard2.0;netstandard2.1;netcoreapp3.0;net5.0;net6.0;net7.0;net8.0;net9.0;net10.0
+ 1.5.0
latest
Mohammad Mokhtari
Copyright © Sina Soltani 2016
@@ -15,7 +15,7 @@
true
parbad Payment Gateway FanAva پرداخت درگاه بانک فن آوا
true
- https://github.com/Sina-Soltani/Parbad/releases/tag/v3.11.0
+ https://github.com/Sina-Soltani/Parbad/releases/tag/v3.12.0
FanAva Gateway for Parbad project.
For more information see: https://www.nuget.org/packages/Parbad/
diff --git a/src/Parbad.Gateway/FanAva/tests/Parbad.Gateway.FanAva.Tests.csproj b/src/Parbad.Gateway/FanAva/tests/Parbad.Gateway.FanAva.Tests.csproj
index c78f7f05..9d7af7e3 100644
--- a/src/Parbad.Gateway/FanAva/tests/Parbad.Gateway.FanAva.Tests.csproj
+++ b/src/Parbad.Gateway/FanAva/tests/Parbad.Gateway.FanAva.Tests.csproj
@@ -1,11 +1,21 @@
- net9.0
+ net10.0
latest
false
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
diff --git a/src/Parbad.Gateway/IdPay/src/Parbad.Gateway.IdPay.csproj b/src/Parbad.Gateway/IdPay/src/Parbad.Gateway.IdPay.csproj
index ed4be312..6e46ac07 100644
--- a/src/Parbad.Gateway/IdPay/src/Parbad.Gateway.IdPay.csproj
+++ b/src/Parbad.Gateway/IdPay/src/Parbad.Gateway.IdPay.csproj
@@ -1,8 +1,8 @@
- netstandard2.0;netstandard2.1;netcoreapp3.0;net5.0;net6.0;net7.0;net8.0;net9.0
- 1.6.0
+ netstandard2.0;netstandard2.1;netcoreapp3.0;net5.0;net6.0;net7.0;net8.0;net9.0;net10.0
+ 1.7.0
latest
Sina Soltani
Copyright © Sina Soltani 2016
@@ -14,7 +14,7 @@
true
parbad Payment Gateway Bank Iran Shetab idpay پرداخت درگاه بانک ایران شتاب
true
- https://github.com/Sina-Soltani/Parbad/releases/tag/v3.11.0
+ https://github.com/Sina-Soltani/Parbad/releases/tag/v3.12.0
IDPay.ir Gateway for Parbad project.
For more information see: https://www.nuget.org/packages/Parbad/
diff --git a/src/Parbad.Gateway/IdPay/tests/Parbad.Gateway.IdPay.Tests.csproj b/src/Parbad.Gateway/IdPay/tests/Parbad.Gateway.IdPay.Tests.csproj
index 45d35399..d8572b65 100644
--- a/src/Parbad.Gateway/IdPay/tests/Parbad.Gateway.IdPay.Tests.csproj
+++ b/src/Parbad.Gateway/IdPay/tests/Parbad.Gateway.IdPay.Tests.csproj
@@ -1,11 +1,21 @@
- net9.0
+ net10.0
latest
false
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
diff --git a/src/Parbad.Gateway/IranKish/src/Parbad.Gateway.IranKish.csproj b/src/Parbad.Gateway/IranKish/src/Parbad.Gateway.IranKish.csproj
index a7b15a9c..7812a967 100644
--- a/src/Parbad.Gateway/IranKish/src/Parbad.Gateway.IranKish.csproj
+++ b/src/Parbad.Gateway/IranKish/src/Parbad.Gateway.IranKish.csproj
@@ -3,8 +3,8 @@
Parbad.Gateway.IranKish
Parbad.Gateway.IranKish
- 1.3.0
- netstandard2.0;netstandard2.1;netcoreapp3.0;net5.0;net6.0;net7.0;net8.0;net9.0
+ 1.4.0
+ netstandard2.0;netstandard2.1;netcoreapp3.0;net5.0;net6.0;net7.0;net8.0;net9.0;net10.0
latest
Sina Soltani
Copyright © Sina Soltani 2016
@@ -16,7 +16,7 @@
true
parbad Payment gateway bank Iran shetab irankish پرداخت درگاه بانک ایران کیش
true
- https://github.com/Sina-Soltani/Parbad/releases/tag/v3.11.0
+ https://github.com/Sina-Soltani/Parbad/releases/tag/v3.12.0
IranKish Gateway for Parbad project.
For more information see: https://www.nuget.org/packages/Parbad/
diff --git a/src/Parbad.Gateway/IranKish/tests/Parbad.Gateway.IranKish.Tests.csproj b/src/Parbad.Gateway/IranKish/tests/Parbad.Gateway.IranKish.Tests.csproj
index b8c73ac9..d81ebfb1 100644
--- a/src/Parbad.Gateway/IranKish/tests/Parbad.Gateway.IranKish.Tests.csproj
+++ b/src/Parbad.Gateway/IranKish/tests/Parbad.Gateway.IranKish.Tests.csproj
@@ -1,13 +1,23 @@
- net9.0
+ net10.0
latest
enable
enable
false
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
diff --git a/src/Parbad.Gateway/PayIr/src/Parbad.Gateway.PayIr.csproj b/src/Parbad.Gateway/PayIr/src/Parbad.Gateway.PayIr.csproj
index e7da1289..1f2e75ef 100644
--- a/src/Parbad.Gateway/PayIr/src/Parbad.Gateway.PayIr.csproj
+++ b/src/Parbad.Gateway/PayIr/src/Parbad.Gateway.PayIr.csproj
@@ -3,8 +3,8 @@
Parbad.Gateway.PayIr
Parbad.Gateway.PayIr
- 1.8.0
- netstandard2.0;netstandard2.1;netcoreapp3.0;net5.0;net6.0;net7.0;net8.0;net9.0
+ 1.9.0
+ netstandard2.0;netstandard2.1;netcoreapp3.0;net5.0;net6.0;net7.0;net8.0;net9.0;net10.0
latest
Sina Soltani
Copyright © Sina Soltani 2016
@@ -16,7 +16,7 @@
true
parbad Payment Gateway Bank Iran Shetab pay.ir پرداخت درگاه بانک ایران شتاب پی
true
- https://github.com/Sina-Soltani/Parbad/releases/tag/v3.11.0
+ https://github.com/Sina-Soltani/Parbad/releases/tag/v3.12.0
Pay.ir Gateway for Parbad project.
For more information see: https://www.nuget.org/packages/Parbad/
diff --git a/src/Parbad.Gateway/PayPing/src/Parbad.Gateway.PayPing.csproj b/src/Parbad.Gateway/PayPing/src/Parbad.Gateway.PayPing.csproj
index 1e2da967..f5de6d57 100644
--- a/src/Parbad.Gateway/PayPing/src/Parbad.Gateway.PayPing.csproj
+++ b/src/Parbad.Gateway/PayPing/src/Parbad.Gateway.PayPing.csproj
@@ -2,8 +2,8 @@
Parbad.Gateway.PayPing
Parbad.Gateway.PayPing
- 1.5.0
- netstandard2.0;netstandard2.1;netcoreapp3.0;net5.0;net6.0;net7.0;net8.0;net9.0
+ 1.6.0
+ netstandard2.0;netstandard2.1;netcoreapp3.0;net5.0;net6.0;net7.0;net8.0;net9.0;net10.0
latest
Ali Zaferany
Copyright © Parbad 2016
@@ -16,7 +16,7 @@
LGPL-3.0-or-later
false
true
- https://github.com/Sina-Soltani/Parbad/releases/tag/v3.11.0
+ https://github.com/Sina-Soltani/Parbad/releases/tag/v3.12.0
PayPing Gateway for Parbad project.
For more information see: https://github.com/Sina-Soltani/Parbad
diff --git a/src/Parbad.Gateway/Sepehr/src/Parbad.Gateway.Sepehr.csproj b/src/Parbad.Gateway/Sepehr/src/Parbad.Gateway.Sepehr.csproj
index 41eebfa2..9c935452 100644
--- a/src/Parbad.Gateway/Sepehr/src/Parbad.Gateway.Sepehr.csproj
+++ b/src/Parbad.Gateway/Sepehr/src/Parbad.Gateway.Sepehr.csproj
@@ -3,8 +3,8 @@
Parbad.Gateway.Sepehr
Parbad.Gateway.Sepehr
- 1.7.0
- netstandard2.0;netstandard2.1;netcoreapp3.0;net5.0;net6.0;net7.0;net8.0;net9.0
+ 1.8.0
+ netstandard2.0;netstandard2.1;netcoreapp3.0;net5.0;net6.0;net7.0;net8.0;net9.0;net10.0
latest
Sina Soltani
Copyright © Sina Soltani 2016
@@ -16,7 +16,7 @@
true
parbad Payment gateway bank Iran shetab sepehr mabna پرداخت درگاه بانک ایران شتاب سپهر مبنا کارت
true
- https://github.com/Sina-Soltani/Parbad/releases/tag/v3.11.0
+ https://github.com/Sina-Soltani/Parbad/releases/tag/v3.12.0
Sepehr Gateway for Parbad project.
For more information see: https://www.nuget.org/packages/Parbad/
diff --git a/src/Parbad.Gateway/YekPay/src/Parbad.Gateway.YekPay.csproj b/src/Parbad.Gateway/YekPay/src/Parbad.Gateway.YekPay.csproj
index 2efc9196..1c91cf04 100644
--- a/src/Parbad.Gateway/YekPay/src/Parbad.Gateway.YekPay.csproj
+++ b/src/Parbad.Gateway/YekPay/src/Parbad.Gateway.YekPay.csproj
@@ -3,8 +3,8 @@
Parbad.Gateway.YekPay
Parbad.Gateway.YekPay
- 1.6.0
- netstandard2.0;netstandard2.1;netcoreapp3.0;net5.0;net6.0;net7.0;net8.0;net9.0
+ 1.7.0
+ netstandard2.0;netstandard2.1;netcoreapp3.0;net5.0;net6.0;net7.0;net8.0;net9.0;net10.0
latest
Sina Soltani
Copyright © Sina Soltani 2016
@@ -16,7 +16,7 @@
true
parbad Payment gateway bank Iran shetab yekpay پرداخت درگاه بانک ایران شتاب یک پی
true
- https://github.com/Sina-Soltani/Parbad/releases/tag/v3.11.0
+ https://github.com/Sina-Soltani/Parbad/releases/tag/v3.12.0
YekPay Gateway for Parbad project.
For more information see: https://www.nuget.org/packages/Parbad/
diff --git a/src/Parbad.Gateway/ZarinPal/src/Parbad.Gateway.ZarinPal.csproj b/src/Parbad.Gateway/ZarinPal/src/Parbad.Gateway.ZarinPal.csproj
index dfa74fbc..97737cf5 100644
--- a/src/Parbad.Gateway/ZarinPal/src/Parbad.Gateway.ZarinPal.csproj
+++ b/src/Parbad.Gateway/ZarinPal/src/Parbad.Gateway.ZarinPal.csproj
@@ -3,8 +3,8 @@
Parbad.Gateway.ZarinPal
Parbad.Gateway.ZarinPal
- 1.7.1
- netstandard2.0;netstandard2.1;netcoreapp3.0;net5.0;net6.0;net6.0;net7.0;net8;net9.0
+ 1.8.0
+ netstandard2.0;netstandard2.1;netcoreapp3.0;net5.0;net6.0;net6.0;net7.0;net8;net9.0;net10.0
latest
Sina Soltani
Copyright © Sina Soltani 2016
@@ -19,7 +19,7 @@
ZarinPal Gateway for Parbad project.
For more information see: https://github.com/Sina-Soltani/Parbad
- https://github.com/Sina-Soltani/Parbad/releases/tag/v3.11.0
+ https://github.com/Sina-Soltani/Parbad/releases/tag/v3.12.0
diff --git a/src/Parbad.Gateway/Zibal/src/Parbad.Gateway.Zibal.csproj b/src/Parbad.Gateway/Zibal/src/Parbad.Gateway.Zibal.csproj
index da5c00e3..f26caf7a 100644
--- a/src/Parbad.Gateway/Zibal/src/Parbad.Gateway.Zibal.csproj
+++ b/src/Parbad.Gateway/Zibal/src/Parbad.Gateway.Zibal.csproj
@@ -4,8 +4,8 @@
Parbad.Gateway.Zibal
Parbad.Gateway.Zibal
enable
- 1.4.0
- netstandard2.0;netstandard2.1;netcoreapp3.0;net5.0;net6.0;net7.0;net8.0;net9.0
+ 1.5.0
+ netstandard2.0;netstandard2.1;netcoreapp3.0;net5.0;net6.0;net7.0;net8.0;net9.0;net10.0
latest
Mohammad Ashrafi
Copyright © Sina Soltani 2016
@@ -17,7 +17,7 @@
true
parbad Payment Gateway Bank Iran Shetab zibal پرداخت درگاه بانک ایران شتاب زیبال
True
- https://github.com/Sina-Soltani/Parbad/releases/tag/v3.11.0
+ https://github.com/Sina-Soltani/Parbad/releases/tag/v3.12.0
Zibal Gateway for Parbad project.
For more information see: https://github.com/Sina-Soltani/Parbad
diff --git a/src/Parbad.Mvc/src/Parbad.Mvc.csproj b/src/Parbad.Mvc/src/Parbad.Mvc.csproj
index 95f91e78..ac5caeb0 100644
--- a/src/Parbad.Mvc/src/Parbad.Mvc.csproj
+++ b/src/Parbad.Mvc/src/Parbad.Mvc.csproj
@@ -3,7 +3,7 @@
Parbad.Mvc5
Parbad.Mvc5
- 2.3.0
+ 2.4.0
net462
9
Sina Soltani
@@ -20,7 +20,7 @@ For more information see: https://www.nuget.org/packages/Parbad/
parbad mvc Payment Gateway Bank Iran Shetab IranKish Mellat Melli Sadad Parsian Pasargad Saman Asan-Pardakht پرداخت درگاه بانک ایران شتاب ایران-کیش ملت ملی سداد پارسیان پاسارگاد سامان آسان-پرداخت
true
LGPL-3.0-or-later
- https://github.com/Sina-Soltani/Parbad/releases/tag/v3.9.0
+ https://github.com/Sina-Soltani/Parbad/releases/tag/v3.12.0
@@ -35,7 +35,7 @@ For more information see: https://www.nuget.org/packages/Parbad/
-
+
diff --git a/src/Parbad.Owin/src/Parbad.Owin.csproj b/src/Parbad.Owin/src/Parbad.Owin.csproj
index c5fe1f47..8e0d3696 100644
--- a/src/Parbad.Owin/src/Parbad.Owin.csproj
+++ b/src/Parbad.Owin/src/Parbad.Owin.csproj
@@ -4,7 +4,7 @@
Parbad.Owin
Parbad.Owin
net462
- 1.3.0
+ 1.4.0
latest
Sina Soltani
Owin integration for Parbad project.
@@ -20,7 +20,7 @@ For more information see: https://www.nuget.org/packages/Parbad/
parbad owin webforms Payment Gateway Bank Iran Shetab IranKish Mellat Melli Sadad Parsian Pasargad Saman Asan-Pardakht پرداخت درگاه بانک ایران شتاب ایران-کیش ملت ملی سداد پارسیان پاسارگاد سامان آسان-پرداخت
true
LGPL-3.0-or-later
- https://github.com/Sina-Soltani/Parbad/releases/tag/v3.9.0
+ https://github.com/Sina-Soltani/Parbad/releases/tag/v3.12.0
@@ -35,8 +35,8 @@ For more information see: https://www.nuget.org/packages/Parbad/
-
-
+
+
diff --git a/src/Parbad.Storage/Abstractions/Parbad.Storage.Abstractions.csproj b/src/Parbad.Storage/Abstractions/Parbad.Storage.Abstractions.csproj
index 98e02b90..b4c7a103 100644
--- a/src/Parbad.Storage/Abstractions/Parbad.Storage.Abstractions.csproj
+++ b/src/Parbad.Storage/Abstractions/Parbad.Storage.Abstractions.csproj
@@ -3,9 +3,9 @@
Parbad.Storage.Abstractions
Parbad.Storage.Abstractions
- 1.3.0
+ 1.4.0
latest
- netstandard2.0;netstandard2.1;netcoreapp3.0;netcoreapp3.1;net5.0;net6.0;net7.0;net8.0;net9.0
+ netstandard2.0;netstandard2.1;netcoreapp3.0;netcoreapp3.1;net5.0;net6.0;net7.0;net8.0;net9.0;net10.0
enable
false
true
@@ -20,7 +20,7 @@ More information: https://github.com/Sina-Soltani/Parbad
parbad storage
true
Sina Soltani
- https://github.com/Sina-Soltani/Parbad/releases/tag/v3.10.0
+ https://github.com/Sina-Soltani/Parbad/releases/tag/v3.12.0
@@ -38,7 +38,7 @@ More information: https://github.com/Sina-Soltani/Parbad
-
+
diff --git a/src/Parbad.Storage/Cache/src/Parbad.Storage.Cache.csproj b/src/Parbad.Storage/Cache/src/Parbad.Storage.Cache.csproj
index bc851005..9a648158 100644
--- a/src/Parbad.Storage/Cache/src/Parbad.Storage.Cache.csproj
+++ b/src/Parbad.Storage/Cache/src/Parbad.Storage.Cache.csproj
@@ -2,9 +2,9 @@
Parbad.Storage.Cache
- 1.5.0
+ 1.6.0
latest
- netstandard2.0;netstandard2.1;netcoreapp3.0;netcoreapp3.1;net5.0;net6.0;net7.0;net8.0;net9.0
+ netstandard2.0;netstandard2.1;netcoreapp3.0;netcoreapp3.1;net5.0;net6.0;net7.0;net8.0;net9.0;net10.0
enable
false
true
@@ -20,7 +20,7 @@ More information: https://github.com/Sina-Soltani/Parbad
true
Sina Soltani
Parbad.Storage.Cache
- https://github.com/Sina-Soltani/Parbad/releases/tag/v3.10.0
+ https://github.com/Sina-Soltani/Parbad/releases/tag/v3.12.0
@@ -35,14 +35,14 @@ More information: https://github.com/Sina-Soltani/Parbad
-
+
-
+
diff --git a/src/Parbad.Storage/Cache/tests/DistributedMemoryCacheTests.cs b/src/Parbad.Storage/Cache/tests/DistributedMemoryCacheTests.cs
index 23e72085..36283c26 100644
--- a/src/Parbad.Storage/Cache/tests/DistributedMemoryCacheTests.cs
+++ b/src/Parbad.Storage/Cache/tests/DistributedMemoryCacheTests.cs
@@ -52,9 +52,9 @@ public void Setup()
}
[TestCleanup]
- public ValueTask Cleanup()
+ public Task Cleanup()
{
- return _services.DisposeAsync();
+ return _services.DisposeAsync().AsTask();
}
[TestMethod]
diff --git a/src/Parbad.Storage/Cache/tests/MemoryCacheTests.cs b/src/Parbad.Storage/Cache/tests/MemoryCacheTests.cs
index 630233b1..53380bca 100644
--- a/src/Parbad.Storage/Cache/tests/MemoryCacheTests.cs
+++ b/src/Parbad.Storage/Cache/tests/MemoryCacheTests.cs
@@ -52,9 +52,9 @@ public void Setup()
}
[TestCleanup]
- public ValueTask Cleanup()
+ public Task Cleanup()
{
- return _services.DisposeAsync();
+ return _services.DisposeAsync().AsTask();
}
[TestMethod]
diff --git a/src/Parbad.Storage/Cache/tests/Parbad.Storage.Cache.Tests.csproj b/src/Parbad.Storage/Cache/tests/Parbad.Storage.Cache.Tests.csproj
index ae661946..b6dd9d99 100644
--- a/src/Parbad.Storage/Cache/tests/Parbad.Storage.Cache.Tests.csproj
+++ b/src/Parbad.Storage/Cache/tests/Parbad.Storage.Cache.Tests.csproj
@@ -1,16 +1,16 @@
- net9.0
+ net10.0
latest
false
-
-
-
-
+
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/src/Parbad.Storage/EntityFrameworkCore/src/EntityFrameworkCoreStorage.cs b/src/Parbad.Storage/EntityFrameworkCore/src/EntityFrameworkCoreStorage.cs
index 304c07b8..69455ed5 100644
--- a/src/Parbad.Storage/EntityFrameworkCore/src/EntityFrameworkCoreStorage.cs
+++ b/src/Parbad.Storage/EntityFrameworkCore/src/EntityFrameworkCoreStorage.cs
@@ -65,6 +65,7 @@ public virtual async Task UpdatePaymentAsync(Payment payment, CancellationToken
var record = await Context
.Payments
+ .AsQueryable()
.AsNoTracking()
.SingleOrDefaultAsync(model => model.Id == payment.Id, cancellationToken);
@@ -85,6 +86,7 @@ public virtual async Task DeletePaymentAsync(Payment payment, CancellationToken
var record = await Context
.Payments
+ .AsQueryable()
.AsNoTracking()
.SingleOrDefaultAsync(model => model.Id == payment.Id, cancellationToken);
@@ -117,6 +119,7 @@ public virtual async Task UpdateTransactionAsync(Transaction transaction, Cancel
var record = await Context
.Transactions
+ .AsQueryable()
.SingleOrDefaultAsync(model => model.Id == transaction.Id, cancellationToken);
if (record == null) throw new InvalidOperationException($"No transaction records found in database with id {transaction.Id}");
@@ -136,6 +139,7 @@ public virtual async Task DeleteTransactionAsync(Transaction transaction, Cancel
var record = await Context
.Transactions
+ .AsQueryable()
.SingleOrDefaultAsync(model => model.Id == transaction.Id, cancellationToken);
if (record == null) throw new InvalidOperationException($"No transaction records found in database with id {transaction.Id}");
@@ -149,6 +153,7 @@ public virtual async Task DeleteTransactionAsync(Transaction transaction, Cancel
public virtual async Task GetPaymentByTrackingNumberAsync(long trackingNumber, CancellationToken cancellationToken = default)
{
var paymentEntity = await Context.Payments
+ .AsQueryable()
.AsNoTracking()
.SingleOrDefaultAsync(payment => payment.TrackingNumber == trackingNumber, cancellationToken);
@@ -159,6 +164,7 @@ public virtual async Task DeleteTransactionAsync(Transaction transaction, Cancel
public virtual async Task GetPaymentByTokenAsync(string paymentToken, CancellationToken cancellationToken = default)
{
var paymentEntity = await Context.Payments
+ .AsQueryable()
.AsNoTracking()
.SingleOrDefaultAsync(payment => payment.Token == paymentToken, cancellationToken);
@@ -168,19 +174,24 @@ public virtual async Task DeleteTransactionAsync(Transaction transaction, Cancel
///
public virtual Task DoesPaymentExistAsync(long trackingNumber, CancellationToken cancellationToken = default)
{
- return Context.Payments.AnyAsync(payment => payment.TrackingNumber == trackingNumber, cancellationToken);
+ return Context.Payments
+ .AsQueryable()
+ .AnyAsync(payment => payment.TrackingNumber == trackingNumber, cancellationToken);
}
///
public virtual Task DoesPaymentExistAsync(string paymentToken, CancellationToken cancellationToken = default)
{
- return Context.Payments.AnyAsync(payment => payment.Token == paymentToken, cancellationToken);
+ return Context.Payments
+ .AsQueryable()
+ .AnyAsync(payment => payment.Token == paymentToken, cancellationToken);
}
///
public virtual Task> GetTransactionsAsync(Payment payment, CancellationToken cancellationToken = default)
{
return Context.Transactions
+ .AsQueryable()
.Where(transaction => transaction.PaymentId == payment.Id)
.AsNoTracking()
.Select(Mapper.ToTransactionModel())
diff --git a/src/Parbad.Storage/EntityFrameworkCore/src/Parbad.Storage.EntityFrameworkCore.csproj b/src/Parbad.Storage/EntityFrameworkCore/src/Parbad.Storage.EntityFrameworkCore.csproj
index 75ef88b5..93730d82 100644
--- a/src/Parbad.Storage/EntityFrameworkCore/src/Parbad.Storage.EntityFrameworkCore.csproj
+++ b/src/Parbad.Storage/EntityFrameworkCore/src/Parbad.Storage.EntityFrameworkCore.csproj
@@ -2,9 +2,9 @@
Parbad.Storage.EntityFrameworkCore
- 1.6.0
+ 1.7.0
latest
- net5;net6;net7;net8.0;net9.0
+ net5;net6;net7;net8.0;net9.0;net10.0
enable
false
true
@@ -20,7 +20,7 @@ More information: https://github.com/Sina-Soltani/Parbad
true
Sina Soltani
Parbad.Storage.EntityframeworkCore
- https://github.com/Sina-Soltani/Parbad/releases/tag/v3.10.0
+ https://github.com/Sina-Soltani/Parbad/releases/tag/v3.12.0
@@ -44,8 +44,12 @@ More information: https://github.com/Sina-Soltani/Parbad
-
-
+
+
+
+
+
+
diff --git a/src/Parbad.Storage/EntityFrameworkCore/tests/EntityFrameworkCoreStorageTests.cs b/src/Parbad.Storage/EntityFrameworkCore/tests/EntityFrameworkCoreStorageTests.cs
index e6b48409..cf9086c4 100644
--- a/src/Parbad.Storage/EntityFrameworkCore/tests/EntityFrameworkCoreStorageTests.cs
+++ b/src/Parbad.Storage/EntityFrameworkCore/tests/EntityFrameworkCoreStorageTests.cs
@@ -54,9 +54,9 @@ public void Setup()
}
[TestCleanup]
- public ValueTask Cleanup()
+ public Task Cleanup()
{
- return _context.DisposeAsync();
+ return _context.DisposeAsync().AsTask();
}
[TestMethod]
diff --git a/src/Parbad.Storage/EntityFrameworkCore/tests/Parbad.Storage.EntityFrameworkCore.Tests.csproj b/src/Parbad.Storage/EntityFrameworkCore/tests/Parbad.Storage.EntityFrameworkCore.Tests.csproj
index 67d0a9a2..dabb747d 100644
--- a/src/Parbad.Storage/EntityFrameworkCore/tests/Parbad.Storage.EntityFrameworkCore.Tests.csproj
+++ b/src/Parbad.Storage/EntityFrameworkCore/tests/Parbad.Storage.EntityFrameworkCore.Tests.csproj
@@ -1,18 +1,18 @@
- net9.0
+ net10.0
latest
false
-
-
-
-
-
-
+
+
+
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/src/Parbad/src/Parbad.csproj b/src/Parbad/src/Parbad.csproj
index 78266b8b..5be46603 100644
--- a/src/Parbad/src/Parbad.csproj
+++ b/src/Parbad/src/Parbad.csproj
@@ -3,8 +3,8 @@
Parbad
Parbad
- 3.11.3
- netstandard2.0;netstandard2.1;netcoreapp3.0;netcoreapp3.1;net5.0;net6.0;net7.0;net8.0;net9.0
+ 3.12.0
+ netstandard2.0;netstandard2.1;netcoreapp3.0;netcoreapp3.1;net5.0;net6.0;net7.0;net8.0;net9.0;net10.0
latest
Parbad Sina Soltani
Parbad is a free, open-source, integrated and extensible library which connects your web applications to online payment gateways. Gateways can be added or developed by you.
@@ -23,7 +23,7 @@ More information: https://github.com/Sina-Soltani/Parbad
true
parbad Payment Gateway virtual virtual-gateway Bank Iran Shetab IranKish Mellat Melli Sadad Parsian Pasargad Saman Asan-Pardakht پرداخت درگاه بانک ایران شتاب ایران-کیش ملت ملی سداد پارسیان پاسارگاد سامان آسان-پرداخت
true
- https://github.com/Sina-Soltani/Parbad/releases/tag/v3.11.1
+ https://github.com/Sina-Soltani/Parbad/releases/tag/v3.12.0
@@ -38,16 +38,18 @@ More information: https://github.com/Sina-Soltani/Parbad
-
+
+
+
-
+
diff --git a/src/Parbad/tests/CallbackUrlTests.cs b/src/Parbad/tests/CallbackUrlTests.cs
index 2cd9cf98..68e9bbe5 100644
--- a/src/Parbad/tests/CallbackUrlTests.cs
+++ b/src/Parbad/tests/CallbackUrlTests.cs
@@ -57,6 +57,13 @@ public void Casted_Value_Must_Be_Equal_With_Url()
[TestMethod]
public void NonValidUrl_Must_Throw_Exception()
{
- Assert.ThrowsException(() => new CallbackUrl("abcd"));
+ try
+ {
+ _ = new CallbackUrl("abcd");
+ Assert.Fail("Expected CallbackUrlFormatException.");
+ }
+ catch (CallbackUrlFormatException)
+ {
+ }
}
}
diff --git a/src/Parbad/tests/Gateway/Melli/MelliCommonTests.cs b/src/Parbad/tests/Gateway/Melli/MelliCommonTests.cs
index 5e52e1a5..faae1164 100644
--- a/src/Parbad/tests/Gateway/Melli/MelliCommonTests.cs
+++ b/src/Parbad/tests/Gateway/Melli/MelliCommonTests.cs
@@ -41,10 +41,14 @@ public void Signing_Invalid_RequestData_Must_Throw_Exception()
const string data = "test";
- Assert.ThrowsException(() =>
+ try
{
crypto.Encrypt("test", data);
- });
+ Assert.Fail("Expected MelliGatewayDataSigningException.");
+ }
+ catch (MelliGatewayDataSigningException)
+ {
+ }
}
}
}
diff --git a/src/Parbad/tests/GatewayTransporterTests.cs b/src/Parbad/tests/GatewayTransporterTests.cs
index 2eeebe67..de953624 100644
--- a/src/Parbad/tests/GatewayTransporterTests.cs
+++ b/src/Parbad/tests/GatewayTransporterTests.cs
@@ -1,6 +1,8 @@
-using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Http;
+using Microsoft.Extensions.DependencyInjection;
using Microsoft.Net.Http.Headers;
using Parbad.Internal;
+using Parbad.Options;
using Parbad.Tests.Helpers;
using System.Collections.Generic;
using System.Net;
@@ -13,6 +15,7 @@ namespace Parbad.Tests
public class GatewayTransporterTests
{
private HttpContext _httpContext;
+ private ServiceProvider _services;
[TestInitialize]
public void Setup()
@@ -20,6 +23,16 @@ public void Setup()
var httpContextAccessor = MockHelpers.MockHttpContextAccessor();
_httpContext = httpContextAccessor.HttpContext;
+ _services = new ServiceCollection()
+ .Configure(_ => { })
+ .BuildServiceProvider();
+ _httpContext.RequestServices = _services;
+ }
+
+ [TestCleanup]
+ public Task Cleanup()
+ {
+ return _services.DisposeAsync().AsTask();
}
[TestMethod]
@@ -34,8 +47,8 @@ public async Task Transporter_Redirects_Correctly()
await transporter.TransportAsync();
Assert.AreEqual((int)HttpStatusCode.Redirect, _httpContext.Response.StatusCode);
- Assert.IsNotNull(_httpContext.Response.Headers[HeaderNames.Location]);
- Assert.AreEqual(expectedUrl, _httpContext.Response.Headers[HeaderNames.Location]);
+ Assert.IsFalse(string.IsNullOrEmpty(_httpContext.Response.Headers[HeaderNames.Location].ToString()));
+ Assert.AreEqual(expectedUrl, _httpContext.Response.Headers[HeaderNames.Location].ToString());
}
[TestMethod]
diff --git a/src/Parbad/tests/InvoiceBuilderTests.cs b/src/Parbad/tests/InvoiceBuilderTests.cs
index d0678b51..20842701 100644
--- a/src/Parbad/tests/InvoiceBuilderTests.cs
+++ b/src/Parbad/tests/InvoiceBuilderTests.cs
@@ -23,9 +23,9 @@ public void Setup()
}
[TestCleanup]
- public ValueTask Cleanup()
+ public Task Cleanup()
{
- return _services.DisposeAsync();
+ return _services.DisposeAsync().AsTask();
}
[TestMethod]
@@ -100,14 +100,21 @@ public async Task Invoice_Must_Have_The_Expected_AdditionalData()
}
[TestMethod]
- public void Invoice_Must_Throw_Exception_When_Duplicate_AdditionalKey_Is_Added()
+ public async Task Invoice_Must_Throw_Exception_When_Duplicate_AdditionalKey_Is_Added()
{
const string key = "key";
_builder.AddProperty(key, "");
_builder.AddProperty(key, "");
- Assert.ThrowsExceptionAsync(() => _builder.BuildAsync());
+ try
+ {
+ await _builder.BuildAsync();
+ Assert.Fail("Expected ArgumentException.");
+ }
+ catch (ArgumentException)
+ {
+ }
}
[TestMethod]
diff --git a/src/Parbad/tests/MoneyTests.cs b/src/Parbad/tests/MoneyTests.cs
index f564a83b..2f489f47 100644
--- a/src/Parbad/tests/MoneyTests.cs
+++ b/src/Parbad/tests/MoneyTests.cs
@@ -57,8 +57,8 @@ public void Equatable_Works()
{
var money = new Money(10);
- Assert.AreEqual(money, 10L);
- Assert.AreEqual(money, 10M);
+ Assert.AreEqual(10L, (long)money);
+ Assert.AreEqual(10M, (decimal)money);
Assert.AreEqual(money, new Money(10));
}
}
diff --git a/src/Parbad/tests/Parbad.Tests.csproj b/src/Parbad/tests/Parbad.Tests.csproj
index 487bb9b6..9a9f4f33 100644
--- a/src/Parbad/tests/Parbad.Tests.csproj
+++ b/src/Parbad/tests/Parbad.Tests.csproj
@@ -1,11 +1,21 @@
- net9.0
+ net10.0
latest
false
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
diff --git a/tests/Parbad.FrameworkCompatibility.Tests/FrameworkCompatibilityTests.cs b/tests/Parbad.FrameworkCompatibility.Tests/FrameworkCompatibilityTests.cs
new file mode 100644
index 00000000..95a6d766
--- /dev/null
+++ b/tests/Parbad.FrameworkCompatibility.Tests/FrameworkCompatibilityTests.cs
@@ -0,0 +1,118 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace Parbad.FrameworkCompatibility.Tests;
+
+[TestClass]
+public class FrameworkCompatibilityTests
+{
+ private static readonly string[] ExpectedRuntimeTargets =
+ [
+ "netcoreapp3.0",
+ "netcoreapp3.1",
+ "net5.0",
+ "net6.0",
+ "net7.0",
+ "net8.0",
+ "net9.0",
+ "net10.0"
+ ];
+
+ [TestMethod]
+ public void Current_runtime_target_is_declared_as_supported()
+ {
+ CollectionAssert.Contains(ExpectedRuntimeTargets, CurrentTargetFramework);
+ }
+
+ [TestMethod]
+ public void Runtime_compatible_project_assemblies_can_be_loaded()
+ {
+ var loadedAssemblies = GetCoveredProjectTypes()
+ .Select(type => type.Assembly.GetName().Name)
+ .Distinct()
+ .OrderBy(name => name)
+ .ToArray();
+
+ CollectionAssert.AreEquivalent(GetExpectedProjectAssemblyNames(), loadedAssemblies);
+ }
+
+ private static Type[] GetCoveredProjectTypes()
+ {
+ var types = new List
+ {
+ typeof(Parbad.Options.ParbadOptions),
+ typeof(Parbad.AspNetCore.VirtualGateway.ParbadVirtualGatewayMiddleware),
+ typeof(Parbad.Storage.Abstractions.IStorage),
+ typeof(Parbad.Storage.Cache.MemoryCache.MemoryCacheStorageOptions),
+ typeof(Parbad.Gateway.FanAva.FanAvaGatewayOptions),
+ typeof(Parbad.Gateway.IdPay.IdPayGatewayOptions),
+ typeof(Parbad.Gateway.IranKish.IranKishGatewayOptions),
+ typeof(Parbad.Gateway.PayIr.PayIrGatewayOptions),
+ typeof(Parbad.Gateway.PayPing.PayPingGatewayOptions),
+ typeof(Parbad.Gateway.Sepehr.SepehrGatewayOptions),
+ typeof(Parbad.Gateway.YekPay.YekPayGatewayOptions),
+ typeof(Parbad.Gateway.ZarinPal.ZarinPalGatewayOptions),
+ typeof(Parbad.Gateway.Zibal.ZibalGatewayOptions)
+ };
+
+#if NET5_0_OR_GREATER
+ types.Add(typeof(Parbad.Storage.EntityFrameworkCore.EntityFrameworkCoreStorage));
+#endif
+
+ return types.ToArray();
+ }
+
+ private static string[] GetExpectedProjectAssemblyNames()
+ {
+ var names = new List
+ {
+ "Parbad",
+ "Parbad.AspNetCore",
+ "Parbad.Storage.Abstractions",
+ "Parbad.Storage.Cache",
+ "Parbad.Gateway.FanAva",
+ "Parbad.Gateway.IdPay",
+ "Parbad.Gateway.IranKish",
+ "Parbad.Gateway.PayIr",
+ "Parbad.Gateway.PayPing",
+ "Parbad.Gateway.Sepehr",
+ "Parbad.Gateway.YekPay",
+ "Parbad.Gateway.ZarinPal",
+ "Parbad.Gateway.Zibal"
+ };
+
+#if NET5_0_OR_GREATER
+ names.Add("Parbad.Storage.EntityFrameworkCore");
+#endif
+
+ return names.OrderBy(name => name).ToArray();
+ }
+
+ private static string CurrentTargetFramework
+ {
+ get
+ {
+#if NETCOREAPP3_0
+ return "netcoreapp3.0";
+#elif NETCOREAPP3_1
+ return "netcoreapp3.1";
+#elif NET5_0
+ return "net5.0";
+#elif NET6_0
+ return "net6.0";
+#elif NET7_0
+ return "net7.0";
+#elif NET8_0
+ return "net8.0";
+#elif NET9_0
+ return "net9.0";
+#elif NET10_0
+ return "net10.0";
+#else
+ return "unknown";
+#endif
+ }
+ }
+}
diff --git a/tests/Parbad.FrameworkCompatibility.Tests/Parbad.FrameworkCompatibility.Tests.csproj b/tests/Parbad.FrameworkCompatibility.Tests/Parbad.FrameworkCompatibility.Tests.csproj
new file mode 100644
index 00000000..51beeded
--- /dev/null
+++ b/tests/Parbad.FrameworkCompatibility.Tests/Parbad.FrameworkCompatibility.Tests.csproj
@@ -0,0 +1,60 @@
+
+
+
+ netcoreapp3.0;netcoreapp3.1;net5.0;net6.0;net7.0;net8.0;net9.0;net10.0
+ latest
+ enable
+ false
+
+
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/Parbad.Tests.Helpers/GatewayOnResultHelper.cs b/tests/Parbad.Tests.Helpers/GatewayOnResultHelper.cs
index 57d4a019..d1547c3e 100644
--- a/tests/Parbad.Tests.Helpers/GatewayOnResultHelper.cs
+++ b/tests/Parbad.Tests.Helpers/GatewayOnResultHelper.cs
@@ -78,7 +78,7 @@ public static void OnFetchResult(
Assert.AreEqual(GatewayAccount.DefaultName, result.GatewayAccountName);
- Assert.AreEqual(result.Amount, expectedAmount);
+ Assert.AreEqual(expectedAmount, (decimal)result.Amount);
Assert.IsFalse(result.IsAlreadyVerified);
}
@@ -102,7 +102,7 @@ public static void OnVerifyResult(
Assert.AreEqual(GatewayAccount.DefaultName, result.GatewayAccountName);
- Assert.AreEqual(result.Amount, expectedAmount);
+ Assert.AreEqual(expectedAmount, (decimal)result.Amount);
Assert.IsNotNull(result.TransactionCode);
diff --git a/tests/Parbad.Tests.Helpers/GatewayTestHelpers.cs b/tests/Parbad.Tests.Helpers/GatewayTestHelpers.cs
index cec48047..cbd0d0e4 100644
--- a/tests/Parbad.Tests.Helpers/GatewayTestHelpers.cs
+++ b/tests/Parbad.Tests.Helpers/GatewayTestHelpers.cs
@@ -52,7 +52,7 @@ public static async Task TestGatewayAsync(
onRequestResult(requestResult);
- var storageManager = serviceProvider.GetRequiredService();
+ var storageManager = serviceProvider.GetRequiredService();
var payment = await storageManager.GetPaymentByTrackingNumberAsync(requestResult.TrackingNumber);
diff --git a/tests/Parbad.Tests.Helpers/Parbad.Tests.Helpers.csproj b/tests/Parbad.Tests.Helpers/Parbad.Tests.Helpers.csproj
index 40079985..17d8509f 100644
--- a/tests/Parbad.Tests.Helpers/Parbad.Tests.Helpers.csproj
+++ b/tests/Parbad.Tests.Helpers/Parbad.Tests.Helpers.csproj
@@ -1,32 +1,18 @@
- netcoreapp3.1;net5.0;net6.0;net7.0;net8.0;net9.0
+ netcoreapp3.1;net5.0;net6.0;net7.0;net8.0;net9.0;net10.0
latest
false
-
-
-
-
-
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
+
+
-
-
-
-
-
-
-
-
-
+