From 1258e7a4474d0b9350ccb60f9084658f9e7b0cb9 Mon Sep 17 00:00:00 2001 From: malex Date: Sat, 22 Mar 2014 16:05:18 -0700 Subject: [PATCH] Adds support for Web API 2 by introducing a new Strathweb.CacheOutput.WebApi2.Azure project (following the same pattern set by the AspNetWebApi-OutputCache project). --- Strathweb.CacheOutput.Azure.sln | 10 +- .../AzureCachingProvider.cs | 63 ++++++++++ .../ClientPerfCountersInstaller.exe | Bin 0 -> 33184 bytes .../ClientPerfCountersInstaller.exe.config | 6 + .../PerformanceCounters.xml | 36 ++++++ .../Properties/AssemblyInfo.cs | 36 ++++++ ...Strathweb.CacheOutput.WebApi2.Azure.csproj | 113 ++++++++++++++++++ .../app.config | 29 +++++ .../packages.config | 8 ++ 9 files changed, 300 insertions(+), 1 deletion(-) create mode 100644 Strathweb.CacheOutput.WebApi2.Azure/AzureCachingProvider.cs create mode 100644 Strathweb.CacheOutput.WebApi2.Azure/Microsoft.WindowsAzure.Caching/ClientPerfCountersInstaller.exe create mode 100644 Strathweb.CacheOutput.WebApi2.Azure/Microsoft.WindowsAzure.Caching/ClientPerfCountersInstaller.exe.config create mode 100644 Strathweb.CacheOutput.WebApi2.Azure/Microsoft.WindowsAzure.Caching/PerformanceCounters.xml create mode 100644 Strathweb.CacheOutput.WebApi2.Azure/Properties/AssemblyInfo.cs create mode 100644 Strathweb.CacheOutput.WebApi2.Azure/Strathweb.CacheOutput.WebApi2.Azure.csproj create mode 100644 Strathweb.CacheOutput.WebApi2.Azure/app.config create mode 100644 Strathweb.CacheOutput.WebApi2.Azure/packages.config diff --git a/Strathweb.CacheOutput.Azure.sln b/Strathweb.CacheOutput.Azure.sln index 72aa4b3..dd2ad69 100644 --- a/Strathweb.CacheOutput.Azure.sln +++ b/Strathweb.CacheOutput.Azure.sln @@ -1,6 +1,8 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2012 +# Visual Studio 2013 +VisualStudioVersion = 12.0.30110.0 +MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Strathweb.CacheOutput.Azure", "Strathweb.CacheOutput.Azure\Strathweb.CacheOutput.Azure.csproj", "{39A3B3A4-4093-435C-B987-77B5B8B6336F}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{5504326F-F545-4EBE-9B7D-CED34338A414}" @@ -10,6 +12,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{550432 .nuget\NuGet.targets = .nuget\NuGet.targets EndProjectSection EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Strathweb.CacheOutput.WebApi2.Azure", "Strathweb.CacheOutput.WebApi2.Azure\Strathweb.CacheOutput.WebApi2.Azure.csproj", "{421ED792-6DCB-46CD-87CE-36AA56619732}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -20,6 +24,10 @@ Global {39A3B3A4-4093-435C-B987-77B5B8B6336F}.Debug|Any CPU.Build.0 = Debug|Any CPU {39A3B3A4-4093-435C-B987-77B5B8B6336F}.Release|Any CPU.ActiveCfg = Release|Any CPU {39A3B3A4-4093-435C-B987-77B5B8B6336F}.Release|Any CPU.Build.0 = Release|Any CPU + {421ED792-6DCB-46CD-87CE-36AA56619732}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {421ED792-6DCB-46CD-87CE-36AA56619732}.Debug|Any CPU.Build.0 = Debug|Any CPU + {421ED792-6DCB-46CD-87CE-36AA56619732}.Release|Any CPU.ActiveCfg = Release|Any CPU + {421ED792-6DCB-46CD-87CE-36AA56619732}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Strathweb.CacheOutput.WebApi2.Azure/AzureCachingProvider.cs b/Strathweb.CacheOutput.WebApi2.Azure/AzureCachingProvider.cs new file mode 100644 index 0000000..83a3b04 --- /dev/null +++ b/Strathweb.CacheOutput.WebApi2.Azure/AzureCachingProvider.cs @@ -0,0 +1,63 @@ +using System; +using Microsoft.ApplicationServer.Caching; +using WebApi.OutputCache.Core.Cache; + +namespace Strathweb.CacheOutput.WebApi2.Azure +{ + public class AzureCachingProvider : IApiOutputCache + { + private readonly DataCache _cache; + private const string Region = "GlobalRegion"; + + public AzureCachingProvider() + { + _cache = new DataCache(); + _cache.CreateRegion(Region); + } + + public void RemoveStartsWith(string key) + { + var objs = _cache.GetObjectsByTag(new DataCacheTag(key), Region); + foreach (var o in objs) + { + _cache.Remove(o.Key, Region); + } + } + + public T Get(string key) where T : class + { + var result = _cache.Get(key, Region) as T; + return result; + } + + public object Get(string key) + { + var result = _cache.Get(key, Region); + return result; + } + + public void Remove(string key) + { + _cache.Remove(key, Region); + } + + public bool Contains(string key) + { + var result = _cache.Get(key, Region); + if (result != null) return true; + + return false; + } + + public void Add(string key, object o, DateTimeOffset expiration, string dependsOnKey = null) + { + var exp = expiration - DateTime.Now; + if (dependsOnKey == null) + { + dependsOnKey = key; + } + + _cache.Put(key, o, exp, new[] { new DataCacheTag(dependsOnKey) }, Region); + } + } +} diff --git a/Strathweb.CacheOutput.WebApi2.Azure/Microsoft.WindowsAzure.Caching/ClientPerfCountersInstaller.exe b/Strathweb.CacheOutput.WebApi2.Azure/Microsoft.WindowsAzure.Caching/ClientPerfCountersInstaller.exe new file mode 100644 index 0000000000000000000000000000000000000000..62ad6a9149106ed03489a7ce2e4e92ac46e275db GIT binary patch literal 33184 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 + + + + + \ No newline at end of file diff --git a/Strathweb.CacheOutput.WebApi2.Azure/Microsoft.WindowsAzure.Caching/PerformanceCounters.xml b/Strathweb.CacheOutput.WebApi2.Azure/Microsoft.WindowsAzure.Caching/PerformanceCounters.xml new file mode 100644 index 0000000..8446904 --- /dev/null +++ b/Strathweb.CacheOutput.WebApi2.Azure/Microsoft.WindowsAzure.Caching/PerformanceCounters.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Strathweb.CacheOutput.WebApi2.Azure/Properties/AssemblyInfo.cs b/Strathweb.CacheOutput.WebApi2.Azure/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..bfdd4e3 --- /dev/null +++ b/Strathweb.CacheOutput.WebApi2.Azure/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +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("Strathweb.CacheOutput.Azure")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Strathweb.CacheOutput.Azure")] +[assembly: AssemblyCopyright("Copyright © 2013")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("0be337b5-b477-4b1d-9700-675b047352d2")] + +// 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")] diff --git a/Strathweb.CacheOutput.WebApi2.Azure/Strathweb.CacheOutput.WebApi2.Azure.csproj b/Strathweb.CacheOutput.WebApi2.Azure/Strathweb.CacheOutput.WebApi2.Azure.csproj new file mode 100644 index 0000000..b8a33b5 --- /dev/null +++ b/Strathweb.CacheOutput.WebApi2.Azure/Strathweb.CacheOutput.WebApi2.Azure.csproj @@ -0,0 +1,113 @@ + + + + + Debug + AnyCPU + {421ED792-6DCB-46CD-87CE-36AA56619732} + Library + Properties + Strathweb.CacheOutput.WebApi2.Azure + Strathweb.CacheOutput.WebApi2.Azure + v4.5 + 512 + ..\ + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + Always + + + Always + + + + + + + Always + + + + + False + ..\packages\Microsoft.WindowsAzure.Caching.2.1.0.0\lib\net40-full\Microsoft.ApplicationServer.Caching.AzureClientHelper.dll + + + False + ..\packages\Microsoft.WindowsAzure.Caching.2.1.0.0\lib\net40-full\Microsoft.ApplicationServer.Caching.AzureCommon.dll + + + False + ..\packages\Microsoft.WindowsAzure.Caching.2.1.0.0\lib\net40-full\Microsoft.ApplicationServer.Caching.Client.dll + + + False + ..\packages\Microsoft.WindowsAzure.Caching.2.1.0.0\lib\net40-full\Microsoft.ApplicationServer.Caching.Core.dll + + + False + ..\packages\Microsoft.WindowsAzure.Caching.2.1.0.0\lib\net40-full\Microsoft.Web.DistributedCache.dll + + + False + ..\packages\Microsoft.WindowsAzure.Caching.2.1.0.0\lib\net40-full\Microsoft.WindowsFabric.Common.dll + + + False + ..\packages\Microsoft.WindowsAzure.Caching.2.1.0.0\lib\net40-full\Microsoft.WindowsFabric.Data.Common.dll + + + False + ..\packages\Newtonsoft.Json.4.5.11\lib\net40\Newtonsoft.Json.dll + + + + False + ..\packages\Microsoft.AspNet.WebApi.Client.5.0.0\lib\net45\System.Net.Http.Formatting.dll + + + + + False + ..\packages\Microsoft.AspNet.WebApi.Core.5.0.0\lib\net45\System.Web.Http.dll + + + ..\packages\Strathweb.CacheOutput.WebApi2.0.5\lib\net45\WebApi.OutputCache.Core.dll + + + ..\packages\Strathweb.CacheOutput.WebApi2.0.5\lib\net45\WebApi.OutputCache.V2.dll + + + + + + \ No newline at end of file diff --git a/Strathweb.CacheOutput.WebApi2.Azure/app.config b/Strathweb.CacheOutput.WebApi2.Azure/app.config new file mode 100644 index 0000000..69ffde7 --- /dev/null +++ b/Strathweb.CacheOutput.WebApi2.Azure/app.config @@ -0,0 +1,29 @@ + + + +
+
+ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Strathweb.CacheOutput.WebApi2.Azure/packages.config b/Strathweb.CacheOutput.WebApi2.Azure/packages.config new file mode 100644 index 0000000..1e2e97e --- /dev/null +++ b/Strathweb.CacheOutput.WebApi2.Azure/packages.config @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file