diff --git a/README.md b/README.md index 4d89bc14..a91e56bc 100644 --- a/README.md +++ b/README.md @@ -43,12 +43,9 @@ There are several documentation resources: ## Frameworks The following frameworks are supported: -- net35 -- net40 -- net45 and up -- netstandard1.3 -- netstandard2.0 -- uap10.0 (TODO...)s +- net35, net40, net45, net46 and up +- netstandard1.3 & netstandard2.0 +- uap10.0 (UAP 10.0.14393.0) ## Fork details This fork takes the basic library to a new level. Contains XML Documentation and examples on how to use it. Also adds unit testing to help ensure that it works properly. diff --git a/System.Linq.Dynamic.Core.sln b/System.Linq.Dynamic.Core.sln index c1195933..4b2a374d 100644 --- a/System.Linq.Dynamic.Core.sln +++ b/System.Linq.Dynamic.Core.sln @@ -21,11 +21,11 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EntityFramework.DynamicLinq.Tests.net452", "test\EntityFramework.DynamicLinq.Tests.net452\EntityFramework.DynamicLinq.Tests.net452.csproj", "{6B45E89C-0788-4942-924F-EF6397114BD1}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Linq.Dynamic.Core", "src\System.Linq.Dynamic.Core\System.Linq.Dynamic.Core.csproj", "{B70CD050-3B9C-406C-85FD-1A26394EC7C8}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Linq.Dynamic.Core", "src\System.Linq.Dynamic.Core\System.Linq.Dynamic.Core.csproj", "{D3804228-91F4-4502-9595-39584E510002}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EntityFramework.DynamicLinq", "src\EntityFramework.DynamicLinq\EntityFramework.DynamicLinq.csproj", "{8B9CEAFA-ED50-4682-8531-A082CFD3FDAE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EntityFramework.DynamicLinq", "src\EntityFramework.DynamicLinq\EntityFramework.DynamicLinq.csproj", "{D3804228-91F4-4502-9595-39584E510000}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.EntityFrameworkCore.DynamicLinq", "src\Microsoft.EntityFrameworkCore.DynamicLinq\Microsoft.EntityFrameworkCore.DynamicLinq.csproj", "{81056B5E-5BA9-483F-9836-AA3274DDCF96}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.EntityFrameworkCore.DynamicLinq", "src\Microsoft.EntityFrameworkCore.DynamicLinq\Microsoft.EntityFrameworkCore.DynamicLinq.csproj", "{D3804228-91F4-4502-9595-39584E510001}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Linq.Dynamic.Core.Tests", "test\System.Linq.Dynamic.Core.Tests\System.Linq.Dynamic.Core.Tests.csproj", "{912FBF24-3CAE-4A50-B5EA-E525B9FAEC80}" EndProject @@ -59,6 +59,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConsoleApp_netcore2.1_EF2.1 EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConsoleApp_netcore2.1_EF2.1.1", "src-console\ConsoleAppEF2.1.1\ConsoleApp_netcore2.1_EF2.1.1.csproj", "{F1880F07-238F-4A3A-9E58-141350665E1F}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WindowsUniversalTestApp14393", "test-uap\WindowsUniversalTestApp14393\WindowsUniversalTestApp14393.csproj", "{926D446C-8358-465A-AFAC-2F9078C22262}" + ProjectSection(ProjectDependencies) = postProject + {D3804228-91F4-4502-9595-39584E510002} = {D3804228-91F4-4502-9595-39584E510002} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -85,54 +90,54 @@ Global {6B45E89C-0788-4942-924F-EF6397114BD1}.Release|x64.Build.0 = Release|Any CPU {6B45E89C-0788-4942-924F-EF6397114BD1}.Release|x86.ActiveCfg = Release|Any CPU {6B45E89C-0788-4942-924F-EF6397114BD1}.Release|x86.Build.0 = Release|Any CPU - {B70CD050-3B9C-406C-85FD-1A26394EC7C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B70CD050-3B9C-406C-85FD-1A26394EC7C8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B70CD050-3B9C-406C-85FD-1A26394EC7C8}.Debug|ARM.ActiveCfg = Debug|Any CPU - {B70CD050-3B9C-406C-85FD-1A26394EC7C8}.Debug|ARM.Build.0 = Debug|Any CPU - {B70CD050-3B9C-406C-85FD-1A26394EC7C8}.Debug|x64.ActiveCfg = Debug|Any CPU - {B70CD050-3B9C-406C-85FD-1A26394EC7C8}.Debug|x64.Build.0 = Debug|Any CPU - {B70CD050-3B9C-406C-85FD-1A26394EC7C8}.Debug|x86.ActiveCfg = Debug|Any CPU - {B70CD050-3B9C-406C-85FD-1A26394EC7C8}.Debug|x86.Build.0 = Debug|Any CPU - {B70CD050-3B9C-406C-85FD-1A26394EC7C8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B70CD050-3B9C-406C-85FD-1A26394EC7C8}.Release|Any CPU.Build.0 = Release|Any CPU - {B70CD050-3B9C-406C-85FD-1A26394EC7C8}.Release|ARM.ActiveCfg = Release|Any CPU - {B70CD050-3B9C-406C-85FD-1A26394EC7C8}.Release|ARM.Build.0 = Release|Any CPU - {B70CD050-3B9C-406C-85FD-1A26394EC7C8}.Release|x64.ActiveCfg = Release|Any CPU - {B70CD050-3B9C-406C-85FD-1A26394EC7C8}.Release|x64.Build.0 = Release|Any CPU - {B70CD050-3B9C-406C-85FD-1A26394EC7C8}.Release|x86.ActiveCfg = Release|Any CPU - {B70CD050-3B9C-406C-85FD-1A26394EC7C8}.Release|x86.Build.0 = Release|Any CPU - {8B9CEAFA-ED50-4682-8531-A082CFD3FDAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8B9CEAFA-ED50-4682-8531-A082CFD3FDAE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8B9CEAFA-ED50-4682-8531-A082CFD3FDAE}.Debug|ARM.ActiveCfg = Debug|Any CPU - {8B9CEAFA-ED50-4682-8531-A082CFD3FDAE}.Debug|ARM.Build.0 = Debug|Any CPU - {8B9CEAFA-ED50-4682-8531-A082CFD3FDAE}.Debug|x64.ActiveCfg = Debug|Any CPU - {8B9CEAFA-ED50-4682-8531-A082CFD3FDAE}.Debug|x64.Build.0 = Debug|Any CPU - {8B9CEAFA-ED50-4682-8531-A082CFD3FDAE}.Debug|x86.ActiveCfg = Debug|Any CPU - {8B9CEAFA-ED50-4682-8531-A082CFD3FDAE}.Debug|x86.Build.0 = Debug|Any CPU - {8B9CEAFA-ED50-4682-8531-A082CFD3FDAE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8B9CEAFA-ED50-4682-8531-A082CFD3FDAE}.Release|Any CPU.Build.0 = Release|Any CPU - {8B9CEAFA-ED50-4682-8531-A082CFD3FDAE}.Release|ARM.ActiveCfg = Release|Any CPU - {8B9CEAFA-ED50-4682-8531-A082CFD3FDAE}.Release|ARM.Build.0 = Release|Any CPU - {8B9CEAFA-ED50-4682-8531-A082CFD3FDAE}.Release|x64.ActiveCfg = Release|Any CPU - {8B9CEAFA-ED50-4682-8531-A082CFD3FDAE}.Release|x64.Build.0 = Release|Any CPU - {8B9CEAFA-ED50-4682-8531-A082CFD3FDAE}.Release|x86.ActiveCfg = Release|Any CPU - {8B9CEAFA-ED50-4682-8531-A082CFD3FDAE}.Release|x86.Build.0 = Release|Any CPU - {81056B5E-5BA9-483F-9836-AA3274DDCF96}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {81056B5E-5BA9-483F-9836-AA3274DDCF96}.Debug|Any CPU.Build.0 = Debug|Any CPU - {81056B5E-5BA9-483F-9836-AA3274DDCF96}.Debug|ARM.ActiveCfg = Debug|Any CPU - {81056B5E-5BA9-483F-9836-AA3274DDCF96}.Debug|ARM.Build.0 = Debug|Any CPU - {81056B5E-5BA9-483F-9836-AA3274DDCF96}.Debug|x64.ActiveCfg = Debug|Any CPU - {81056B5E-5BA9-483F-9836-AA3274DDCF96}.Debug|x64.Build.0 = Debug|Any CPU - {81056B5E-5BA9-483F-9836-AA3274DDCF96}.Debug|x86.ActiveCfg = Debug|Any CPU - {81056B5E-5BA9-483F-9836-AA3274DDCF96}.Debug|x86.Build.0 = Debug|Any CPU - {81056B5E-5BA9-483F-9836-AA3274DDCF96}.Release|Any CPU.ActiveCfg = Release|Any CPU - {81056B5E-5BA9-483F-9836-AA3274DDCF96}.Release|Any CPU.Build.0 = Release|Any CPU - {81056B5E-5BA9-483F-9836-AA3274DDCF96}.Release|ARM.ActiveCfg = Release|Any CPU - {81056B5E-5BA9-483F-9836-AA3274DDCF96}.Release|ARM.Build.0 = Release|Any CPU - {81056B5E-5BA9-483F-9836-AA3274DDCF96}.Release|x64.ActiveCfg = Release|Any CPU - {81056B5E-5BA9-483F-9836-AA3274DDCF96}.Release|x64.Build.0 = Release|Any CPU - {81056B5E-5BA9-483F-9836-AA3274DDCF96}.Release|x86.ActiveCfg = Release|Any CPU - {81056B5E-5BA9-483F-9836-AA3274DDCF96}.Release|x86.Build.0 = Release|Any CPU + {D3804228-91F4-4502-9595-39584E510002}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804228-91F4-4502-9595-39584E510002}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804228-91F4-4502-9595-39584E510002}.Debug|ARM.ActiveCfg = Debug|Any CPU + {D3804228-91F4-4502-9595-39584E510002}.Debug|ARM.Build.0 = Debug|Any CPU + {D3804228-91F4-4502-9595-39584E510002}.Debug|x64.ActiveCfg = Debug|Any CPU + {D3804228-91F4-4502-9595-39584E510002}.Debug|x64.Build.0 = Debug|Any CPU + {D3804228-91F4-4502-9595-39584E510002}.Debug|x86.ActiveCfg = Debug|Any CPU + {D3804228-91F4-4502-9595-39584E510002}.Debug|x86.Build.0 = Debug|Any CPU + {D3804228-91F4-4502-9595-39584E510002}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804228-91F4-4502-9595-39584E510002}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804228-91F4-4502-9595-39584E510002}.Release|ARM.ActiveCfg = Release|Any CPU + {D3804228-91F4-4502-9595-39584E510002}.Release|ARM.Build.0 = Release|Any CPU + {D3804228-91F4-4502-9595-39584E510002}.Release|x64.ActiveCfg = Release|Any CPU + {D3804228-91F4-4502-9595-39584E510002}.Release|x64.Build.0 = Release|Any CPU + {D3804228-91F4-4502-9595-39584E510002}.Release|x86.ActiveCfg = Release|Any CPU + {D3804228-91F4-4502-9595-39584E510002}.Release|x86.Build.0 = Release|Any CPU + {D3804228-91F4-4502-9595-39584E510000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804228-91F4-4502-9595-39584E510000}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804228-91F4-4502-9595-39584E510000}.Debug|ARM.ActiveCfg = Debug|Any CPU + {D3804228-91F4-4502-9595-39584E510000}.Debug|ARM.Build.0 = Debug|Any CPU + {D3804228-91F4-4502-9595-39584E510000}.Debug|x64.ActiveCfg = Debug|Any CPU + {D3804228-91F4-4502-9595-39584E510000}.Debug|x64.Build.0 = Debug|Any CPU + {D3804228-91F4-4502-9595-39584E510000}.Debug|x86.ActiveCfg = Debug|Any CPU + {D3804228-91F4-4502-9595-39584E510000}.Debug|x86.Build.0 = Debug|Any CPU + {D3804228-91F4-4502-9595-39584E510000}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804228-91F4-4502-9595-39584E510000}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804228-91F4-4502-9595-39584E510000}.Release|ARM.ActiveCfg = Release|Any CPU + {D3804228-91F4-4502-9595-39584E510000}.Release|ARM.Build.0 = Release|Any CPU + {D3804228-91F4-4502-9595-39584E510000}.Release|x64.ActiveCfg = Release|Any CPU + {D3804228-91F4-4502-9595-39584E510000}.Release|x64.Build.0 = Release|Any CPU + {D3804228-91F4-4502-9595-39584E510000}.Release|x86.ActiveCfg = Release|Any CPU + {D3804228-91F4-4502-9595-39584E510000}.Release|x86.Build.0 = Release|Any CPU + {D3804228-91F4-4502-9595-39584E510001}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804228-91F4-4502-9595-39584E510001}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804228-91F4-4502-9595-39584E510001}.Debug|ARM.ActiveCfg = Debug|Any CPU + {D3804228-91F4-4502-9595-39584E510001}.Debug|ARM.Build.0 = Debug|Any CPU + {D3804228-91F4-4502-9595-39584E510001}.Debug|x64.ActiveCfg = Debug|Any CPU + {D3804228-91F4-4502-9595-39584E510001}.Debug|x64.Build.0 = Debug|Any CPU + {D3804228-91F4-4502-9595-39584E510001}.Debug|x86.ActiveCfg = Debug|Any CPU + {D3804228-91F4-4502-9595-39584E510001}.Debug|x86.Build.0 = Debug|Any CPU + {D3804228-91F4-4502-9595-39584E510001}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804228-91F4-4502-9595-39584E510001}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804228-91F4-4502-9595-39584E510001}.Release|ARM.ActiveCfg = Release|Any CPU + {D3804228-91F4-4502-9595-39584E510001}.Release|ARM.Build.0 = Release|Any CPU + {D3804228-91F4-4502-9595-39584E510001}.Release|x64.ActiveCfg = Release|Any CPU + {D3804228-91F4-4502-9595-39584E510001}.Release|x64.Build.0 = Release|Any CPU + {D3804228-91F4-4502-9595-39584E510001}.Release|x86.ActiveCfg = Release|Any CPU + {D3804228-91F4-4502-9595-39584E510001}.Release|x86.Build.0 = Release|Any CPU {912FBF24-3CAE-4A50-B5EA-E525B9FAEC80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {912FBF24-3CAE-4A50-B5EA-E525B9FAEC80}.Debug|Any CPU.Build.0 = Debug|Any CPU {912FBF24-3CAE-4A50-B5EA-E525B9FAEC80}.Debug|ARM.ActiveCfg = Debug|Any CPU @@ -341,15 +346,35 @@ Global {F1880F07-238F-4A3A-9E58-141350665E1F}.Release|x64.Build.0 = Release|Any CPU {F1880F07-238F-4A3A-9E58-141350665E1F}.Release|x86.ActiveCfg = Release|Any CPU {F1880F07-238F-4A3A-9E58-141350665E1F}.Release|x86.Build.0 = Release|Any CPU + {926D446C-8358-465A-AFAC-2F9078C22262}.Debug|Any CPU.ActiveCfg = Debug|x86 + {926D446C-8358-465A-AFAC-2F9078C22262}.Debug|ARM.ActiveCfg = Debug|ARM + {926D446C-8358-465A-AFAC-2F9078C22262}.Debug|ARM.Build.0 = Debug|ARM + {926D446C-8358-465A-AFAC-2F9078C22262}.Debug|ARM.Deploy.0 = Debug|ARM + {926D446C-8358-465A-AFAC-2F9078C22262}.Debug|x64.ActiveCfg = Debug|x64 + {926D446C-8358-465A-AFAC-2F9078C22262}.Debug|x64.Build.0 = Debug|x64 + {926D446C-8358-465A-AFAC-2F9078C22262}.Debug|x64.Deploy.0 = Debug|x64 + {926D446C-8358-465A-AFAC-2F9078C22262}.Debug|x86.ActiveCfg = Debug|x86 + {926D446C-8358-465A-AFAC-2F9078C22262}.Debug|x86.Build.0 = Debug|x86 + {926D446C-8358-465A-AFAC-2F9078C22262}.Debug|x86.Deploy.0 = Debug|x86 + {926D446C-8358-465A-AFAC-2F9078C22262}.Release|Any CPU.ActiveCfg = Release|x86 + {926D446C-8358-465A-AFAC-2F9078C22262}.Release|ARM.ActiveCfg = Release|ARM + {926D446C-8358-465A-AFAC-2F9078C22262}.Release|ARM.Build.0 = Release|ARM + {926D446C-8358-465A-AFAC-2F9078C22262}.Release|ARM.Deploy.0 = Release|ARM + {926D446C-8358-465A-AFAC-2F9078C22262}.Release|x64.ActiveCfg = Release|x64 + {926D446C-8358-465A-AFAC-2F9078C22262}.Release|x64.Build.0 = Release|x64 + {926D446C-8358-465A-AFAC-2F9078C22262}.Release|x64.Deploy.0 = Release|x64 + {926D446C-8358-465A-AFAC-2F9078C22262}.Release|x86.ActiveCfg = Release|x86 + {926D446C-8358-465A-AFAC-2F9078C22262}.Release|x86.Build.0 = Release|x86 + {926D446C-8358-465A-AFAC-2F9078C22262}.Release|x86.Deploy.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution {6B45E89C-0788-4942-924F-EF6397114BD1} = {8463ED7E-69FB-49AE-85CF-0791AFD98E38} - {B70CD050-3B9C-406C-85FD-1A26394EC7C8} = {DBD7D9B6-FCC7-4650-91AF-E6457573A68F} - {8B9CEAFA-ED50-4682-8531-A082CFD3FDAE} = {DBD7D9B6-FCC7-4650-91AF-E6457573A68F} - {81056B5E-5BA9-483F-9836-AA3274DDCF96} = {DBD7D9B6-FCC7-4650-91AF-E6457573A68F} + {D3804228-91F4-4502-9595-39584E510002} = {DBD7D9B6-FCC7-4650-91AF-E6457573A68F} + {D3804228-91F4-4502-9595-39584E510000} = {DBD7D9B6-FCC7-4650-91AF-E6457573A68F} + {D3804228-91F4-4502-9595-39584E510001} = {DBD7D9B6-FCC7-4650-91AF-E6457573A68F} {912FBF24-3CAE-4A50-B5EA-E525B9FAEC80} = {8463ED7E-69FB-49AE-85CF-0791AFD98E38} {BF97CB1B-5043-4256-8F42-CF3A4F3863BE} = {8463ED7E-69FB-49AE-85CF-0791AFD98E38} {27E54CD4-1D80-4797-88DC-1C535C1E9B4A} = {1384C18E-DCF3-4A5B-9560-2BF5DD8C51CE} @@ -363,6 +388,7 @@ Global {EDF434F6-70C0-4005-B63E-0C365B3DA42A} = {7971CAEB-B9F2-416B-966D-2D697C4C1E62} {E4286D1D-A98C-4516-9E47-CBF9739448DA} = {7971CAEB-B9F2-416B-966D-2D697C4C1E62} {F1880F07-238F-4A3A-9E58-141350665E1F} = {7971CAEB-B9F2-416B-966D-2D697C4C1E62} + {926D446C-8358-465A-AFAC-2F9078C22262} = {ECA5702B-5D32-4888-A34E-9461FC533F23} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {94C56722-194E-4B8B-BC23-B3F754E89A20} diff --git a/appveyor.yml b/appveyor.yml index 108f1059..d51e41b1 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -17,13 +17,12 @@ install: - ps: $env:DOTNET_SKIP_FIRST_TIME_EXPERIENCE = "true" - dotnet tool install --global dotnet-sonarscanner - # https://www.appveyor.com/docs/build-configuration/#secure-variables - # However, secure variables are not decoded during Pull Request builds which prevents someone from submitting PR with malicious build script displaying those variables. In more controlled environment through with a trusted team and private GitHub repositories there is an option on General tab of project settings to allow secure variables for PRs. environment: PATH: $(PATH);$(PROGRAMFILES)\dotnet\ # https://www.appveyor.com/docs/build-configuration/#secure-variables # However, secure variables are not decoded during Pull Request builds which prevents someone from submitting PR with malicious build script displaying those variables. In more controlled environment through with a trusted team and private GitHub repositories there is an option on General tab of project settings to allow secure variables for PRs. + # See also https://medium.com/@stef.heyenrath/how-to-fix-sonarcloud-issue-in-a-github-pr-when-using-appveyor-integration-8909b49406b4 COVERALLS_REPO_TOKEN: secure: tsTABRbCmdWFLT194XNIrpurerOfjN6cEoxt2RaSUfLmUIgra/+CwuqVkv0sPRop SONAR_TOKEN: @@ -32,8 +31,8 @@ environment: before_build: # Remove UAP10 and netstandard20 from csproj -#- cmd: copy /Y src\System.Linq.Dynamic.Core\System.Linq.Dynamic.Core.AppVeyor.csproj src\System.Linq.Dynamic.Core\System.Linq.Dynamic.Core.csproj -#- cmd: copy /Y src\Microsoft.EntityFrameworkCore.DynamicLinq\Microsoft.EntityFrameworkCore.DynamicLinq.AppVeyor.csproj src\Microsoft.EntityFrameworkCore.DynamicLinq\Microsoft.EntityFrameworkCore.DynamicLinq.csproj +- cmd: copy /Y src\System.Linq.Dynamic.Core\System.Linq.Dynamic.Core.AppVeyor.csproj src\System.Linq.Dynamic.Core\System.Linq.Dynamic.Core.csproj +- cmd: copy /Y src\Microsoft.EntityFrameworkCore.DynamicLinq\Microsoft.EntityFrameworkCore.DynamicLinq.AppVeyor.csproj src\Microsoft.EntityFrameworkCore.DynamicLinq\Microsoft.EntityFrameworkCore.DynamicLinq.csproj # Restore all - dotnet restore src\System.Linq.Dynamic.Core\System.Linq.Dynamic.Core.csproj diff --git a/src/Microsoft.EntityFrameworkCore.DynamicLinq/Microsoft.EntityFrameworkCore.DynamicLinq.AppVeyor.csproj b/src/Microsoft.EntityFrameworkCore.DynamicLinq/Microsoft.EntityFrameworkCore.DynamicLinq.AppVeyor.csproj index 98ea58a4..b5b10b37 100644 --- a/src/Microsoft.EntityFrameworkCore.DynamicLinq/Microsoft.EntityFrameworkCore.DynamicLinq.AppVeyor.csproj +++ b/src/Microsoft.EntityFrameworkCore.DynamicLinq/Microsoft.EntityFrameworkCore.DynamicLinq.AppVeyor.csproj @@ -2,7 +2,7 @@ Dynamic Linq extensions for Microsoft.EntityFrameworkCore which adds Async support Microsoft.EntityFrameworkCore.DynamicLinq - 1.0.4.8 + 1.0.8.12 Stef Heyenrath net451;net46;netstandard1.3;netstandard2.0 $(DefineConstants);EFCORE @@ -26,13 +26,18 @@ false false en-us + {D3804228-91F4-4502-9595-39584E510001} full + + + True True + $(MSBuildProjectDirectory)=/ true - + $(DefineConstants);NETSTANDARD @@ -101,8 +106,8 @@ - + diff --git a/src/Microsoft.EntityFrameworkCore.DynamicLinq/Microsoft.EntityFrameworkCore.DynamicLinq.csproj b/src/Microsoft.EntityFrameworkCore.DynamicLinq/Microsoft.EntityFrameworkCore.DynamicLinq.csproj index da67c793..43d868bc 100644 --- a/src/Microsoft.EntityFrameworkCore.DynamicLinq/Microsoft.EntityFrameworkCore.DynamicLinq.csproj +++ b/src/Microsoft.EntityFrameworkCore.DynamicLinq/Microsoft.EntityFrameworkCore.DynamicLinq.csproj @@ -4,7 +4,7 @@ Microsoft.EntityFrameworkCore.DynamicLinq 1.0.8.15 Stef Heyenrath - net451;net46;netstandard1.3;netstandard2.0 + net451;net46;netstandard1.3;netstandard2.0;uap10.0 $(DefineConstants);EFCORE true Microsoft.EntityFrameworkCore.DynamicLinq @@ -107,7 +107,7 @@ - + \ No newline at end of file diff --git a/src/System.Linq.Dynamic.Core/System.Linq.Dynamic.Core.AppVeyor.csproj b/src/System.Linq.Dynamic.Core/System.Linq.Dynamic.Core.AppVeyor.csproj index 4699765b..0417c66c 100644 --- a/src/System.Linq.Dynamic.Core/System.Linq.Dynamic.Core.AppVeyor.csproj +++ b/src/System.Linq.Dynamic.Core/System.Linq.Dynamic.Core.AppVeyor.csproj @@ -1,132 +1,131 @@  - - This is a .NETStandard/ .NET Core port of the the Microsoft assembly for the .Net 4.0 Dynamic language functionality. - System.Linq.Dynamic.Core - 1.0.7.12 - Microsoft;Scott Guthrie;King Wilder;Nathan Arnott;Stef Heyenrath - net35;net40;net45;net46;netstandard1.3;netstandard2.0 - true - System.Linq.Dynamic.Core - System.Linq.Dynamic.Core.snk - true - true - system;linq;dynamic;core;dotnet;NETCoreApp;NETStandard - Bugfixes and new Features. For details see the release notes. - https://github.com/StefH/System.Linq.Dynamic.Core - https://github.com/StefH/System.Linq.Dynamic.Core/blob/master/licence.txt - git - https://github.com/StefH/System.Linq.Dynamic.Core - false - false - false - false - false - false - false - false - false - en-us - full - True - True - true - - - - NET35 - - - - NETSTANDARD - - - - - - Silverlight,Version=v5.0 - Silverlight - v5.0 - SL50;SILVERLIGHT - $(MSBuildProgramFiles32)\MSBuild\Microsoft\Silverlight\v5.0\Microsoft.Silverlight.CSharp.targets - - - - - - - - - - - - - - 1.1.1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + This is a .NETStandard/ .NET Core port of the the Microsoft assembly for the .Net 4.0 Dynamic language functionality. + System.Linq.Dynamic.Core + 1.0.8.15 + Microsoft;Scott Guthrie;King Wilder;Nathan Arnott;Stef Heyenrath + net35;net40;net45;net46;netstandard1.3;netstandard2.0 + true + System.Linq.Dynamic.Core + System.Linq.Dynamic.Core.snk + true + true + system;linq;dynamic;core;dotnet;NETCoreApp;NETStandard + Bugfixes and new Features. For details see CHANGELOG.md + https://github.com/StefH/System.Linq.Dynamic.Core + https://github.com/StefH/System.Linq.Dynamic.Core/blob/master/licence.txt + git + https://github.com/StefH/System.Linq.Dynamic.Core + false + false + false + false + false + false + false + false + false + en-us + {D3804228-91F4-4502-9595-39584E510002} + full + + + + True + True + $(MSBuildProjectDirectory)=/ + true + + + + NET35 + + + + NETSTANDARD + + + + false + UAP,Version=v10.0 + UAP + 10.0.14393.0 + 10.0.10240.0 + .NETCore + v5.0 + $(DefineConstants);WINDOWS_UWP;UAP10_0 + $(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.CSharp.targets + + + + Silverlight,Version=v5.0 + Silverlight + v5.0 + SL50;SILVERLIGHT + $(MSBuildProgramFiles32)\MSBuild\Microsoft\Silverlight\v5.0\Microsoft.Silverlight.CSharp.targets + + + + + + + + + + + + + + 1.1.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/System.Linq.Dynamic.Core/System.Linq.Dynamic.Core.csproj b/src/System.Linq.Dynamic.Core/System.Linq.Dynamic.Core.csproj index 9510c930..19c8b5a4 100644 --- a/src/System.Linq.Dynamic.Core/System.Linq.Dynamic.Core.csproj +++ b/src/System.Linq.Dynamic.Core/System.Linq.Dynamic.Core.csproj @@ -4,7 +4,7 @@ System.Linq.Dynamic.Core 1.0.8.15 Microsoft;Scott Guthrie;King Wilder;Nathan Arnott;Stef Heyenrath - net35;net40;net45;net46;netstandard1.3;netstandard2.0 + net35;net40;net45;net46;netstandard1.3;netstandard2.0;uap10.0 true System.Linq.Dynamic.Core System.Linq.Dynamic.Core.snk @@ -124,7 +124,7 @@ - + diff --git a/test-uap/WindowsUniversalTestApp14393/App.xaml b/test-uap/WindowsUniversalTestApp14393/App.xaml new file mode 100644 index 00000000..a9b3e503 --- /dev/null +++ b/test-uap/WindowsUniversalTestApp14393/App.xaml @@ -0,0 +1,7 @@ + + + diff --git a/test-uap/WindowsUniversalTestApp14393/App.xaml.cs b/test-uap/WindowsUniversalTestApp14393/App.xaml.cs new file mode 100644 index 00000000..e5ce998b --- /dev/null +++ b/test-uap/WindowsUniversalTestApp14393/App.xaml.cs @@ -0,0 +1,133 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Windows.ApplicationModel; +using Windows.ApplicationModel.Activation; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Navigation; +using System.Linq.Dynamic.Core; + +namespace WindowsUniversalTestApp14393 +{ + /// + /// Provides application-specific behavior to supplement the default Application class. + /// + sealed partial class App : Application + { + /// + /// Initializes the singleton application object. This is the first line of authored code + /// executed, and as such is the logical equivalent of main() or WinMain(). + /// + public App() + { + InitializeComponent(); + Suspending += OnSuspending; + + var config = new ParsingConfig + { + CustomTypeProvider = new WindowsAppCustomTypeProvider() + }; + + var containsList = new List { 0, 1, 2, 3 }; + var q = containsList.AsQueryable().Where("it > 1"); + var a = q.ToDynamicArray(); + + + var lst = new List { TestEnum.Var1, TestEnum.Var2, TestEnum.Var3, TestEnum.Var4, TestEnum.Var5, TestEnum.Var6 }; + var qry = lst.AsQueryable(); + + //Act + var result1 = qry.Where("it < TestEnum.Var4").ToDynamicList(); + var result2 = qry.Where("TestEnum.Var4 > it").ToDynamicList(); + var result3 = qry.Where("it = Var5").ToDynamicList(); + var result4 = qry.Where("it = @0", TestEnum.Var5).ToDynamicList(); + var result5 = qry.Where("it = @0", 8).ToDynamicList(); + + var resultNewList1 = containsList.AsQueryable().Select("new (it as i)").ToDynamicList(); + var resultNew1 = resultNewList1[0]; + int i1 = resultNew1.i; + + var resultNew4List = containsList.AsQueryable().Select("new (it as a, it as b, \"c\" as c, 200 as d)").ToDynamicList(); + var resultNew4 = resultNew4List[0]; + int a4 = resultNew4.a; + int b4 = resultNew4.b; + string c4 = resultNew4.c; + int d4 = resultNew4.d; + + var resultNewList5TestClass = containsList.AsQueryable().Select("new (it as a, it as b, \"c\" as c, 200 as d)").ToList(); + var firstTestClass = resultNewList5TestClass.First(); + + var resultNewList4WithMyClass = containsList.AsQueryable().Select("new (it as a, it as b, \"c\" as c, 200 as d)").ToList(); + var firstTestClassWithConstructor = resultNewList4WithMyClass.First(); + + var resultNewList5 = containsList.AsQueryable().Select("new (it as a, it as b, \"c\" as c, 200 as d, 300 as e)").ToDynamicList(); + int y = 0; + } + + /// + /// Invoked when the application is launched normally by the end user. Other entry points + /// will be used such as when the application is launched to open a specific file. + /// + /// Details about the launch request and process. + protected override void OnLaunched(LaunchActivatedEventArgs e) + { + Frame rootFrame = Window.Current.Content as Frame; + + // Do not repeat app initialization when the Window already has content, + // just ensure that the window is active + if (rootFrame == null) + { + // Create a Frame to act as the navigation context and navigate to the first page + rootFrame = new Frame(); + + rootFrame.NavigationFailed += OnNavigationFailed; + + if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) + { + //TODO: Load state from previously suspended application + } + + // Place the frame in the current Window + Window.Current.Content = rootFrame; + } + + if (e.PrelaunchActivated == false) + { + if (rootFrame.Content == null) + { + // When the navigation stack isn't restored navigate to the first page, + // configuring the new page by passing required information as a navigation + // parameter + rootFrame.Navigate(typeof(MainPage), e.Arguments); + } + // Ensure the current window is active + Window.Current.Activate(); + } + } + + /// + /// Invoked when Navigation to a certain page fails + /// + /// The Frame which failed navigation + /// Details about the navigation failure + void OnNavigationFailed(object sender, NavigationFailedEventArgs e) + { + throw new Exception("Failed to load Page " + e.SourcePageType.FullName); + } + + /// + /// Invoked when application execution is being suspended. Application state is saved + /// without knowing whether the application will be terminated or resumed with the contents + /// of memory still intact. + /// + /// The source of the suspend request. + /// Details about the suspend request. + private void OnSuspending(object sender, SuspendingEventArgs e) + { + var deferral = e.SuspendingOperation.GetDeferral(); + //TODO: Save application state and stop any background activity + deferral.Complete(); + } + } +} diff --git a/test-uap/WindowsUniversalTestApp14393/Assets/LockScreenLogo.scale-200.png b/test-uap/WindowsUniversalTestApp14393/Assets/LockScreenLogo.scale-200.png new file mode 100644 index 00000000..735f57ad Binary files /dev/null and b/test-uap/WindowsUniversalTestApp14393/Assets/LockScreenLogo.scale-200.png differ diff --git a/test-uap/WindowsUniversalTestApp14393/Assets/SplashScreen.scale-200.png b/test-uap/WindowsUniversalTestApp14393/Assets/SplashScreen.scale-200.png new file mode 100644 index 00000000..023e7f1f Binary files /dev/null and b/test-uap/WindowsUniversalTestApp14393/Assets/SplashScreen.scale-200.png differ diff --git a/test-uap/WindowsUniversalTestApp14393/Assets/Square150x150Logo.scale-200.png b/test-uap/WindowsUniversalTestApp14393/Assets/Square150x150Logo.scale-200.png new file mode 100644 index 00000000..af49fec1 Binary files /dev/null and b/test-uap/WindowsUniversalTestApp14393/Assets/Square150x150Logo.scale-200.png differ diff --git a/test-uap/WindowsUniversalTestApp14393/Assets/Square44x44Logo.scale-200.png b/test-uap/WindowsUniversalTestApp14393/Assets/Square44x44Logo.scale-200.png new file mode 100644 index 00000000..ce342a2e Binary files /dev/null and b/test-uap/WindowsUniversalTestApp14393/Assets/Square44x44Logo.scale-200.png differ diff --git a/test-uap/WindowsUniversalTestApp14393/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/test-uap/WindowsUniversalTestApp14393/Assets/Square44x44Logo.targetsize-24_altform-unplated.png new file mode 100644 index 00000000..f6c02ce9 Binary files /dev/null and b/test-uap/WindowsUniversalTestApp14393/Assets/Square44x44Logo.targetsize-24_altform-unplated.png differ diff --git a/test-uap/WindowsUniversalTestApp14393/Assets/StoreLogo.png b/test-uap/WindowsUniversalTestApp14393/Assets/StoreLogo.png new file mode 100644 index 00000000..7385b56c Binary files /dev/null and b/test-uap/WindowsUniversalTestApp14393/Assets/StoreLogo.png differ diff --git a/test-uap/WindowsUniversalTestApp14393/Assets/Wide310x150Logo.scale-200.png b/test-uap/WindowsUniversalTestApp14393/Assets/Wide310x150Logo.scale-200.png new file mode 100644 index 00000000..288995b3 Binary files /dev/null and b/test-uap/WindowsUniversalTestApp14393/Assets/Wide310x150Logo.scale-200.png differ diff --git a/test-uap/WindowsUniversalTestApp14393/MainPage.xaml b/test-uap/WindowsUniversalTestApp14393/MainPage.xaml new file mode 100644 index 00000000..36b86d92 --- /dev/null +++ b/test-uap/WindowsUniversalTestApp14393/MainPage.xaml @@ -0,0 +1,14 @@ + + + + + + diff --git a/test-uap/WindowsUniversalTestApp14393/MainPage.xaml.cs b/test-uap/WindowsUniversalTestApp14393/MainPage.xaml.cs new file mode 100644 index 00000000..48641b7f --- /dev/null +++ b/test-uap/WindowsUniversalTestApp14393/MainPage.xaml.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices.WindowsRuntime; +using Windows.Foundation; +using Windows.Foundation.Collections; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Controls.Primitives; +using Windows.UI.Xaml.Data; +using Windows.UI.Xaml.Input; +using Windows.UI.Xaml.Media; +using Windows.UI.Xaml.Navigation; + +// The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409 + +namespace WindowsUniversalTestApp14393 +{ + /// + /// An empty page that can be used on its own or navigated to within a Frame. + /// + public sealed partial class MainPage : Page + { + public MainPage() + { + this.InitializeComponent(); + } + } +} diff --git a/test-uap/WindowsUniversalTestApp14393/Package.appxmanifest b/test-uap/WindowsUniversalTestApp14393/Package.appxmanifest new file mode 100644 index 00000000..3bbbe95f --- /dev/null +++ b/test-uap/WindowsUniversalTestApp14393/Package.appxmanifest @@ -0,0 +1,49 @@ + + + + + + + + + + WindowsUniversalTestApp14393 + azureuser + Assets\StoreLogo.png + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test-uap/WindowsUniversalTestApp14393/Properties/AssemblyInfo.cs b/test-uap/WindowsUniversalTestApp14393/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..eb3ba93e --- /dev/null +++ b/test-uap/WindowsUniversalTestApp14393/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("WindowsUniversalTestApp14393")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("WindowsUniversalTestApp14393")] +[assembly: AssemblyCopyright("Copyright © Stef Heyenrath 2018")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: ComVisible(false)] diff --git a/test-uap/WindowsUniversalTestApp14393/Properties/Default.rd.xml b/test-uap/WindowsUniversalTestApp14393/Properties/Default.rd.xml new file mode 100644 index 00000000..af00722c --- /dev/null +++ b/test-uap/WindowsUniversalTestApp14393/Properties/Default.rd.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/test-uap/WindowsUniversalTestApp14393/TestClass.cs b/test-uap/WindowsUniversalTestApp14393/TestClass.cs new file mode 100644 index 00000000..136c122d --- /dev/null +++ b/test-uap/WindowsUniversalTestApp14393/TestClass.cs @@ -0,0 +1,11 @@ + +namespace WindowsUniversalTestApp14393 +{ + public class TestClass + { + public int a { get; set; } + public int b { get; set; } + public string c { get; set; } + public int d { get; set; } + } +} diff --git a/test-uap/WindowsUniversalTestApp14393/TestClassWithConstructor.cs b/test-uap/WindowsUniversalTestApp14393/TestClassWithConstructor.cs new file mode 100644 index 00000000..ea053420 --- /dev/null +++ b/test-uap/WindowsUniversalTestApp14393/TestClassWithConstructor.cs @@ -0,0 +1,19 @@ + +namespace WindowsUniversalTestApp14393 +{ + public class TestClassWithConstructor + { + public int a { get; set; } + public int b { get; set; } + public string c { get; set; } + public int d { get; set; } + + public TestClassWithConstructor(int a, int b, string c, int d) + { + this.a = a; + this.b = b; + this.c = c; + this.d = d; + } + } +} diff --git a/test-uap/WindowsUniversalTestApp14393/TestEnum.cs b/test-uap/WindowsUniversalTestApp14393/TestEnum.cs new file mode 100644 index 00000000..d8ddef28 --- /dev/null +++ b/test-uap/WindowsUniversalTestApp14393/TestEnum.cs @@ -0,0 +1,15 @@ +using System.Linq.Dynamic.Core.CustomTypeProviders; + +namespace WindowsUniversalTestApp14393 +{ + [DynamicLinqType] + public enum TestEnum + { + Var1 = 0, + Var2 = 1, + Var3 = 2, + Var4 = 4, + Var5 = 8, + Var6 = 16, + } +} diff --git a/test-uap/WindowsUniversalTestApp14393/WindowsAppCustomTypeProvider.cs b/test-uap/WindowsUniversalTestApp14393/WindowsAppCustomTypeProvider.cs new file mode 100644 index 00000000..160a105a --- /dev/null +++ b/test-uap/WindowsUniversalTestApp14393/WindowsAppCustomTypeProvider.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Linq.Dynamic.Core.CustomTypeProviders; +using System.Reflection; +using System.Threading.Tasks; + +namespace WindowsUniversalTestApp14393 +{ + class WindowsAppCustomTypeProvider : AbstractDynamicLinqCustomTypeProvider, IDynamicLinkCustomTypeProvider + { + public HashSet GetCustomTypes() + { + var assemblies = GetAssemblyListAsync().Result.Where(x => !x.IsDynamic).ToArray(); + + return new HashSet(FindTypesMarkedWithDynamicLinqTypeAttribute(assemblies)); + } + + private static async Task> GetAssemblyListAsync() + { + List assemblies = new List(); + + var files = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFilesAsync(); + if (files == null) + return assemblies; + + foreach (var file in files.Where(file => file.FileType == ".dll" || file.FileType == ".exe")) + { + try + { + var assembly = Assembly.Load(new AssemblyName(file.DisplayName)); + + // just load all types and skip this assembly of one or more types cannot be resolved + var dummy = assembly.DefinedTypes.ToArray(); + assemblies.Add(assembly); + } + catch (Exception ex) + { + Debug.Write(ex.Message); + } + } + + return assemblies; + } + } +} diff --git a/test-uap/WindowsUniversalTestApp14393/WindowsUniversalTestApp14393.csproj b/test-uap/WindowsUniversalTestApp14393/WindowsUniversalTestApp14393.csproj new file mode 100644 index 00000000..9a0a20a8 --- /dev/null +++ b/test-uap/WindowsUniversalTestApp14393/WindowsUniversalTestApp14393.csproj @@ -0,0 +1,160 @@ + + + + + Debug + x86 + {926D446C-8358-465A-AFAC-2F9078C22262} + AppContainerExe + Properties + WindowsUniversalTestApp14393 + WindowsUniversalTestApp14393 + en-US + UAP + 10.0.14393.0 + 10.0.14393.0 + 14 + 512 + {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + true + WindowsUniversalTestApp14393_TemporaryKey.pfx + + + true + bin\x86\Debug\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP + ;2008 + full + x86 + false + prompt + true + + + bin\x86\Release\ + TRACE;NETFX_CORE;WINDOWS_UWP + true + ;2008 + pdbonly + x86 + false + prompt + true + true + + + true + bin\ARM\Debug\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP + ;2008 + full + ARM + false + prompt + true + + + bin\ARM\Release\ + TRACE;NETFX_CORE;WINDOWS_UWP + true + ;2008 + pdbonly + ARM + false + prompt + true + true + + + true + bin\x64\Debug\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP + ;2008 + full + x64 + false + prompt + true + + + bin\x64\Release\ + TRACE;NETFX_CORE;WINDOWS_UWP + true + ;2008 + pdbonly + x64 + false + prompt + true + true + + + PackageReference + + + + App.xaml + + + MainPage.xaml + + + + + + + + + + Designer + + + + + + + + + + + + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + + 6.0.10 + + + 4.1.0 + + + 4.0.0 + + + + + ..\..\src\System.Linq.Dynamic.Core\bin\$(Configuration)\uap10.0\System.Linq.Dynamic.Core.dll + + + + 14.0 + + + + \ No newline at end of file diff --git a/test-uap/WindowsUniversalTestApp14393/WindowsUniversalTestApp14393_TemporaryKey.pfx b/test-uap/WindowsUniversalTestApp14393/WindowsUniversalTestApp14393_TemporaryKey.pfx new file mode 100644 index 00000000..c53b7b91 Binary files /dev/null and b/test-uap/WindowsUniversalTestApp14393/WindowsUniversalTestApp14393_TemporaryKey.pfx differ