diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 5716583..613d713 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -1,22 +1,29 @@ { // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format - "version": "0.1.0", + "version": "2.0.0", "command": "dotnet", "options": { "env": { "FrameworkPathOverride": "/usr/lib/mono/4.5/" } }, - "isShellCommand": true, "args": [], "tasks": [ { - "taskName": "build", - "args": [ "/p:NUNITLITE=1", "src/ServiceStack.Azure.sln"], - "isBuildCommand": true, - "showOutput": "silent", - "problemMatcher": "$msCompile" + "label": "build", + "type": "shell", + "command": "dotnet", + "args": [ + "build", + "/p:NUNITLITE=1", + "src/ServiceStack.Azure.sln" + ], + "problemMatcher": "$msCompile", + "group": { + "_id": "build", + "isDefault": false + } } ] } \ No newline at end of file diff --git a/NuGet.Config b/NuGet.Config new file mode 100644 index 0000000..42daf5f --- /dev/null +++ b/NuGet.Config @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/NuGet/ServiceStack.Azure.Core/servicestack.azure.core.nuspec b/NuGet/ServiceStack.Azure.Core/servicestack.azure.core.nuspec deleted file mode 100644 index 86cb0d0..0000000 --- a/NuGet/ServiceStack.Azure.Core/servicestack.azure.core.nuspec +++ /dev/null @@ -1,31 +0,0 @@ - - - - ServiceStack.Azure.Core - ServiceStack.Azure .NET Standard 2.0 - 5.0.0 - ServiceStack - ServiceStack - - .NET Standard 2.0 version of ServiceStack.Azure - - https://github.com/ServiceStack/ServiceStack - https://servicestack.net/terms - https://servicestack.net/img/logo-32.png - ServiceStack Azure WebServices ServiceBus Cache CacheClient - en-US - ServiceStack and contributors - - - - - - - - - - - - - - diff --git a/NuGet/ServiceStack.Azure/servicestack.azure.nuspec b/NuGet/ServiceStack.Azure/servicestack.azure.nuspec deleted file mode 100644 index 769b9c0..0000000 --- a/NuGet/ServiceStack.Azure/servicestack.azure.nuspec +++ /dev/null @@ -1,36 +0,0 @@ - - - - ServiceStack.Azure - 5.0.0 - ServiceStack - ServiceStack - - ServiceStack integration for Azure Services - - https://github.com/ServiceStack/ServiceStack - https://servicestack.net/terms - https://servicestack.net/img/logo-32.png - ServiceStack Azure WebServices ServiceBus Cache CacheClient - en-US - ServiceStack and contributors - - - - - - - - - - - - - - - - - - - - diff --git a/README.md b/README.md index 78f3bd9..c31c2a0 100644 --- a/README.md +++ b/README.md @@ -1,87 +1,5 @@ -## ServiceStack.Azure +Follow [@ServiceStack](https://twitter.com/servicestack), [view the docs](https://docs.servicestack.net), use [StackOverflow](https://stackoverflow.com/questions/ask?tags=servicestack,servicestack.azure) or [Customer Forums](https://forums.servicestack.net/) for support. -ServiceStack.Azure package provides support to Azure ServiceBus and Azure Blob Storage. All features are incapsulated in single ServiceStack.Azure package. To install package run from NuGet +# Read ServiceStack.Azure Docs at [docs.servicestack.net/azure](https://docs.servicestack.net/azure) - PM> Install-Package ServiceStack.Azure - -ServiceStack.Azure includes implementation of the following ServiceStack providers: - -- [ServiceBusMqServer](#ServiceBusMqServer) - [MQ Server](http://docs.servicestack.net/messaging) for invoking ServiceStack Services via Azure ServiceBus -- [AzureBlobVirtualFiles](#virtual-filesystem-backed-by-azure-blob-storage) - Virtual file system based on Azure Blob Storage -- [AzureAppendBlobVirtualFiles](#virtual-filesystem-backed-by-azure-blob-storage) - Virtual file system based on Azure Blob Storage for appending scenarios -- [AzureTableCacheClient](#caching-support-with-azure-table-storage) - Cache client over Azure Table Storage - - -### ServiceBusMqServer - -The code to configure and start an ServiceBus MQ Server is similar to other MQ Servers: - -```csharp -container.Register(c => new ServiceBusMqServer(ConnectionString)); - -var mqServer = container.Resolve(); -mqServer.RegisterHandler(ExecuteMessage); -mqServer.Start(); -``` - -Where ConnectionString is connection string to Service Bus, how to obtain it from Azure Portal you can find in [Get Started with Service Bus queues](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-dotnet-get-started-with-queues) article - -When an MQ Server is registered, ServiceStack automatically publishes Requests accepted on the "One Way" pre-defined route to the registered MQ broker. The message is later picked up and executed by a Message Handler on a background Thread. - -## Virtual FileSystem backed by Azure Blob Storage - -You can use an Azure Blob Storage Container to serve website content with the **AzureBlobVirtualFiles**. - -```csharp -public class AppHost : AppHostBase -{ - public override void Configure(Container container) - { - //All Razor Views, Markdown Content, imgs, js, css, etc are served from an Azure Blob Storage container - - //Use connection string to Azure Storage Emulator. For real application you should use connection string - //to your Azure Storage account - var azureBlobConnectionString = "UseDevelopmentStorage=true"; - //Azure container which hold your files. If it does not exist it will be automatically created. - var containerName = "myazurecontainer"; - - VirtualFiles = new AzureBlobVirtualFiles(connectionString, containerName); - AddVirtualFileSources.Add(VirtualFiles); - } -} -``` - -In addition you can use **AzureAppendBlobVirtualFiles** in scenarios that require appending such as logging. - -```csharp -public class AppHost : AppHostBase -{ - public override void Configure(Container container) - { - Plugins.Add(new RequestLogsFeature - { - RequestLogger = new CsvRequestLogger( - files: new AzureAppendBlobVirtualFiles(AppSettings.Get("storageConnection"), "logfiles"), - requestLogsPattern: "requestlogs/{year}-{month}/{year}-{month}-{day}.csv", - errorLogsPattern: "requestlogs/{year}-{month}/{year}-{month}-{day}-errors.csv", - appendEvery: TimeSpan.FromSeconds(30)) - - }); - } -} -``` - -## Caching support with Azure Table Storage - -The AzureTableCacheClient implements [ICacheClientExteded](https://github.com/ServiceStack/ServiceStack/blob/master/src/ServiceStack.Interfaces/Caching/ICacheClientExtended.cs) and [IRemoveByPattern](https://github.com/ServiceStack/ServiceStack/blob/master/src/ServiceStack.Interfaces/Caching/IRemoveByPattern.cs) using Azure Table Storage. - -```csharp -public class AppHost : AppHostBase -{ - public override void Configure(Container container) - { - string cacheConnStr = "UseDevelopmentStorage=true;"; - container.Register(new AzureTableCacheClient(cacheConnStr)); - } -} -``` +### This repository [has moved](https://docs.servicestack.net/mono-repo) to [github.com/ServiceStack/ServiceStack/ServiceStack.Azure](https://github.com/ServiceStack/ServiceStack/tree/main/ServiceStack.Azure) diff --git a/build/build-core.proj b/build/build-core.proj new file mode 100644 index 0000000..e5abee1 --- /dev/null +++ b/build/build-core.proj @@ -0,0 +1,78 @@ + + + + + + 6 + 0 + $(BUILD_NUMBER) + + + + $(MSBuildProjectDirectory)/.. + $(BuildSolutionDir)/src + $(BuildSolutionDir)/tests + Release + $(BuildSolutionDir)/NuGet/ + $(MajorVersion).$(MinorVersion).$(PatchVersion) + + + + + BeforeBuildSolutions; + BuildSolutions + + + + + + + + + + + + + + + + + + + + + + + + + + + <Version>[^<]* + <Version>$(PackageVersion) + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/build/build.bat b/build/build.bat index 7152e96..bc3006a 100644 --- a/build/build.bat +++ b/build/build.bat @@ -1,3 +1,3 @@ SET MSBUILD="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe" -%MSBUILD% build.proj /target:Default;NuGetPack /property:Configuration=Release;MinorVersion=1;PatchVersion=0 +%MSBUILD% build.proj /property:Configuration=Release;MinorVersion=4;PatchVersion=1 diff --git a/build/build.proj b/build/build.proj index e3066aa..b387b59 100644 --- a/build/build.proj +++ b/build/build.proj @@ -1,10 +1,10 @@  + xmlns='http://schemas.microsoft.com/developer/msbuild/2003' ToolsVersion="4.0"> - 5 + 6 0 $(BUILD_NUMBER) @@ -12,17 +12,12 @@ $(MSBuildProjectDirectory)/.. $(BuildSolutionDir)/src + $(BuildSolutionDir)/tests Release - $(BuildSolutionDir)/src/.nuget/nuget.exe $(BuildSolutionDir)/NuGet/ - $(MajorVersion).$(MinorVersion).$(PatchVersion).0 $(MajorVersion).$(MinorVersion).$(PatchVersion) - - - - BeforeBuildSolutions; @@ -30,68 +25,52 @@ - - - - - - - + + + Properties="Configuration=$(Configuration)" /> + + + + + + + - - AssemblyFileVersion\(\"\d+\.\d+\.\d+\.\d+\"\) - AssemblyFileVersion("$(Version)") - - - - version="5\.[^"]*" - version="$(PackageVersion)" + + <Version>[^<]* + <Version>$(PackageVersion) - - + - - - - - - + - - - + Targets="Build;Pack" + Properties="Configuration=$(Configuration)" /> - - - - - - - - + + + + + - + + \ No newline at end of file diff --git a/lib/copy.bat b/lib/copy.bat deleted file mode 100644 index 77342f2..0000000 --- a/lib/copy.bat +++ /dev/null @@ -1,24 +0,0 @@ -REM SET BUILD=Debug -SET BUILD=Release - -COPY ..\..\ServiceStack\src\ServiceStack.Interfaces\bin\%BUILD%\net45\ServiceStack.Interfaces.* net45 -COPY ..\..\ServiceStack\src\ServiceStack.Interfaces\bin\%BUILD%\netstandard2.0\ServiceStack.Interfaces.* netstandard2.0 - -COPY ..\..\ServiceStack.Text\src\ServiceStack.Text\bin\%BUILD%\net45\ServiceStack.Text.* net45 -COPY ..\..\ServiceStack.Text\src\ServiceStack.Text\bin\%BUILD%\netstandard2.0\ServiceStack.Text.* netstandard2.0 - -COPY ..\..\ServiceStack\src\ServiceStack.Client\bin\%BUILD%\net45\ServiceStack.Client.* net45 -COPY ..\..\ServiceStack\src\ServiceStack.Client\bin\%BUILD%\netstandard2.0\ServiceStack.Client.* netstandard2.0 - -COPY ..\..\ServiceStack\src\ServiceStack.Common\bin\%BUILD%\net45\ServiceStack.Common.* net45 -COPY ..\..\ServiceStack\src\ServiceStack.Common\bin\%BUILD%\netstandard2.0\ServiceStack.Common.* netstandard2.0 - -COPY ..\..\ServiceStack\src\ServiceStack\bin\%BUILD%\net45\ServiceStack.dll net45 -COPY ..\..\ServiceStack\src\ServiceStack\bin\%BUILD%\net45\ServiceStack.xml net45 -COPY ..\..\ServiceStack\src\ServiceStack\bin\%BUILD%\netstandard2.0\ServiceStack.dll netstandard2.0 -COPY ..\..\ServiceStack\src\ServiceStack\bin\%BUILD%\netstandard2.0\ServiceStack.xml netstandard2.0 - -COPY ..\..\ServiceStack\src\ServiceStack.Server\bin\%BUILD%\net45\ServiceStack.Server.* net45 -COPY ..\..\ServiceStack\src\ServiceStack.Server\bin\%BUILD%\netstandard2.0\ServiceStack.Server.* netstandard2.0 - -COPY ..\..\ServiceStack\src\ServiceStack.Kestrel\bin\%BUILD%\netstandard2.0\ServiceStack.Kestrel.* netstandard2.0 diff --git a/lib/net45/ServiceStack.Client.dll b/lib/net45/ServiceStack.Client.dll deleted file mode 100644 index 88d7f0c..0000000 Binary files a/lib/net45/ServiceStack.Client.dll and /dev/null differ diff --git a/lib/net45/ServiceStack.Client.xml b/lib/net45/ServiceStack.Client.xml deleted file mode 100644 index 5eea6de..0000000 --- a/lib/net45/ServiceStack.Client.xml +++ /dev/null @@ -1,499 +0,0 @@ - - - - ServiceStack.Client - - - - Need to provide async request options - http://msdn.microsoft.com/en-us/library/86wf6409(VS.71).aspx - - - - The request filter is called before any request. - This request filter is executed globally. - - - - - The response action is called once the server response is available. - It will allow you to access raw response information. - This response action is executed globally. - Note that you should NOT consume the response stream as this is handled by ServiceStack - - - - - Called before request resend, when the initial request required authentication - - - - - The request filter is called before any request. - This request filter only works with the instance where it was set (not global). - - - - - The response action is called once the server response is available. - It will allow you to access raw response information. - Note that you should NOT consume the response stream as this is handled by ServiceStack - - - - - The ResultsFilter is called before the Request is sent allowing you to return a cached response. - - - - - The ResultsFilterResponse is called before returning the response allowing responses to be cached. - - - - - Called with requestUri, ResponseType when server returns 304 NotModified - - - - - Useful .NET Encryption Utils from: - https://msdn.microsoft.com/en-us/library/system.security.cryptography.rsacryptoserviceprovider(v=vs.110).aspx - - - - - Generic Proxy for service calls. - - The service Contract - - - - Returns the transparent proxy for the service call - - - - - Returns the next message from queueName or null if no message - - - - - - - Creates the error response from the values provided. - - If the errorCode is empty it will use the first validation error code, - if there is none it will throw an error. - - The error code. - The error message. - The validation errors. - - - - - Default MaxStringContentLength is 8k, and throws an exception when reached - - - - - Serializer cache of delegates required to create a type from a string map (e.g. for REST urls) - - - - - Gets the namespace from an attribute marked on the type's definition - - - Namespace of type - - - - Removes all registered Handlers, Named Receivers and Listeners - - - - Need to provide async request options - http://msdn.microsoft.com/en-us/library/86wf6409(VS.71).aspx - - - - The request filter is called before any request. - This request filter is executed globally. - - - - - The response action is called once the server response is available. - It will allow you to access raw response information. - This response action is executed globally. - Note that you should NOT consume the response stream as this is handled by ServiceStack - - - - - Gets the collection of headers to be added to outgoing requests. - - - - - Sets all baseUri properties, using the Format property for the SyncReplyBaseUri and AsyncOneWayBaseUri - - Base URI of the service - - - - Whether to Accept Gzip,Deflate Content-Encoding and to auto decompress responses - - - - - The user name for basic authentication - - - - - The password for basic authentication - - - - - Sets the username and the password for basic authentication. - - - - - The Authorization Bearer Token to send with this request - - - - - Gets or sets authentication information for the request. - Warning: It's recommened to use and for basic auth. - This property is only used for IIS level authentication. - - - - - Determines if the basic auth header should be sent with every request. - By default, the basic auth header is only sent when "401 Unauthorized" is returned. - - - - - Specifies if cookies should be stored - - - - - Called before request resend, when the initial request required authentication - - - - - If a request fails with a 401 Unauthorized and a BearerToken is present the client - will automatically fetch a new AccessToken using this RefreshToken and retry the request - - - - - Send the Request to get the AccessToken with the RefreshToken at a non-default location - - - - - The request filter is called before any request. - This request filter only works with the instance where it was set (not global). - - - - - The ResultsFilter is called before the Request is sent allowing you to return a cached response. - - - - - The ResultsFilterResponse is called before returning the response allowing responses to be cached. - - - - - Called with requestUri, ResponseType when server returns 304 NotModified - - - - - The response action is called once the server response is available. - It will allow you to access raw response information. - Note that you should NOT consume the response stream as this is handled by ServiceStack - - - - - Called by Send method if an exception occurs, for instance a System.Net.WebException because the server - returned an HTTP error code. Override if you want to handle specific exceptions or always want to parse the - response to a custom ErrorResponse DTO type instead of ServiceStack's ErrorResponse class. In case ex is a - System.Net.WebException, do not use - createWebRequest/getResponse/HandleResponse<TResponse> to parse the response - because that will result in the same exception again. Use - ThrowWebServiceException<YourErrorResponseType> to parse the response and to throw a - WebServiceException containing the parsed DTO. Then override Send to handle that exception. - - - - - APIs returning HttpWebResponse must be explicitly Disposed, e.g using (var res = client.Get(url)) { ... } - - - - - APIs returning HttpWebResponse must be explicitly Disposed, e.g using (var res = client.Get(url)) { ... } - - - - - APIs returning HttpWebResponse must be explicitly Disposed, e.g using (var res = client.Delete(url)) { ... } - - - - - APIs returning HttpWebResponse must be explicitly Disposed, e.g using (var res = client.Delete(url)) { ... } - - - - - APIs returning HttpWebResponse must be explicitly Disposed, e.g using (var res = client.Post(url)) { ... } - - - - - APIs returning HttpWebResponse must be explicitly Disposed, e.g using (var res = client.Put(url)) { ... } - - - - - APIs returning HttpWebResponse must be explicitly Disposed, e.g using (var res = client.CustomMethod(method,dto)) { ... } - - - - - APIs returning HttpWebResponse must be explicitly Disposed, e.g using (var res = client.CustomMethod(method,dto)) { ... } - - - - - APIs returning HttpWebResponse must be explicitly Disposed, e.g using (var res = client.Head(request)) { ... } - - - - - APIs returning HttpWebResponse must be explicitly Disposed, e.g using (var res = client.Head(request)) { ... } - - - - - APIs returning HttpWebResponse must be explicitly Disposed, e.g using (var res = client.Head(request)) { ... } - - - - - Compresses the specified text using the default compression method: Deflate - - The text. - Type of the compression. - - - - - Compresses the specified text using the default compression method: Deflate - - - - - Decompresses the specified gz buffer using the default compression method: Inflate - - The gz buffer. - Type of the compression. - - - - - Decompresses the specified gz buffer using inflate or gzip method - - Compressed stream - Type of the compression. Can be "gzip" or "deflate" - Decompressed stream - - - - Decompresses the specified gz buffer using the default compression method: Inflate - - - - - Donated by Ivan Korneliuk from his post: - http://korneliuk.blogspot.com/2012/08/servicestack-reusing-dtos.html - - Modified to only allow using routes matching the supplied HTTP Verb - - - - - Generate a url from a Request DTO. Pretty URL generation require Routes to be defined using `[Route]` on the Request DTO - - - - - The exception which is thrown when a validation error occurred. - This validation is serialized in a extra clean and human-readable way by ServiceStack. - - - - - Returns the first error code - - The error code. - - - - Used if we need to serialize this exception to XML - - - - - - Encapsulates a validation result. - - - - - Gets or sets the success code. - - The success code. - - - - Gets or sets the error code. - - The error code. - - - - Gets or sets the success message. - - The success message. - - - - Gets or sets the error message. - - The error message. - - - - The errors generated by the validation. - - - - - Returns True if the validation was successful (errors list is empty). - - - - - Constructs a new ValidationResult - - - - - Constructs a new ValidationResult - - A list of validation results - - - - Initializes a new instance of the class. - - The errors. - The success code. - The error code. - - - - Merge errors from another - - - - - - Adds the singleton instance of to an endpoint on the client. - - - Based on http://megakemp.wordpress.com/2009/02/06/managing-shared-cookies-in-wcf/ - - - - - Adds the singleton of the class to the client endpoint's message inspectors. - - The endpoint that is to be customized. - The client runtime to be customized. - - - - Maintains a copy of the cookies contained in the incoming HTTP response received from any service - and appends it to all outgoing HTTP requests. - - - This class effectively allows to send any received HTTP cookies to different services, - reproducing the same functionality available in ASMX Web Services proxies with the class. - Based on http://megakemp.wordpress.com/2009/02/06/managing-shared-cookies-in-wcf/ - - - - - Initializes a new instance of the class. - - - - - Gets the singleton instance. - - - - - Inspects a message after a reply message is received but prior to passing it back to the client application. - - The message to be transformed into types and handed back to the client application. - Correlation state data. - - - - Inspects a message before a request message is sent to a service. - - The message to be sent to the service. - The client object channel. - - Null since no message correlation is used. - - - - - Specifies if cookies should be stored - - - - - Naming convention for the request's Response DTO - - - - - Shortcut to get the ResponseStatus whether it's bare or inside a IHttpResult - - - - - - diff --git a/lib/net45/ServiceStack.Common.dll b/lib/net45/ServiceStack.Common.dll deleted file mode 100644 index 9e5eb00..0000000 Binary files a/lib/net45/ServiceStack.Common.dll and /dev/null differ diff --git a/lib/net45/ServiceStack.Common.xml b/lib/net45/ServiceStack.Common.xml deleted file mode 100644 index 33315b4..0000000 --- a/lib/net45/ServiceStack.Common.xml +++ /dev/null @@ -1,547 +0,0 @@ - - - - ServiceStack.Common - - - - - - Provide the an option for the callee to block until all commands are executed - - - - - - - Return T[0] when enumerable is null, safe to use in enumerations like foreach - - - - - Gets the textual description of the enum if it has one. e.g. - - - enum UserColors - { - [Description("Bright Red")] - BrightRed - } - UserColors.BrightRed.ToDescription(); - - - - - - - - Default base sleep time (milliseconds). - - - - - Default maximum back-off time before retrying a request - - - - - Maximum retry limit. Avoids integer overflow issues. - - - - - How long to sleep before next retry using Exponential BackOff delay with Full Jitter. - - - - - - Exponential BackOff Delay with Full Jitter - - - - - - - Exponential BackOff Delay with Full Jitter from: - https://github.com/aws/aws-sdk-java/blob/master/aws-java-sdk-core/src/main/java/com/amazonaws/retry/PredefinedBackoffStrategies.java - - - - - - - - - Calculate exponential retry back-off. - - - - - - - Calculate exponential retry back-off. - - - - - - - - - Invokes the action provided and returns true if no excpetion was thrown. - Otherwise logs the exception and returns false if an exception was thrown. - - The action. - - - - - Useful IPAddressExtensions from: - http://blogs.msdn.com/knom/archive/2008/12/31/ip-address-calculations-with-c-subnetmasks-networks.aspx - - - - - - Gets the ipv4 addresses from all Network Interfaces that have Subnet masks. - - - - - - Gets the ipv6 addresses from all Network Interfaces. - - - - - - Configure ServiceStack.Text JSON Serializer to use Templates JS parsing - - - - - Creates a Console Logger, that logs all messages to: System.Console - - Made public so its testable - - - - - Default logger is to Console.WriteLine - - Made public so its testable - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - - - Logs the specified message. - - - - - Logs the format. - - - - - Logs the specified message. - - - - - Creates a Debug Logger, that logs all messages to: System.Diagnostics.Debug - - Made public so its testable - - - - - Default logger is to System.Diagnostics.Debug.WriteLine - - Made public so its testable - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - - - Logs the specified message. - - - - - Logs the format. - - - - - Logs the specified message. - - - - - Categories of sql statements. - - - - - Unknown - - - - - DML statements that alter database state, e.g. INSERT, UPDATE - - - - - Statements that return a single record - - - - - Statements that iterate over a result set - - - - - A callback for ProfiledDbConnection and family - - - - - Called when a command starts executing - - - - - - - Called when a reader finishes executing - - - - - - - - Called when a reader is done iterating through the data - - - - - - Called when an error happens during execution of a command - - - - - - - - True if the profiler instance is active - - - - - Wraps a database connection, allowing sql execution timings to be collected when a session is started. - - - - - Returns a new that wraps , - providing query execution profiling. If profiler is null, no profiling will occur. - - Your provider-specific flavor of connection, e.g. SqlConnection, OracleConnection - The currently started or null. - Determines whether the ProfiledDbConnection will dispose the underlying connection. - - - - The underlying, real database connection to your db provider. - - - - - The current profiler instance; could be null. - - - - - The raw connection this is wrapping - - - - - Wrapper for a db provider factory to enable profiling - - - - - Every provider factory must have an Instance public field - - - - - Allow to re-init the provider factory. - - - - - - - proxy - - - - - - - proxy - - - - - proxy - - - - - proxy - - - - - proxy - - - - - proxy - - - - - proxy - - - - - proxy - - - - - proxy - - - - - proxy - - - - - Runs an action for a minimum of runForMs - - What to run - Minimum ms to run for - time elapsed in micro seconds - - - - Returns average microseconds an action takes when run for the specified runForMs - - What to run - How many times to run for each iteration - Minimum ms to run for - - - - - - - - Protect against XSS by cleaning non-standared User Input - - - - - Common functionality when creating adapters - - - - - Executes the specified expression. - - - The action. - - - - - Executes the specified action (for void methods). - - The action. - - - - Note: InMemoryLog keeps all logs in memory, so don't use it long running exceptions - - Returns a thread-safe InMemoryLog which you can use while *TESTING* - to provide a detailed analysis of your logs. - - - - - Use specified Layout - - - - - Use Layout with specified name - - - - - Render without any Layout - - - - - - - - - - Add additional Args available to all pages - - - - - Add additional template filters available to all pages - - - - - Return additional HTTP Headers in HTTP Requests - - - - - Specify the Content-Type of the Response - - - - - Transform the Page output using a chain of stream transformers - - - - - Transform the entire output using a chain of stream transformers - - - - - Available transformers that can transform context filter stream outputs - - - - - Don't allow access to specified filters - - - - - The last error thrown by a filter - - - - - The StackTrace where the Last Error Occured - - - - - What argument errors should be binded to - - - - - Whether to skip execution of all page filters and just write template string fragments - - - - - Overrides Context to specify whether to Ignore or Continue executing filters on error - - - - - Whether to always rethrow Exceptions - - - - - Immediately halt execution of the page - - - - - Rethrow fatal exceptions thrown on incorrect API usage - - - - - Available transformers that can transform context filter stream outputs - - - - How long in between checking for modified pages - - - - Render render filter exceptions in-line where filter is located - - - - - What argument to assign Fitler Exceptions to - - - - - Whether to - - - - - Creates a Unified Resource Name (URN) with the following formats: - - - urn:{TypeName}:{IdFieldValue} e.g. urn:UserSession:1 - - urn:{TypeName}:{IdFieldName}:{IdFieldValue} e.g. urn:UserSession:UserId:1 - - - - - diff --git a/lib/net45/ServiceStack.Interfaces.dll b/lib/net45/ServiceStack.Interfaces.dll deleted file mode 100644 index d8b06e4..0000000 Binary files a/lib/net45/ServiceStack.Interfaces.dll and /dev/null differ diff --git a/lib/net45/ServiceStack.Interfaces.xml b/lib/net45/ServiceStack.Interfaces.xml deleted file mode 100644 index b8dec9e..0000000 --- a/lib/net45/ServiceStack.Interfaces.xml +++ /dev/null @@ -1,2416 +0,0 @@ - - - - ServiceStack.Interfaces - - - - - Gets or sets parameter name with which allowable values will be associated. - - - - - Generates body DTO parameter only if `DisableAutoDtoInBodyParam = false` - - - - - Always generate body DTO for request - - - - - Never generate body DTO for request - - - - - The overall description of an API. Used by Swagger. - - - - - Create or not body param for request type when verb is POST or PUT. - Value can be one of the constants of `GenerateBodyParam` class: - `GenerateBodyParam.IfNotDisabled` (default value), `GenerateBodyParam.Always`, `GenerateBodyParam.Never` - - - - - Tells if body param is required - - - - - Gets or sets verb to which applies attribute. By default applies to all verbs. - - - - - Gets or sets parameter type: It can be only one of the following: path, query, body, form, or header. - - - - - Gets or sets unique name for the parameter. Each name must be unique, even if they are associated with different paramType values. - - - - Other notes on the name field: - If paramType is body, the name is used only for UI and codegeneration. - If paramType is path, the name field must correspond to the associated path segment from the path field in the api object. - If paramType is query, the name field corresponds to the query param name. - - - - - - Gets or sets the human-readable description for the parameter. - - - - - For path, query, and header paramTypes, this field must be a primitive. For body, this can be a complex or container datatype. - - - - - Fine-tuned primitive type definition. - - - - - For path, this is always true. Otherwise, this field tells the client whether or not the field must be supplied. - - - - - For query params, this specifies that a comma-separated list of values can be passed to the API. For path and body types, this field cannot be true. - - - - - Gets or sets route to which applies attribute, matches using StartsWith. By default applies to all routes. - - - - - Whether to exclude this property from being included in the ModelSchema - - - - - The status code of a response - - - - - The description of a response status code - - - - - HTTP status code of response - - - - - End-user description of the data which is returned by response - - - - - If set to true, the response is default for all non-explicity defined status codes - - - - - Open API schema definition type for response - - - - - The Password Hasher provider used to hash users passwords, by default uses the same algorithm used by ASP.NET Identity v3: - PBKDF2 with HMAC-SHA256, 128-bit salt, 256-bit subkey, 10000 iterations. - - - - - The first byte marker used to specify the format used. The default implementation uses the following format: - { 0x01, prf (UInt32), iter count (UInt32), salt length (UInt32), salt, subkey } - - - - - Returns a boolean indicating whether the matches the . - The out parameter indicates whether the password should be re-hashed. - - The hash value for a user's stored password. - The password supplied for comparison. - Implementations of this method should be time consistent. - - - - Returns a hashed representation of the supplied . - - The password to hash. - A hashed representation of the supplied . - - - - A common interface implementation that is implemented by most cache providers - - - - - Removes the specified item from the cache. - - The identifier for the item to delete. - - true if the item was successfully removed from the cache; false otherwise. - - - - - Removes the cache for all the keys provided. - - The keys. - - - - Retrieves the specified item from the cache. - - - The identifier for the item to retrieve. - - The retrieved item, or null if the key was not found. - - - - - Increments the value of the specified key by the given amount. - The operation is atomic and happens on the server. - A non existent value at key starts at 0 - - The identifier for the item to increment. - The amount by which the client wants to increase the item. - - The new value of the item or -1 if not found. - - The item must be inserted into the cache before it can be changed. The item must be inserted as a . The operation only works with values, so -1 always indicates that the item was not found. - - - - Increments the value of the specified key by the given amount. - The operation is atomic and happens on the server. - A non existent value at key starts at 0 - - The identifier for the item to increment. - The amount by which the client wants to decrease the item. - - The new value of the item or -1 if not found. - - The item must be inserted into the cache before it can be changed. The item must be inserted as a . The operation only works with values, so -1 always indicates that the item was not found. - - - - Adds a new item into the cache at the specified cache key only if the cache is empty. - - The key used to reference the item. - The object to be inserted into the cache. - - true if the item was successfully stored in the cache; false otherwise. - - The item does not expire unless it is removed due memory pressure. - - - - Sets an item into the cache at the cache key specified regardless if it already exists or not. - - - - - Replaces the item at the cachekey specified only if an items exists at the location already. - - - - - Invalidates all data on the cache. - - - - - Retrieves multiple items from the cache. - The default value of T is set for all keys that do not exist. - - The list of identifiers for the items to retrieve. - - a Dictionary holding all items indexed by their key. - - - - - Sets multiple items to the cache. - - - The values. - - - - Extend ICacheClient API with shared, non-core features - - - - - A light interface over a cache client. - This interface was inspired by Enyim.Caching.MemcachedClient - - Only the methods that are intended to be used are required, if you require - extra functionality you can uncomment the unused methods below as they have been - implemented in DdnMemcachedClient - - - - - Removes the specified item from the cache. - - The identifier for the item to delete. - - true if the item was successfully removed from the cache; false otherwise. - - - - - Removes the cache for all the keys provided. - - The keys. - - - - Retrieves the specified item from the cache. - - The identifier for the item to retrieve. - - The retrieved item, or null if the key was not found. - - - - - Increments the value of the specified key by the given amount. The operation is atomic and happens on the server. - - The identifier for the item to increment. - The amount by which the client wants to increase the item. - - The new value of the item or -1 if not found. - - The item must be inserted into the cache before it can be changed. The item must be inserted as a . The operation only works with values, so -1 always indicates that the item was not found. - - - - Increments the value of the specified key by the given amount. The operation is atomic and happens on the server. - - The identifier for the item to increment. - The amount by which the client wants to decrease the item. - - The new value of the item or -1 if not found. - - The item must be inserted into the cache before it can be changed. The item must be inserted as a . The operation only works with values, so -1 always indicates that the item was not found. - - - - Inserts an item into the cache with a cache key to reference its location. - - The key used to reference the item. - The object to be inserted into the cache. - - true if the item was successfully stored in the cache; false otherwise. - - The item does not expire unless it is removed due memory pressure. - - - - Inserts an item into the cache with a cache key to reference its location. - - The key used to reference the item. - The object to be inserted into the cache. - The time when the item is invalidated in the cache. - true if the item was successfully stored in the cache; false otherwise. - - - - Removes all data from the cache. - - - - - Retrieves multiple items from the cache. - - The list of identifiers for the items to retrieve. - - a Dictionary holding all items indexed by their key. - - - - - Removes items from cache that have keys matching the specified wildcard pattern - - The wildcard, where "*" means any sequence of characters and "?" means any single character. - - - - Removes items from the cache based on the specified regular expression pattern - - Regular expression pattern to search cache keys - - - - A Users Session - - - - - Store any object at key - - - - - - - Set a typed value at key - - - - - - - - Get a typed value at key - - - - - - - - Remove the value at key - - - - - - - Delete all Cache Entries (requires ICacheClient that implements IRemoveByPattern) - - - - - Retrieves a User Session - - - - - Gets the Session Bag for this request, creates one if it doesn't exist. - - - - - - - - Gets the Session Bag for this request, creates one if it doesn't exist. - Only for ASP.NET apps. Uses the HttpContext.Current singleton. - - - - - Create a Session Bag using a custom sessionId - - - - - - - Allow delegation of dependencies to other IOC's - - - - - Resolve Constructor Dependency - - - - - - - Resolve a dependency from the AppHost's IOC - - - - - - - BelongToAttribute - Use to indicate that a join column belongs to another table. - - - - - Compute attribute. - Use to indicate that a property is a Calculated Field - - - - - Decimal length attribute. - - - - - Mark types that are to be excluded from specified features - - - - - Explicit foreign key name. If it's null, or empty, the FK name will be autogenerated as before. - - - - - Hash Key Attribute used to specify which property is the HashKey, e.g. in DynamoDb. - - - - - IgnoreAttribute - Use to indicate that a property is not a field in the table - properties with this attribute are ignored when building sql sentences - - - - - Ignore this property in SELECT statements - - - - - Ignore this property in UPDATE statements - - - - - Ignore this property in INSERT statements - - - - - Decorate any type or property with adhoc info - - - - - Primary key attribute. - use to indicate that property is part of the pk - - - - - Range Key Attribute used to specify which property is the RangeKey, e.g. in DynamoDb. - - - - - ReturnAttribute - Use to indicate that a property should be included in the - returning/output clause of INSERT sql sentences - - - - - Used to indicate that property is a row version incremented automatically by the database - - - - - Used to annotate an Entity with its DB schema - - - - - - For providers that want a cleaner API with a little more perf - - - - - - Generic ResponseStatus for when Response Type can't be inferred. - In schemaless formats like JSON, JSV it has the same shape as a typed Response DTO - - - - - Contract indication that the Response DTO has a ResponseStatus - - - - - Refresh file stats for this node if supported - - - - - How many results to skip - - - - - How many results to return - - - - - List of fields to sort by, can order by multiple fields and inverse order, e.g: Id,-Amount - - - - - List of fields to sort by descending, can order by multiple fields and inverse order, e.g: -Id,Amount - - - - - Include aggregate data like Total, COUNT(*), COUNT(DISTINCT Field), Sum(Amount), etc - - - - - The fields to return - - - - - Populate with Include=Total or if registered with: AutoQueryFeature { IncludeTotal = true } - - - - - Unifed API to create any missing Tables, Data Structure Schema - or perform any other tasks dependencies require to run at Startup. - - - - - Provide unique, incrementing sequences. Used in PocoDynamo. - - - - - Marker interfaces - - - - - The minimal API Surface to capture the most common SYNC requests. - Convenience extensions over these core API's available in ServiceGatewayExtensions - - - - - Normal Request/Reply Services - - - - - Auto Batched Request/Reply Requests - - - - - OneWay Service - - - - - Auto Batched OneWay Requests - - - - - The minimal API Surface to capture the most common ASYNC requests. - Convenience extensions over these core API's available in ServiceGatewayExtensions - - - - - Normal Request/Reply Services - - - - - Auto Batched Request/Reply Requests - - - - - OneWay Service - - - - - Auto Batched OneWay Requests - - - - - Helper ILog implementation that reduces effort to extend or use without needing to impl each API - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - - - Logs the specified message. - - - - - Logs the format. - - - - - Logs the specified message. - - - - - Logs a message in a running application - - - - - Gets or sets a value indicating whether this instance is debug enabled. - - - true if this instance is debug enabled; otherwise, false. - - - - - Logs a Debug message. - - The message. - - - - Logs a Debug message and exception. - - The message. - The exception. - - - - Logs a Debug format message. - - The format. - The args. - - - - Logs a Error message. - - The message. - - - - Logs a Error message and exception. - - The message. - The exception. - - - - Logs a Error format message. - - The format. - The args. - - - - Logs a Fatal message. - - The message. - - - - Logs a Fatal message and exception. - - The message. - The exception. - - - - Logs a Error format message. - - The format. - The args. - - - - Logs an Info message and exception. - - The message. - - - - Logs an Info message and exception. - - The message. - The exception. - - - - Logs an Info format message. - - The format. - The args. - - - - Logs a Warning message. - - The message. - - - - Logs a Warning message and exception. - - The message. - The exception. - - - - Logs a Warning format message. - - The format. - The args. - - - - Factory to create ILog instances - - - - - Gets the logger. - - - - - Gets the logger. - - - - - Pushes a property on the current log context, returning an - to remove the property again from the async context. - - Property Name - Property Value - Interface for popping the property off the stack - - - - Pushes a property on the current log context, returning an - to remove the property again from the async context. - - The logger - Property Name - Property Value - Interface for popping the property off the stack - - - - Logs a Debug format message and exception. - - Exception related to the event. - The format. - The args. - - - - Logs an Info format message and exception. - - Exception related to the event. - The format. - The args. - - - - Logs a Warn format message and exception. - - Exception related to the event. - The format. - The args. - - - - Logs an Error format message and exception. - - Exception related to the event. - The format. - The args. - - - - Logs a Fatal format message and exception. - - Exception related to the event. - The format. - The args. - - - - Logs a Debug format message and exception. - - The logger - Exception related to the event. - The format. - The args. - - - - Logs an Info format message and exception. - - The logger - Exception related to the event. - The format. - The args. - - - - Logs a Warn format message and exception. - - The logger - Exception related to the event. - The format. - The args. - - - - Logs an Error format message and exception. - - The logger - Exception related to the event. - The format. - The args. - - - - Logs a Fatal format message and exception. - - The logger - Exception related to the event. - The format. - The args. - - - - Logging API for this library. You can inject your own implementation otherwise - will use the DebugLogFactory to write to System.Diagnostics.Debug - - - - - Gets or sets the log factory. - Use this to override the factory that is used to create loggers - - - - - Gets the logger. - - - - - Gets the logger. - - - - - Default logger is to System.Diagnostics.Debug.Print - - Made public so its testable - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - - - Logs the specified message. - - - - - Logs the format. - - - - - Logs the specified message. - - - - - Creates a Debug Logger, that logs all messages to: System.Diagnostics.Debug - - Made public so its testable - - - - - StringBuilderLog writes to shared StringBuffer. - Made public so its testable - - - - - Logs the specified message. - - - - - Logs the format. - - - - - Logs the specified message. - - The message. - - - - Creates a test Logger, that stores all log messages in a member list - - - - - Tests logger which stores all log messages in a member list which can be examined later - - Made public so its testable - - - - - Initializes a new instance of the class. - - The type. - - - - Initializes a new instance of the class. - - The type. - - - - Logs the specified message. - - The message. - The exception. - - - - Logs the format. - - The message. - The args. - - - - Logs the specified message. - - The message. - - - - Single threaded message handler that can process all messages - of a particular message type. - - - - - The type of the message this handler processes - - - - - The MqClient processing the message - - - - - Process all messages pending - - - - - - Process messages from a single queue. - - - The queue to process - A predicate on whether to continue processing the next message if any - - - - - Process a single message - - - - - Get Current Stats for this Message Handler - - - - - - Publish the specified message into the durable queue @queueName - - - - - Publish the specified message into the transient queue @queueName - - - - - Synchronous blocking get. - - - - - Non blocking get message - - - - - Acknowledge the message has been successfully received or processed - - - - - Negative acknowledgement the message was not processed correctly - - - - - Create a typed message from a raw MQ Response artefact - - - - - Create a temporary Queue for Request / Reply - - - - - - Simple definition of an MQ Host - - - - - Factory to create consumers and producers that work with this service - - - - - Register DTOs and hanlders the MQ Server will process - - - - - - - Register DTOs and hanlders the MQ Server will process using specified number of threads - - - - - - - - Register DTOs and hanlders the MQ Server will process - - - - - - - - Register DTOs and hanlders the MQ Server will process using specified number of threads - - - - - - - - - Get Total Current Stats for all Message Handlers - - - - - - Get a list of all message types registered on this MQ Host - - - - - Get the status of the service. Potential Statuses: Disposed, Stopped, Stopping, Starting, Started - - - - - - Get a Stats dump - - - - - - Start the MQ Host if not already started. - - - - - Stop the MQ Host if not already stopped. - - - - - Basic implementation of IMessage[T] - - - - - - Util static generic class to create unique queue names for types - - - - - - Util class to create unique queue names for runtime types - - - - - For messaging exceptions that should by-pass the messaging service's configured - retry attempts and store the message straight into the DLQ - - - - - Specify a VirtualPath or Layout for a Code Page - - - - - Specify static page arguments - - - - - Wrap the common redis list operations under a IList[string] interface. - - - - - Redis transaction for typed client - - - - - - Interface to redis typed pipeline - - - - - interface to queueable operation using typed redis client - - - - - - Returns a high-level typed client API - - - - - - Returns a Read/Write client (The default) using the hosts defined in ReadWriteHosts - - - - - - Returns a ReadOnly client using the hosts defined in ReadOnlyHosts. - - - - - - Returns a Read/Write ICacheClient (The default) using the hosts defined in ReadWriteHosts - - - - - - Returns a ReadOnly ICacheClient using the hosts defined in ReadOnlyHosts. - - - - - - Returns a Read/Write client (The default) using the hosts defined in ReadWriteHosts - - - - - - Returns a ReadOnly client using the hosts defined in ReadOnlyHosts. - - - - - - Returns a Read/Write ICacheClient (The default) using the hosts defined in ReadWriteHosts - - - - - - Returns a ReadOnly ICacheClient using the hosts defined in ReadOnlyHosts. - - - - - - The number of active subscriptions this client has - - - - - Registered handler called after client *Subscribes* to each new channel - - - - - Registered handler called when each message is received - - - - - Registered handler called when each channel is unsubscribed - - - - - Subscribe to channels by name - - - - - - Subscribe to channels matching the supplied patterns - - - - - - Interface to redis transaction - - - - - Base transaction interface, shared by typed and non-typed transactions - - - - - Interface to redis pipeline - - - - - Pipeline interface shared by typed and non-typed pipelines - - - - - interface to operation that can queue commands - - - - - Interface to operations that allow queued commands to be completed - - - - - A log entry added by the IRequestLogger - - - - - Error information pertaining to a particular named field. - Used for returning multiple field validation errors.s - - - - - Common ResponseStatus class that should be present on all response DTO's - - - - - Initializes a new instance of the class. - - A response status without an errorcode == success - - - - - Initializes a new instance of the class. - A response status with an errorcode == failure - - - - - Initializes a new instance of the class. - A response status with an errorcode == failure - - - - - Holds the custom ErrorCode enum if provided in ValidationException - otherwise will hold the name of the Exception type, e.g. typeof(Exception).Name - - A value of non-null means the service encountered an error while processing the request. - - - - - A human friendly error message - - - - - The Server StackTrace when DebugMode is enabled - - - - - For multiple detailed validation errors. - Can hold a specific error message for each named field. - - - - - For additional custom metadata about the error - - - - - Decorate on Request DTO's to alter the accessibility of a service and its visibility on /metadata pages - - - - - Allow access but hide from metadata to requests from Localhost only - - - - - Allow access but hide from metadata to requests from Localhost and Local Intranet only - - - - - Restrict access and hide from metadata to requests from Localhost only - - - - - Restrict access and hide from metadata to requests from Localhost and Local Intranet only - - - - - Restrict access and hide from metadata to requests from External only - - - - - Sets a single access restriction - - Restrict Access to. - - - - Restrict access to any of the specified access scenarios - - Access restrictions - - - - Sets a single metadata Visibility restriction - - Restrict metadata Visibility to. - - - - Restrict metadata visibility to any of the specified access scenarios - - Visibility restrictions - - - - Restrict access and metadata visibility to any of the specified access scenarios - - The restrict access to scenarios. - - - - Restrict access and metadata visibility to any of the specified access scenarios - - The restrict access to scenarios. - - - - Returns the allowed set of scenarios based on the user-specified restrictions - - - - - - - Converts from a User intended restriction to a flag with all the allowed attribute flags set, e.g: - - If No Network restrictions were specified all Network access types are allowed, e.g: - restrict EndpointAttributes.None => ... 111 - - If a Network restriction was specified, only it will be allowed, e.g: - restrict EndpointAttributes.LocalSubnet => ... 010 - - The returned Enum will have a flag with all the allowed attributes set - - - - - - - Used to decorate Request DTO's to associate a RESTful request - path mapping with a service. Multiple attributes can be applied to - each request DTO, to map multiple paths to the service. - - - - - Initializes an instance of the class. - - - The path template to map to the request. See - RouteAttribute.Path - for details on the correct format. - - - - - Initializes an instance of the class. - - - The path template to map to the request. See - RouteAttribute.Path - for details on the correct format. - - A comma-delimited list of HTTP verbs supported by the - service. If unspecified, all verbs are assumed to be supported. - - - - Gets or sets the path template to be mapped to the request. - - - A value providing the path mapped to - the request. Never . - - - Some examples of valid paths are: - - - "/Inventory" - "/Inventory/{Category}/{ItemId}" - "/Inventory/{ItemPath*}" - - - Variables are specified within "{}" - brackets. Each variable in the path is mapped to the same-named property - on the request DTO. At runtime, ServiceStack will parse the - request URL, extract the variable values, instantiate the request DTO, - and assign the variable values into the corresponding request properties, - prior to passing the request DTO to the service object for processing. - - It is not necessary to specify all request properties as - variables in the path. For unspecified properties, callers may provide - values in the query string. For example: the URL - "http://services/Inventory?Category=Books&ItemId=12345" causes the same - request DTO to be processed as "http://services/Inventory/Books/12345", - provided that the paths "/Inventory" (which supports the first URL) and - "/Inventory/{Category}/{ItemId}" (which supports the second URL) - are both mapped to the request DTO. - - Please note that while it is possible to specify property values - in the query string, it is generally considered to be less RESTful and - less desirable than to specify them as variables in the path. Using the - query string to specify property values may also interfere with HTTP - caching. - - The final variable in the path may contain a "*" suffix - to grab all remaining segments in the path portion of the request URL and assign - them to a single property on the request DTO. - For example, if the path "/Inventory/{ItemPath*}" is mapped to the request DTO, - then the request URL "http://services/Inventory/Books/12345" will result - in a request DTO whose ItemPath property contains "Books/12345". - You may only specify one such variable in the path, and it must be positioned at - the end of the path. - - - - - Gets or sets short summary of what the route does. - - - - - Gets or sets longer text to explain the behaviour of the route. - - - - - Gets or sets a comma-delimited list of HTTP verbs supported by the service, such as - "GET,PUT,POST,DELETE". - - - A providing a comma-delimited list of HTTP verbs supported - by the service, or empty if all verbs are supported. - - - - - Used to rank the precedences of route definitions in reverse routing. - i.e. Priorities below 0 are auto-generated have less precedence. - - - - - Must match rule defined in Config.RequestRules or Regex expression with format: - "{IHttpRequest.Field} =~ {pattern}", e.g "PathInfo =~ \/[0-9]+$" - - - - - Fallback routes have the lowest precedence, i.e. after normal Routes, static files or any matching Catch All Handlers. - - - - - Additional checks to notify of invalid state, configuration or use of ServiceStack libraries. - Can disable StrictMode checks with Config.StrictMode = false; - - - - - Get or sets tag name - - - - - Get or sets operation verbs for which the attribute be applied - - - - - Adds an expired Set-Cookie instruction for clients to delete this Cookie - - - - - Adds a new Set-Cookie instruction for ss-pid - - - - - Adds a new Set-Cookie instruction for ss-id - - - - - Order in which Request Filters are executed. - <0 Executed before global request filters - >0 Executed after global request filters - - - - - A new shallow copy of this filter is used on every request. - - - - - - This interface can be implemented by an attribute - which adds an request filter for the specific request DTO the attribute marked. - - - - - The request filter is executed before the service. - - The http request wrapper - The http response wrapper - The request DTO - - - - This interface can be implemented by an attribute - which adds an request filter for the specific request DTO the attribute marked. - - - - - The request filter is executed before the service. - - The http request wrapper - The http response wrapper - The request DTO - - - - Order in which Response Filters are executed. - <0 Executed before global response filters - >0 Executed after global response filters - - - - - A new shallow copy of this filter is used on every request. - - - - - - This interface can be implemented by an attribute - which adds an response filter for the specific response DTO the attribute marked. - - - - - The response filter is executed after the service - - The http request wrapper - The http response wrapper - - - - This interface can be implemented by an attribute - which adds an response filter for the specific response DTO the attribute marked. - - - - - The response filter is executed after the service - - The http request wrapper - The http response wrapper - - - - A thin wrapper around ASP.NET or HttpListener's HttpRequest - - - - - The HttpResponse - - - - - The HTTP Verb - - - - - The IP Address of the X-Forwarded-For header, null if null or empty - - - - - The Port number of the X-Forwarded-Port header, null if null or empty - - - - - The http or https scheme of the X-Forwarded-Proto header, null if null or empty - - - - - The value of the X-Real-IP header, null if null or empty - - - - - The value of the Accept HTTP Request Header - - - - - A thin wrapper around ASP.NET or HttpListener's HttpResponse - - - - - Adds a new Set-Cookie instruction to Response - - - - - - Removes all pending Set-Cookie instructions - - - - - The HTTP Response Status - - - - - The HTTP Response Status Code - - - - - The HTTP Status Description - - - - - The HTTP Response ContentType - - - - - Additional HTTP Headers - - - - - Additional HTTP Cookies - - - - - Response DTO - - - - - if not provided, get's injected by ServiceStack - - - - - Holds the request call context - - - - - The padding length written with the body, to be added to ContentLength of body - - - - - Serialize the Response within the specified scope - - - - - Whether this HttpResult allows Partial Response - - - - - Write a partial content result - - - - - Whether this HttpResult allows Partial Response - - - - - Write a partial content result - - - - - A thin wrapper around each host's Request e.g: ASP.NET, HttpListener, MQ, etc - - - - - The underlying ASP.NET or HttpListener HttpRequest - - - - - The Response API for this Request - - - - - The name of the service being called (e.g. Request DTO Name) - - - - - The Verb / HttpMethod or Action for this request - - - - - Different Attribute Enum flags classifying this Request - - - - - Optional preferences for the processing of this Request - - - - - The Request DTO, after it has been deserialized. - - - - - The request ContentType - - - - - Whether this was an Internal Request - - - - - The UserAgent for the request - - - - - A Dictionary of HTTP Cookies sent with this Request - - - - - The expected Response ContentType for this request - - - - - Whether the ResponseContentType has been explicitly overrided or whether it was just the default - - - - - Attach any data to this request that all filters and services can access. - - - - - The HTTP Headers in a NameValueCollection - - - - - The ?query=string in a NameValueCollection - - - - - The HTTP POST'ed Form Data in a NameValueCollection - - - - - Buffer the Request InputStream so it can be re-read - - - - - The entire string contents of Request.InputStream - - - - - - Relative URL containing /path/info?query=string - - - - - The Absolute URL for the request - - - - - The Remote IP as reported by Request.UserHostAddress - - - - - The Remote Ip as reported by X-Forwarded-For, X-Real-IP or Request.UserHostAddress - - - - - The value of the Authorization Header used to send the Api Key, null if not available - - - - - e.g. is https or not - - - - - Array of different Content-Types accepted by the client - - - - - The normalized /path/info for the request - - - - - The original /path/info as sent - - - - - The Request Body Input Stream - - - - - The size of the Request Body if provided - - - - - Access to the multi-part/formdata files posted on this request - - - - - The value of the Referrer, null if not available - - - - - Log every service request - - - - - Turn On/Off Session Tracking - - - - - Turn On/Off Raw Request Body Tracking - - - - - Turn On/Off Tracking of Responses - - - - - Turn On/Off Tracking of Exceptions - - - - - Limit logging to only Service Requests - - - - - Limit access to /requestlogs service to role - - - - - Don't log matching requests - - - - - Don't log requests of these types. - - - - - Don't log request bodys for services with sensitive information. - By default Auth and Registration requests are hidden. - - - - - Log a request - - The RequestContext - Request DTO - Response DTO or Exception - How long did the Request take - - - - View the most recent logs - - - - - - - Implement on services that need access to the RequestContext - - - - - Implement on Request DTOs that need access to the raw Request Stream - - - - - The raw Http Request Input Stream - - - - - A thin wrapper around each host's Response e.g: ASP.NET, HttpListener, MQ, etc - - - - - The underlying ASP.NET, .NET Core or HttpListener HttpResponse - - - - - The corresponding IRequest API for this Response - - - - - The Response Status Code - - - - - The Response Status Description - - - - - The Content-Type for this Response - - - - - Add a Header to this Response - - - - - - - Remove an existing Header added on this Response - - - - - - Get an existing Header added to this Response - - - - - - - Return a Redirect Response to the URL specified - - - - - - The Response Body Output Stream - - - - - The Response DTO - - - - - Buffer the Response OutputStream so it can be written in 1 batch - - - - - Signal that this response has been handled and no more processing should be done. - When used in a request or response filter, no more filters or processing is done on this request. - - - - - Calls Response.End() on ASP.NET HttpResponse otherwise is an alias for Close(). - Useful when you want to prevent ASP.NET to provide it's own custom error page. - - - - - Response.Flush() and OutputStream.Flush() seem to have different behaviour in ASP.NET - - - - - Flush this Response Output Stream Async - - - - - - - Gets a value indicating whether this instance is closed. - - - - - Set the Content Length in Bytes for this Response - - - - - - Whether the underlying TCP Connection for this Response should remain open - - - - - Whether the HTTP Response Headers have already been written. - - - - - Responsible for executing the operation within the specified context. - - The operation types. - - - - Returns the first matching RestPath - - - - - Executes the MQ DTO request. - - - - - Executes the MQ DTO request with the supplied requestContext - - - - - Executes the DTO request under the supplied requestContext. - - - - - Executes the DTO request under supplied context and option to Execute Request/Response Filters. - - - - - Executes the DTO request with an empty RequestContext. - - - - - Executes the DTO request with the current HttpRequest and option to Execute Request/Response Filters. - - - - - Allow the registration of user-defined routes for services - - - - - Maps the specified REST path to the specified request DTO. - - The type of request DTO to map - the path to. - The path to map the request DTO to. - See RouteAttribute.Path - for details on the correct format. - The same instance; - never . - - - - Maps the specified REST path to the specified request DTO, and - specifies the HTTP verbs supported by the path. - - The type of request DTO to map - the path to. - The path to map the request DTO to. - See RouteAttribute.Path - for details on the correct format. - - The comma-delimited list of HTTP verbs supported by the path, - such as "GET,PUT,DELETE". Specify empty or - to indicate that all verbs are supported. - - The same instance; - never . - - - - Maps the specified REST path to the specified request DTO, - specifies the HTTP verbs supported by the path, and indicates - the default MIME type of the returned response. - - - The type of request DTO to map the path to. - - The path to map the request DTO to. - See RouteAttribute.Path - for details on the correct format. - - The comma-delimited list of HTTP verbs supported by the path, - such as "GET,PUT,DELETE". - - The same instance; - never . - - - - Maps the specified REST path to the specified request DTO, - specifies the HTTP verbs supported by the path, and indicates - the default MIME type of the returned response. - - - Used to rank the precedences of route definitions in reverse routing. - i.e. Priorities below 0 are auto-generated have less precedence. - - - - - Maps the specified REST path to the specified request DTO, - specifies the HTTP verbs supported by the path, and indicates - the default MIME type of the returned response. - - - The type of request DTO to map the path to. - - The path to map the request DTO to. - See RouteAttribute.Path - for details on the correct format. - - The comma-delimited list of HTTP verbs supported by the path, - such as "GET,PUT,DELETE". - - - The short summary of what the REST does. - - - The longer text to explain the behaviour of the REST. - - The same instance; - never . - - - - Maps the specified REST path to the specified request DTO, - specifies the HTTP verbs supported by the path, and indicates - the default MIME type of the returned response. - - - The type of request DTO to map the path to. - - The path to map the request DTO to. - See RouteAttribute.Path - for details on the correct format. - - The comma-delimited list of HTTP verbs supported by the path, - such as "GET,PUT,DELETE". - - - The short summary of what the REST does. - - - The longer text to explain the behaviour of the REST. - - - Must match rule defined in Config.RequestRules or Regex expression with format: - "{IHttpRequest.Field} =~ {pattern}", e.g "PathInfo =~ \/[0-9]+$" - - The same instance; - never . - - - diff --git a/lib/net45/ServiceStack.Server.dll b/lib/net45/ServiceStack.Server.dll deleted file mode 100644 index aa82ebd..0000000 Binary files a/lib/net45/ServiceStack.Server.dll and /dev/null differ diff --git a/lib/net45/ServiceStack.Server.xml b/lib/net45/ServiceStack.Server.xml deleted file mode 100644 index 47a8964..0000000 --- a/lib/net45/ServiceStack.Server.xml +++ /dev/null @@ -1,305 +0,0 @@ - - - - ServiceStack.Server - - - - - Base rcon class. - - - - - Event delegate when disconnected from the server. - - - - - - Delegate for async callbacks. - - - - - - - Disconnected event. - - - - - Rcon connection socket. Always set to null when not connected. - - - - - Unique ID for each message. - - - - - Registered callbacks. - - - - - Create a new instance of rcon. - - Endpoint to connect to, usually the game server with query port. - - - - Attempts to connect to the game server for rcon operations. - - True if connection established, false otherwise. - - - - Processes a received packet. - - The packet. - - - - Disconnects from rcon. - - - - - Sends message to the server. - - Words to send. - - - - Game server endpoint. - - - - - Last exception that occured during operation. - - - - - Connected? - - - - - Gets the next unique ID to be used for transmisson. Read this before sending to pair responses to sent messages. - - - - - Exception thrown when attempting to send on a non-connected service client. - - - - - True if the packet originated on the server. - - - - - True if the packet is a response from a sent packet. - - - - - Sequence identifier. Unique to the connection. - - - - - Words. - - - - - Contains methods required for encoding and decoding rcon packets. - - - - - Decodes a packet. - - The packet. - A packet object. - - - - Decodes the packet header. - - - - - - - Decodes words in a packet. - - - - - - - Encodes a packet for transmission to the server. - - - - - - - - - - Encodes a packet header. - - - - - - - - - Encodes words. - - - - - - - Processing client used to interface with ServiceStack and allow a message to be processed. - Not an actual client. - - - - - Publish the specified message into the durable queue @queueName - - - - - Publish the specified message into the transient queue @queueName - - - - - Synchronous blocking get. - - - - - Non blocking get message - - - - - Hosting services via a binary-safe TCP-based protocol. - - - - - Factory to create consumers and producers that work with this service - - - - - Register DTOs and hanlders the MQ Host will process - - - - - - - Get Total Current Stats for all Message Handlers - - - - - - Get a Stats dump - - - - - - Start the MQ Host. Stops the server and restarts if already started. - - - - - Stop the MQ Host if not already stopped. - - - - - Processes a received packet. - - The packet. - - - - Creates a Redis MQ Server that processes each message on its own background thread. - i.e. if you register 3 handlers it will create 7 background threads: - - 1 listening to the Redis MQ Subscription, getting notified of each new message - - 3x1 Normal InQ for each message handler - - 3x1 PriorityQ for each message handler (Turn off with DisablePriorityQueues) - - When RedisMqServer Starts it creates a background thread subscribed to the Redis MQ Topic that - listens for new incoming messages. It also starts 2 background threads for each message type: - - 1 for processing the services Priority Queue and 1 processing the services normal Inbox Queue. - - Priority Queue's can be enabled on a message-per-message basis by specifying types in the - OnlyEnablePriortyQueuesForTypes property. The DisableAllPriorityQueues property disables all Queues. - - The Start/Stop methods are idempotent i.e. It's safe to call them repeatedly on multiple threads - and the Redis MQ Server will only have Started or Stopped once. - - - - - Execute global transformation or custom logic before a request is processed. - Must be thread-safe. - - - - - Execute global transformation or custom logic on the response. - Must be thread-safe. - - - - - Execute global error handler logic. Must be thread-safe. - - - - - If you only want to enable priority queue handlers (and threads) for specific msg types - - - - - Don't listen on any Priority Queues - - - - - Opt-in to only publish responses on this white list. - Publishes all responses by default. - - - - - Transient message queues are a one-pass message queue service that starts - processing messages when Start() is called. Any subsequent Start() calls - while the service is running is ignored. - - The transient service will continue to run until all messages have been - processed after which time it will shutdown all processing until Start() is called again. - - - - diff --git a/lib/net45/ServiceStack.Text.dll b/lib/net45/ServiceStack.Text.dll deleted file mode 100644 index 0e2e83f..0000000 Binary files a/lib/net45/ServiceStack.Text.dll and /dev/null differ diff --git a/lib/net45/ServiceStack.Text.xml b/lib/net45/ServiceStack.Text.xml deleted file mode 100644 index cd0e03e..0000000 --- a/lib/net45/ServiceStack.Text.xml +++ /dev/null @@ -1,1612 +0,0 @@ - - - - ServiceStack.Text - - - - - Utils to load types - - - - - Find the type from the name supplied - - [typeName] or [typeName, assemblyName] - - - - - The top-most interface of the given type, if any. - - - - - Find type if it exists - - - - The type if it exists - - - - If AlwaysUseUtc is set to true then convert all DateTime to UTC. If PreserveUtc is set to true then UTC dates will not convert to local - - - - - - - Repairs an out-of-spec XML date/time string which incorrectly uses a space instead of a 'T' to separate the date from the time. - These string are occasionally generated by SQLite and can cause errors in OrmLite when reading these columns from the DB. - - The XML date/time string to repair - The repaired string. If no repairs were made, the original string is returned. - - - - WCF Json format: /Date(unixts+0000)/ - - - - - - - WCF Json format: /Date(unixts+0000)/ - - - - - - - Get the type(string) constructor if exists - - The type. - - - - - micro optimizations: using flags instead of value.IndexOfAny(EscapeChars) - - - - - - - Class to hold - - - - - - A fast, standards-based, serialization-issue free DateTime serailizer. - - - - - Determines whether this serializer can create the specified type from a string. - - The type. - - true if this instance [can create from string] the specified type; otherwise, false. - - - - - Parses the specified value. - - The value. - - - - - Deserializes from reader. - - The reader. - - - - - Serializes to string. - - The value. - - - - - Serializes to writer. - - The value. - The writer. - - - - Sets which format to use when serializing TimeSpans - - - - - if the is configured - to take advantage of specification, - to support user-friendly serialized formats, ie emitting camelCasing for JSON - and parsing member names and enum values in a case-insensitive manner. - - - - - if the is configured - to support web-friendly serialized formats, ie emitting lowercase_underscore_casing for JSON - - - - - Define how property names are mapped during deserialization - - - - - Gets or sets a value indicating if the framework should throw serialization exceptions - or continue regardless of deserialization errors. If the framework - will throw; otherwise, it will parse as many fields as possible. The default is . - - - - - Gets or sets a value indicating if the framework should always convert to UTC format instead of local time. - - - - - Gets or sets a value indicating if the framework should skip automatic conversions. - Dates will be handled literally, any included timezone encoding will be lost and the date will be treaded as DateTimeKind.Local - Utc formatted input will result in DateTimeKind.Utc output. Any input without TZ data will be set DateTimeKind.Unspecified - This will take precedence over other flags like AlwaysUseUtc - JsConfig.DateHandler = DateHandler.ISO8601 should be used when set true for consistent de/serialization. - - - - - Gets or sets a value indicating if the framework should always assume is in UTC format if Kind is Unspecified. - - - - - Gets or sets whether we should append the Utc offset when we serialize Utc dates. Defaults to no. - Only supported for when the JsConfig.DateHandler == JsonDateHandler.TimestampOffset - - - - - Gets or sets a value indicating if unicode symbols should be serialized as "\uXXXX". - - - - - Gets or sets a value indicating if HTML entity chars [> < & = '] should be escaped as "\uXXXX". - - - - - Gets or sets a value indicating if the framework should call an error handler when - an exception happens during the deserialization. - - Parameters have following meaning in order: deserialized entity, property name, parsed value, property type, caught exception. - - - - If set to true, Interface types will be prefered over concrete types when serializing. - - - - - If set to true, Interface types will be prefered over concrete types when serializing. - - - - - Sets the maximum depth to avoid circular dependencies - - - - - Set this to enable your own type construction provider. - This is helpful for integration with IoC containers where you need to call the container constructor. - Return null if you don't know how to construct the type and the parameterless constructor will be used. - - - - - Always emit type info for this type. Takes precedence over ExcludeTypeInfo - - - - - Never emit type info for this type - - - - - if the is configured - to take advantage of specification, - to support user-friendly serialized formats, ie emitting camelCasing for JSON - and parsing member names and enum values in a case-insensitive manner. - - - - - Define custom serialization fn for BCL Structs - - - - - Opt-in flag to set some Value Types to be treated as a Ref Type - - - - - Whether there is a fn (raw or otherwise) - - - - - Define custom raw serialization fn - - - - - Define custom serialization hook - - - - - Define custom after serialization hook - - - - - Define custom deserialization fn for BCL Structs - - - - - Define custom raw deserialization fn for objects - - - - - Exclude specific properties of this type from being serialized - - - - - The property names on target types must match property names in the JSON source - - - - - The property names on target types may not match the property names in the JSON source - - - - - Uses the xsd format like PT15H10M20S - - - - - Uses the standard .net ToString method of the TimeSpan class - - - - - Get JSON string value converted to T - - - - - Get JSON string value - - - - - Get JSON string value - - - - - Get unescaped string value - - - - - Get unescaped string value - - - - - Write JSON Array, Object, bool or number values as raw string - - - - - Creates an instance of a Type from a string value - - - - - Parses the specified value. - - The value. - - - - - Shortcut escape when we're sure value doesn't contain any escaped chars - - - - - - - Given a character as utf32, returns the equivalent string provided that the character - is legal json. - - - - - - - Micro-optimization keep pre-built char arrays saving a .ToCharArray() + function call (see .net implementation of .Write(string)) - - - - - Searches the string for one or more non-printable characters. - - The string to search. - - True if there are any characters that require escaping. False if the value can be written verbatim. - - Micro optimizations: since quote and backslash are the only printable characters requiring escaping, removed previous optimization - (using flags instead of value.IndexOfAny(EscapeChars)) in favor of two equality operations saving both memory and CPU time. - Also slightly reduced code size by re-arranging conditions. - TODO: Possible Linq-only solution requires profiling: return value.Any(c => !c.IsPrintable() || c == QuoteChar || c == EscapeChar); - - - - - Implement the serializer using a more static approach - - - - - - Implement the serializer using a more static approach - - - - - - Pretty Thread-Safe cache class from: - http://code.google.com/p/dapper-dot-net/source/browse/Dapper/SqlMapper.cs - - This is a micro-cache; suitable when the number of terms is controllable (a few hundred, for example), - and strictly append-only; you cannot change existing values. All key matches are on **REFERENCE** - equality. The type is fully thread-safe. - - - - - Represents an individual object, allowing access to members by-name - - - - - Get or Set the value of a named member for the underlying object - - - - - The object represented by this instance - - - - - Use the target types definition of equality - - - - - Obtain the hash of the target object - - - - - Use the target's definition of a string representation - - - - - Wraps an individual object, allowing by-name access to that instance - - - - - Provides by-name member-access to objects of a given type - - - - - Does this type support new instances via a parameterless constructor? - - - - - Create a new instance of this type - - - - - Provides a type-specific accessor, allowing by-name access for all objects of that type - - The accessor is cached internally; a pre-existing accessor may be returned - - - - Get or set the value of a named member on the target instance - - - - - Generic implementation of object pooling pattern with predefined pool size limit. The main - purpose is that limited number of frequently used objects can be kept in the pool for - further recycling. - - Notes: - 1) it is not the goal to keep all returned objects. Pool is not meant for storage. If there - is no space in the pool, extra returned objects will be dropped. - - 2) it is implied that if object was obtained from a pool, the caller will return it back in - a relatively short time. Keeping checked out objects for long durations is ok, but - reduces usefulness of pooling. Just new up your own. - - Not returning objects to the pool in not detrimental to the pool's work, but is a bad practice. - Rationale: - If there is no intent for reusing the object, do not use pool - just use "new". - - - - - Not using System.Func{T} because this file is linked into the (debugger) Formatter, - which does not have that type (since it compiles against .NET 2.0). - - - - - Produces an instance. - - - Search strategy is a simple linear probing which is chosen for it cache-friendliness. - Note that Free will try to store recycled objects close to the start thus statistically - reducing how far we will typically search. - - - - - Returns objects to the pool. - - - Search strategy is a simple linear probing which is chosen for it cache-friendliness. - Note that Free will try to store recycled objects close to the start thus statistically - reducing how far we will typically search in Allocate. - - - - - Removes an object from leak tracking. - - This is called when an object is returned to the pool. It may also be explicitly - called if an object allocated from the pool is intentionally not being returned - to the pool. This can be of use with pooled arrays if the consumer wants to - return a larger array to the pool than was originally allocated. - - - - - this is RAII object to automatically release pooled object when its owning pool - - - - - Shared object pool for roslyn - - Use this shared pool if only concern is reducing object allocations. - if perf of an object pool itself is also a concern, use ObjectPool directly. - - For example, if you want to create a million of small objects within a second, - use the ObjectPool directly. it should have much less overhead than using this. - - - - - pool that uses default constructor with 100 elements pooled - - - - - pool that uses default constructor with 20 elements pooled - - - - - pool that uses string as key with StringComparer.OrdinalIgnoreCase as key comparer - - - - - pool that uses string as element with StringComparer.OrdinalIgnoreCase as element comparer - - - - - pool that uses string as element with StringComparer.Ordinal as element comparer - - - - - Used to reduce the # of temporary byte[]s created to satisfy serialization and - other I/O requests - - - - pooled memory : 4K * 512 = 4MB - - - - Manages pools of RecyclableMemoryStream objects. - - - There are two pools managed in here. The small pool contains same-sized buffers that are handed to streams - as they write more data. - - For scenarios that need to call GetBuffer(), the large pool contains buffers of various sizes, all - multiples of LargeBufferMultiple (1 MB by default). They are split by size to avoid overly-wasteful buffer - usage. There should be far fewer 8 MB buffers than 1 MB buffers, for example. - - - - - Generic delegate for handling events without any arguments. - - - - - Delegate for handling large buffer discard reports. - - Reason the buffer was discarded. - - - - Delegate for handling reports of stream size when streams are allocated - - Bytes allocated. - - - - Delegate for handling periodic reporting of memory use statistics. - - Bytes currently in use in the small pool. - Bytes currently free in the small pool. - Bytes currently in use in the large pool. - Bytes currently free in the large pool. - - - - pools[0] = 1x largeBufferMultiple buffers - pools[1] = 2x largeBufferMultiple buffers - etc., up to maximumBufferSize - - - - - Initializes the memory manager with the default block/buffer specifications. - - - - - Initializes the memory manager with the given block requiredSize. - - Size of each block that is pooled. Must be > 0. - Each large buffer will be a multiple of this value. - Buffers larger than this are not pooled - blockSize is not a positive number, or largeBufferMultiple is not a positive number, or maximumBufferSize is less than blockSize. - maximumBufferSize is not a multiple of largeBufferMultiple - - - - The size of each block. It must be set at creation and cannot be changed. - - - - - All buffers are multiples of this number. It must be set at creation and cannot be changed. - - - - - Gets or sets the maximum buffer size. - - Any buffer that is returned to the pool that is larger than this will be - discarded and garbage collected. - - - - Number of bytes in small pool not currently in use - - - - - Number of bytes currently in use by stream from the small pool - - - - - Number of bytes in large pool not currently in use - - - - - Number of bytes currently in use by streams from the large pool - - - - - How many blocks are in the small pool - - - - - How many buffers are in the large pool - - - - - How many bytes of small free blocks to allow before we start dropping - those returned to us. - - - - - How many bytes of large free buffers to allow before we start dropping - those returned to us. - - - - - Maximum stream capacity in bytes. Attempts to set a larger capacity will - result in an exception. - - A value of 0 indicates no limit. - - - - Whether to save callstacks for stream allocations. This can help in debugging. - It should NEVER be turned on generally in production. - - - - - Whether dirty buffers can be immediately returned to the buffer pool. E.g. when GetBuffer() is called on - a stream and creates a single large buffer, if this setting is enabled, the other blocks will be returned - to the buffer pool immediately. - Note when enabling this setting that the user is responsible for ensuring that any buffer previously - retrieved from a stream which is subsequently modified is not used after modification (as it may no longer - be valid). - - - - - Removes and returns a single block from the pool. - - A byte[] array - - - - Returns a buffer of arbitrary size from the large buffer pool. This buffer - will be at least the requiredSize and always be a multiple of largeBufferMultiple. - - The minimum length of the buffer - The tag of the stream returning this buffer, for logging if necessary. - A buffer of at least the required size. - - - - Returns the buffer to the large pool - - The buffer to return. - The tag of the stream returning this buffer, for logging if necessary. - buffer is null - buffer.Length is not a multiple of LargeBufferMultiple (it did not originate from this pool) - - - - Returns the blocks to the pool - - Collection of blocks to return to the pool - The tag of the stream returning these blocks, for logging if necessary. - blocks is null - blocks contains buffers that are the wrong size (or null) for this memory manager - - - - Retrieve a new MemoryStream object with no tag and a default initial capacity. - - A MemoryStream. - - - - Retrieve a new MemoryStream object with the given tag and a default initial capacity. - - A tag which can be used to track the source of the stream. - A MemoryStream. - - - - Retrieve a new MemoryStream object with the given tag and at least the given capacity. - - A tag which can be used to track the source of the stream. - The minimum desired capacity for the stream. - A MemoryStream. - - - - Retrieve a new MemoryStream object with the given tag and at least the given capacity, possibly using - a single continugous underlying buffer. - - Retrieving a MemoryStream which provides a single contiguous buffer can be useful in situations - where the initial size is known and it is desirable to avoid copying data between the smaller underlying - buffers to a single large one. This is most helpful when you know that you will always call GetBuffer - on the underlying stream. - A tag which can be used to track the source of the stream. - The minimum desired capacity for the stream. - Whether to attempt to use a single contiguous buffer. - A MemoryStream. - - - - Retrieve a new MemoryStream object with the given tag and with contents copied from the provided - buffer. The provided buffer is not wrapped or used after construction. - - The new stream's position is set to the beginning of the stream when returned. - A tag which can be used to track the source of the stream. - The byte buffer to copy data from. - The offset from the start of the buffer to copy from. - The number of bytes to copy from the buffer. - A MemoryStream. - - - - Triggered when a new block is created. - - - - - Triggered when a new block is created. - - - - - Triggered when a new large buffer is created. - - - - - Triggered when a new stream is created. - - - - - Triggered when a stream is disposed. - - - - - Triggered when a stream is finalized. - - - - - Triggered when a stream is finalized. - - - - - Triggered when a user converts a stream to array. - - - - - Triggered when a large buffer is discarded, along with the reason for the discard. - - - - - Periodically triggered to report usage statistics. - - - - - MemoryStream implementation that deals with pooling and managing memory streams which use potentially large - buffers. - - - This class works in tandem with the RecylableMemoryStreamManager to supply MemoryStream - objects to callers, while avoiding these specific problems: - 1. LOH allocations - since all large buffers are pooled, they will never incur a Gen2 GC - 2. Memory waste - A standard memory stream doubles its size when it runs out of room. This - leads to continual memory growth as each stream approaches the maximum allowed size. - 3. Memory copying - Each time a MemoryStream grows, all the bytes are copied into new buffers. - This implementation only copies the bytes when GetBuffer is called. - 4. Memory fragmentation - By using homogeneous buffer sizes, it ensures that blocks of memory - can be easily reused. - - The stream is implemented on top of a series of uniformly-sized blocks. As the stream's length grows, - additional blocks are retrieved from the memory manager. It is these blocks that are pooled, not the stream - object itself. - - The biggest wrinkle in this implementation is when GetBuffer() is called. This requires a single - contiguous buffer. If only a single block is in use, then that block is returned. If multiple blocks - are in use, we retrieve a larger buffer from the memory manager. These large buffers are also pooled, - split by size--they are multiples of a chunk size (1 MB by default). - - Once a large buffer is assigned to the stream the blocks are NEVER again used for this stream. All operations take place on the - large buffer. The large buffer can be replaced by a larger buffer from the pool as needed. All blocks and large buffers - are maintained in the stream until the stream is disposed (unless AggressiveBufferReturn is enabled in the stream manager). - - - - - - All of these blocks must be the same size - - - - - This is only set by GetBuffer() if the necessary buffer is larger than a single block size, or on - construction if the caller immediately requests a single large buffer. - - If this field is non-null, it contains the concatenation of the bytes found in the individual - blocks. Once it is created, this (or a larger) largeBuffer will be used for the life of the stream. - - - - - This list is used to store buffers once they're replaced by something larger. - This is for the cases where you have users of this class that may hold onto the buffers longer - than they should and you want to prevent race conditions which could corrupt the data. - - - - - Unique identifier for this stream across it's entire lifetime - - Object has been disposed - - - - A temporary identifier for the current usage of this stream. - - Object has been disposed - - - - Gets the memory manager being used by this stream. - - Object has been disposed - - - - Callstack of the constructor. It is only set if MemoryManager.GenerateCallStacks is true, - which should only be in debugging situations. - - - - - Callstack of the Dispose call. It is only set if MemoryManager.GenerateCallStacks is true, - which should only be in debugging situations. - - - - - This buffer exists so that WriteByte can forward all of its calls to Write - without creating a new byte[] buffer on every call. - - - - - Allocate a new RecyclableMemoryStream object. - - The memory manager - - - - Allocate a new RecyclableMemoryStream object - - The memory manager - A string identifying this stream for logging and debugging purposes - - - - Allocate a new RecyclableMemoryStream object - - The memory manager - A string identifying this stream for logging and debugging purposes - The initial requested size to prevent future allocations - - - - Allocate a new RecyclableMemoryStream object - - The memory manager - A string identifying this stream for logging and debugging purposes - The initial requested size to prevent future allocations - An initial buffer to use. This buffer will be owned by the stream and returned to the memory manager upon Dispose. - - - - Returns the memory used by this stream back to the pool. - - Whether we're disposing (true), or being called by the finalizer (false) - This method is not thread safe and it may not be called more than once. - - - - Equivalent to Dispose - - - - - Gets or sets the capacity - - Capacity is always in multiples of the memory manager's block size, unless - the large buffer is in use. Capacity never decreases during a stream's lifetime. - Explicitly setting the capacity to a lower value than the current value will have no effect. - This is because the buffers are all pooled by chunks and there's little reason to - allow stream truncation. - - Object has been disposed - - - - Gets the number of bytes written to this stream. - - Object has been disposed - - - - Gets the current position in the stream - - Object has been disposed - - - - Whether the stream can currently read - - - - - Whether the stream can currently seek - - - - - Always false - - - - - Whether the stream can currently write - - - - - Returns a single buffer containing the contents of the stream. - The buffer may be longer than the stream length. - - A byte[] buffer - IMPORTANT: Doing a Write() after calling GetBuffer() invalidates the buffer. The old buffer is held onto - until Dispose is called, but the next time GetBuffer() is called, a new buffer from the pool will be required. - Object has been disposed - - - - Returns a new array with a copy of the buffer's contents. You should almost certainly be using GetBuffer combined with the Length to - access the bytes in this stream. Calling ToArray will destroy the benefits of pooled buffers, but it is included - for the sake of completeness. - - Object has been disposed - - - - Reads from the current position into the provided buffer - - Destination buffer - Offset into buffer at which to start placing the read bytes. - Number of bytes to read. - The number of bytes read - buffer is null - offset or count is less than 0 - offset subtracted from the buffer length is less than count - Object has been disposed - - - - Writes the buffer to the stream - - Source buffer - Start position - Number of bytes to write - buffer is null - offset or count is negative - buffer.Length - offset is not less than count - Object has been disposed - - - - Returns a useful string for debugging. This should not normally be called in actual production code. - - - - - Writes a single byte to the current position in the stream. - - byte value to write - Object has been disposed - - - - Reads a single byte from the current position in the stream. - - The byte at the current position, or -1 if the position is at the end of the stream. - Object has been disposed - - - - Sets the length of the stream - - value is negative or larger than MaxStreamLength - Object has been disposed - - - - Sets the position to the offset from the seek location - - How many bytes to move - From where - The new position - Object has been disposed - offset is larger than MaxStreamLength - Invalid seek origin - Attempt to set negative position - - - - Synchronously writes this stream's bytes to the parameter stream. - - Destination stream - Important: This does a synchronous write, which may not be desired in some situations - - - - Release the large buffer (either stores it for eventual release or returns it immediately). - - - - - Allow Type to be deserialized into late-bould object Types using __type info - - - - - Allow Type to be deserialized into late-bould object Types using __type info - - - - - Reusable StringBuilder ThreadStatic Cache - - - - - Alternative Reusable StringBuilder ThreadStatic Cache - - - - - An optimized representation of a substring. - - - - - Initializes an instance of the struct. - - - The original . The includes the whole . - - - - - Initializes an instance of the struct. - - The original used as buffer. - The offset of the segment within the . - The length of the segment. - - - - Gets the buffer for this . - - - - - Gets the offset within the buffer for this . - - - - - Gets the length of this . - - - - - Gets the value of this segment as a . - - - - - Gets whether or not this contains a valid value. - - - - - - - - Indicates whether the current object is equal to another object of the same type. - - An object to compare with this object. - true if the current object is equal to the other parameter; otherwise, false. - - - - Indicates whether the current object is equal to another object of the same type. - - An object to compare with this object. - One of the enumeration values that specifies the rules to use in the comparison. - true if the current object is equal to the other parameter; otherwise, false. - - - - Checks if the specified is equal to the current . - - The to compare with the current . - true if the specified is equal to the current ; otherwise, false. - - - - Checks if the specified is equal to the current . - - The to compare with the current . - One of the enumeration values that specifies the rules to use in the comparison. - true if the specified is equal to the current ; otherwise, false. - - - - - This GetHashCode is expensive since it allocates on every call. - However this is required to ensure we retain any behavior (such as hash code randomization) that - string.GetHashCode has. - - - - - Checks if two specified have the same value. - - The first to compare, or null. - The second to compare, or null. - true if the value of is the same as the value of ; otherwise, false. - - - - Checks if two specified have different values. - - The first to compare, or null. - The second to compare, or null. - true if the value of is different from the value of ; otherwise, false. - - - - Checks if the beginning of this matches the specified when compared using the specified . - - The to compare. - One of the enumeration values that specifies the rules to use in the comparison. - true if matches the beginning of this ; otherwise, false. - - - - Checks if the end of this matches the specified when compared using the specified . - - The to compare. - One of the enumeration values that specifies the rules to use in the comparison. - true if matches the end of this ; otherwise, false. - - - - Retrieves a substring from this . - The substring starts at the position specified by and has the specified . - - The zero-based starting character position of a substring in this . - The number of characters in the substring. - A that is equivalent to the substring of length that begins at in this - - - - Retrieves a that represents a substring from this . - The starts at the position specified by and has the specified . - - The zero-based starting character position of a substring in this . - The number of characters in the substring. - A that is equivalent to the substring of length that begins at in this - - - - Gets the zero-based index of the first occurrence of the character in this . - The search starts at and examines a specified number of character positions. - - The Unicode character to seek. - The zero-based index position at which the search starts. - The number of characters to examine. - The zero-based index position of from the beginning of the if that character is found, or -1 if it is not. - - - - Gets the zero-based index of the first occurrence of the character in this . - The search starts at . - - The Unicode character to seek. - The zero-based index position at which the search starts. - The zero-based index position of from the beginning of the if that character is found, or -1 if it is not. - - - - Gets the zero-based index of the first occurrence of the character in this . - - The Unicode character to seek. - The zero-based index position of from the beginning of the if that character is found, or -1 if it is not. - - - - Removes all leading and trailing whitespaces. - - The trimmed . - - - - Removes all leading whitespaces. - - The trimmed . - - - - Removes all trailing whitespaces. - - The trimmed . - - - - Returns the represented by this or String.Empty if the does not contain a value. - - The represented by this or String.Empty if the does not contain a value. - - - - Reusable StringWriter ThreadStatic Cache - - - - - Alternative Reusable StringWriter ThreadStatic Cache - - - - - A class to allow the conversion of doubles to string representations of - their exact decimal values. The implementation aims for readability over - efficiency. - - Courtesy of @JonSkeet - http://www.yoda.arachsys.com/csharp/DoubleConverter.cs - - - - - - - - How many digits are *after* the decimal point - - - - - Constructs an arbitrary decimal expansion from the given long. - The long must not be negative. - - - - - Multiplies the current expansion by the given amount, which should - only be 2 or 5. - - - - - Shifts the decimal point; a negative value makes - the decimal expansion bigger (as fewer digits come after the - decimal place) and a positive value makes the decimal - expansion smaller. - - - - - Removes leading/trailing zeroes from the expansion. - - - - - Converts the value to a proper decimal string representation. - - - - - Creates an instance of a Type from a string value - - - - - Determines whether the specified type is convertible from string. - - The type. - - true if the specified type is convertible from string; otherwise, false. - - - - - Parses the specified value. - - The value. - - - - - Parses the specified type. - - The type. - The value. - - - - - Useful extension method to get the Dictionary[string,string] representation of any POCO type. - - - - - - Recursively prints the contents of any POCO object in a human-friendly, readable format - - - - - - Print Dump to Console.WriteLine - - - - - Print string.Format to Console.WriteLine - - - - - Parses the specified value. - - The value. - - - - - Populate an object with Example data. - - - - - - - Populates the object with example data. - - - Tracks how deeply nested we are - - - - - Public Code API to register commercial license for ServiceStack. - - - - - Internal Utilities to verify licensing - - - - - Maps the path of a file in the context of a VS project in a Console App - - the relative path - the absolute path - Assumes static content is two directories above the /bin/ directory, - eg. in a unit test scenario the assembly would be in /bin/Debug/. - - - - Maps the path of a file in the context of a VS 2017+ multi-platform project in a Console App - - the relative path - the absolute path - Assumes static content is two directories above the /bin/ directory, - eg. in a unit test scenario the assembly would be in /bin/Debug/net45 - - - - Maps the path of a file in the bin\ folder of a self-hosted scenario - - the relative path - the absolute path - Assumes static content is copied to /bin/ folder with the assemblies - - - - Maps the path of a file in an ASP.NET hosted scenario - - the relative path - the absolute path - Assumes static content is in the parent folder of the /bin/ directory - - - - Add a Property attribute at runtime. - Not threadsafe, should only add attributes on Startup. - - - - - Add a Property attribute at runtime. - Not threadsafe, should only add attributes on Startup. - - - - - Implement the serializer using a more static approach - - - - - - Creates a new instance of type. - First looks at JsConfig.ModelFactory before falling back to CreateInstance - - - - - Creates a new instance of type. - First looks at JsConfig.ModelFactory before falling back to CreateInstance - - - - - Creates a new instance from the default constructor of type - - - - - @jonskeet: Collection of utility methods which operate on streams. - r285, February 26th 2009: http://www.yoda.arachsys.com/csharp/miscutil/ - - - - - Reads the given stream up to the end, returning the data as a byte - array. - - - - - Reads the given stream up to the end, returning the data as a byte - array, using the given buffer size. - - - - - Reads the given stream up to the end, returning the data as a byte - array, using the given buffer for transferring data. Note that the - current contents of the buffer is ignored, so the buffer needn't - be cleared beforehand. - - - - - Copies all the data from one stream into another. - - - - - Copies all the data from one stream into another, using a buffer - of the given size. - - - - - Copies all the data from one stream into another, using the given - buffer for transferring data. Note that the current contents of - the buffer is ignored, so the buffer needn't be cleared beforehand. - - - - - Reads exactly the given number of bytes from the specified stream. - If the end of the stream is reached before the specified amount - of data is read, an exception is thrown. - - - - - Reads into a buffer, filling it completely. - - - - - Reads exactly the given number of bytes from the specified stream, - into the given buffer, starting at position 0 of the array. - - - - - Reads exactly the given number of bytes from the specified stream, - into the given buffer, starting at position 0 of the array. - - - - - Same as ReadExactly, but without the argument checks. - - - - - Converts from base: 0 - 62 - - The source. - From. - To. - - - - - Skip the encoding process for 'safe strings' - - - - - - diff --git a/lib/net45/ServiceStack.dll b/lib/net45/ServiceStack.dll deleted file mode 100644 index 53da497..0000000 Binary files a/lib/net45/ServiceStack.dll and /dev/null differ diff --git a/lib/net45/ServiceStack.xml b/lib/net45/ServiceStack.xml deleted file mode 100644 index 7a9b257..0000000 --- a/lib/net45/ServiceStack.xml +++ /dev/null @@ -1,7120 +0,0 @@ - - - - ServiceStack - - - - - Inherit from this class if you want to host your web services inside an - ASP.NET application. - - - - - Get an IAppHost container. - Note: Registering dependencies should only be done during setup/configuration - stage and remain immutable there after for thread-safety. - - - - - - - Inherit from this class if you want to host your web services inside a - Console Application, Windows Service, etc. - - Usage of HttpListener allows you to host webservices on the same port (:80) as IIS - however it requires admin user privillages. - - - - - Exécute les tâches définies par l'application associées à la libération ou à la redéfinition des ressources non managées. - - 2 - - - - Default redirct URL if [Authenticate] attribute doesn't permit access. - - - - - Default redirct URL if Required Role or Permission attributes doesn't permit access. - - - - - Indicates that the request dto, which is associated with this attribute, - requires authentication. - - - - - Restrict authentication to a specific . - For example, if this attribute should only permit access - if the user is authenticated with , - you should set this property to . - - - - - Redirect the client to a specific URL if authentication failed. - If this property is null, simply `401 Unauthorized` is returned. - - - - - Enable the authentication feature and configure the AuthService. - - - - - Whether to Create Digest Auth MD5 Hash when Creating/Updating Users. - Defaults to only creating Digest Auth when DigestAuthProvider is registered. - - - - - Should UserName or Emails be saved in AuthRepository in LowerCase - - - - - The Interface Auth Repositories need to implement to support API Keys - - - - - The POCO Table used to persist API Keys - - - - - Enable access to protected Services using API Keys - - - - - Modify the registration of GetApiKeys and RegenerateApiKeys Services - - - - - How much entropy should the generated keys have. (default 24) - - - - - Generate different keys for different environments. (default live,test) - - - - - Different types of Keys each user can have. (default secret) - - - - - Whether to automatically expire keys. (default no expiry) - - - - - Automatically create the ApiKey Table for AuthRepositories which need it. (default true) - - - - - Whether to only allow access via API Key from a secure connection. (default true) - - - - - Change how API Key is generated - - - - - Run custom filter after API Key is created - - - - - Cache the User Session so it can be reused between subsequent API Key Requests - - - - - Whether to allow API Keys in 'apikey' QueryString or FormData - - - - - Specify all roles to be used by this application - - - - - Only allow access to users in specified roles - - - - - Inject logic into existing services by introspecting the request and injecting your own - validation logic. Exceptions thrown will have the same behaviour as if the service threw it. - - If a non-null object is returned the request will short-circuit and return that response. - - The instance of the service - GET,POST,PUT,DELETE - - Response DTO; non-null will short-circuit execution and return that response - - - - Get AuthProviders Registered in AuthFeature Plugin. - - specific provider, or null for all providers - - - - - - Get specific AuthProvider - - - - - - - Public API entry point to authenticate via code - - - null; if already autenticated otherwise a populated instance of AuthResponse - - - - The specified may change as a side-effect of this method. If - subsequent code relies on current data be sure to reload - the session istance via . - - - - - Conveneint base class with empty virtual methods so subclasses only need to override the hooks they need. - - - - - Allows specifying a global fallback config that if exists is formatted with the Provider as the first arg. - E.g. this appSetting with the TwitterAuthProvider: - oauth.CallbackUrl="http://localhost:11001/auth/{0}" - Would result in: - oauth.CallbackUrl="http://localhost:11001/auth/twitter" - - - - - - Remove the Users Session - - - - - - - - Create a Facebook App at: https://developers.facebook.com/apps - The Callback URL for your app should match the CallbackUrl provided. - - - - - Create an App at: https://github.com/settings/applications/new - The Callback URL for your app should match the CallbackUrl provided. - - - - - Download Yammer User Info given its ID. - - - The Yammer User ID. - - - The User info in JSON format. - - - - Yammer provides a method to retrieve current user information via - "https://www.yammer.com/api/v1/users/current.json". - - - However, to ensure consistency with the rest of the Auth codebase, - the explicit URL will be used, where [:id] denotes the User ID: - "https://www.yammer.com/api/v1/users/[:id].json" - - - Refer to: https://developer.yammer.com/restapi/ for full documentation. - - - - - - Remove the Users Session - - - - - - - - The entry point for all AuthProvider providers. Runs inside the AuthService so exceptions are treated normally. - Overridable so you can provide your own Auth implementation. - - - - - Determine if the current session is already authenticated with this AuthProvider - - - - - Fired when a new Session is created - - - - - - Fired before Session is resolved - - - - - Override with Custom Validation logic to Assert if User is allowed to Authenticate. - Returning a non-null response invalidates Authentication with IHttpResult response returned to client. - - - - - Thread-safe In memory UserAuth data store so it can be used without a dependency on Redis. - - - - - Used to Issue and process JWT Tokens and registers ConvertSessionToToken Service to convert Sessions to JWT Tokens - - - - - Whether to populate the Bearer Token in the AuthenticateResponse - - - - - Enable access to protected Services using JWT Tokens - - - - - Different HMAC Algorithms supported - - - - - Different RSA Signing Algorithms supported - - - - - Whether to only allow access via API Key from a secure connection. (default true) - - - - - Run custom filter after JWT Header is created - - - - - Run custom filter after JWT Payload is created - - - - - Run custom filter after session is restored from a JWT Token - - - - - Whether to encrypt JWE Payload (default false). - Uses RSA-OAEP for Key Encryption and AES/128/CBC HMAC SHA256 for Conent Encryption - - - - - Which Hash Algorithm should be used to sign the JWT Token. (default HS256) - - - - - Whether to only allow processing of JWT Tokens using the configured HashAlgorithm. (default true) - - - - - The Issuer to embed in the token. (default ssjwt) - - - - - The Audience to embed in the token. (default null) - - - - - Embed Multiple Audiences in the token. (default none) - A JWT is valid if it contains ANY audience in this List - - - - - What Id to use to identify the Key used to sign the token. (default First 3 chars of Base64 Key) - - - - - The AuthKey used to sign the JWT Token - - - - - Allow verification using multiple Auth keys - - - - - The RSA Private Key used to Sign the JWT Token when RSA is used - - - - - Convenient overload to intialize the Private Key via exported XML - - - - - The RSA Public Key used to Verify the JWT Token when RSA is used - - - - - Convenient overload to intialize the Public Key via exported XML - - - - - Allow verification using multiple public keys - - - - - How long should JWT Tokens be valid for. (default 14 days) - - - - - How long should JWT Refresh Tokens be valid for. (default 365 days) - - - - - Convenient overload to initialize ExpireTokensIn with an Integer - - - - - Allow custom logic to invalidate JWT Tokens - - - - - Allow custom logic to invalidate Refresh Tokens - - - - - Whether to invalidate all JWT Tokens issued before a specified date. - - - - - Modify the registration of ConvertSessionToToken Service - - - - - Allow JWT in ?ss-tok=jwt QueryString. (default false) - - - - - Allow JWT in ss-tok=jwt HTML POST FormData. (default false) - - - - - Whether to automatically remove expired or invalid cookies - - - - - Whether to also Include Token in ConvertSessionToTokenResponse - - - - - Return token payload which is both verified and still valid - - - - - Return token payload which has been verified to be created using the configured encryption key. - - - - - The entry point for all AuthProvider providers. Runs inside the AuthService so exceptions are treated normally. - Overridable so you can provide your own Auth implementation. - - - - - - - - - Sets the CallbackUrl and session.ReferrerUrl if not set and initializes the session tokens for this AuthProvider - - - - - - - - - Create Odnoklassniki App at: http://www.odnoklassniki.ru/devaccess - The Callback URL for your app should match the CallbackUrl provided. - - NB: They claim they use OAuth 2.0, but they in fact don't. - http://apiok.ru/wiki/display/api/Authorization+OAuth+2.0 - - - - - Allow utilizing an alternative PBKDF2 implementation. - - - - - The PBKDF2 strategy PasswordHasher implementation that's used for hashing PBKDF2 passwords. - - - - - The Password Hasher provider used to hash users passwords which uses the same algorithm used by ASP.NET Identity v3: - PBKDF2 with HMAC-SHA256, 128-bit salt, 256-bit subkey, 10000 iterations. - - - - - Gets the number of iterations used when hashing passwords using PBKDF2. Default is 10,000. - - - - - The number of iterations used when hashing passwords using PBKDF2. Default is 10,000. - - - - - The Format Version specifier for this PasswordHasher embedded as the first byte in password hashes. - - - - - Returns a hashed representation of the supplied for the specified . - - The user whose password is to be hashed. - The password to hash. - A hashed representation of the supplied for the specified . - - - - Specifies the PRF which should be used for the key derivation algorithm. - - - - - The HMAC algorithm (RFC 2104) using the SHA-1 hash function (FIPS 180-4). - - - - - The HMAC algorithm (RFC 2104) using the SHA-256 hash function (FIPS 180-4). - - - - - The HMAC algorithm (RFC 2104) using the SHA-512 hash function (FIPS 180-4). - - - - - Provides algorithms for performing key derivation. - - - - - Performs key derivation using the PBKDF2 algorithm. - - The password from which to derive the key. - The salt to be used during the key derivation process. - The pseudo-random function to be used in the key derivation process. - The number of iterations of the pseudo-random function to apply - during the key derivation process. - The desired length (in bytes) of the derived key. - The derived key. - - The PBKDF2 algorithm is specified in RFC 2898. - - - - - Internal interface used for abstracting away the PBKDF2 implementation since the implementation is OS-specific. - - - - - A PBKDF2 provider which utilizes the managed hash algorithm classes as PRFs. - This isn't the preferred provider since the implementation is slow, but it is provided as a fallback. - - - - - Update an existing registraiton - - - - - Create new Registration - - - - - Logic to update UserAuth from Registration info, not enabled on PUT because of security. - - - - - Thank you Martijn - http://www.dijksterhuis.org/creating-salted-hash-values-in-c/ - - Stronger/Slower Alternative: - https://github.com/defuse/password-hashing/blob/master/PasswordStorage.cs - - - - - Create an app at https://dev.twitter.com/apps to get your ConsumerKey and ConsumerSecret for your app. - The Callback URL for your app should match the CallbackUrl provided. - - - - - Creates the required missing tables or DB schema - - - - - Create VK App at: http://vk.com/editapp?act=create - The Callback URL for your app should match the CallbackUrl provided. - - - - - If previous attemts failes, the subsequential calls - build up code value like "code1,code2,code3" - so we need the last one only - - - - - - - The ServiceStack Yammer OAuth provider. - - - - This provider is loosely based on the existing ServiceStack's Facebook OAuth provider. - - - For the full info on Yammer's OAuth2 authentication flow, refer to: - https://developer.yammer.com/authentication/#a-oauth2 - - - Note: Add these to your application / web config settings under appSettings and replace - values as appropriate. - - - - - - - - - ]]> - - - - - - The OAuth provider name / identifier. - - - - - Initializes a new instance of the class. - - - The application settings (in web.config). - - - - - Gets or sets the Yammer OAuth client id. - - - - - Gets or sets the Yammer OAuth client secret. - - - - - Gets or sets the Yammer OAuth pre-auth url. - - - - - Authenticate against Yammer OAuth endpoint. - - - The auth service. - - - The session. - - - The request. - - - The . - - - - - Load the UserAuth info into the session. - - - The User session. - - - The OAuth tokens. - - - The auth info. - - - - - Load the UserOAuth info into the session. - - - The auth session. - - - The OAuth tokens. - - - - - The Yammer User's email addresses. - - - - - Gets or sets the email address type (e.g. primary). - - - - - Gets or sets the email address. - - - - - Create Yandex App at: https://oauth.yandex.ru/client/new - The Callback URL for your app should match the CallbackUrl provided. - - - - - The BaseUrl of the ServiceStack instance (inferred) - - - - - Name of the ServiceStack Instance (inferred) - - - - - Textual description of the AutoQuery Services (shown in Home Services list) - - - - - Icon for this ServiceStack Instance (shown in Home Services list) - - - - - The different Content Type formats to display - - - - - The configured MaxLimit for AutoQuery - - - - - Whether to publish this Service to the public Services registry - - - - - Only show AutoQuery Services attributed with [AutoQueryViewer] - - - - - List of different Search Filters available - - - - - The Column which should be selected by default - - - - - The Query Type filter which should be selected by default - - - - - The search text which should be populated by default - - - - - Link to your website users can click to find out more about you - - - - - A custom logo or image that users can click on to visit your site - - - - - The default color of text - - - - - The default color of links - - - - - The default background color of each screen - - - - - The default background image of each screen anchored to the bottom left - - - - - The default icon for each of your AutoQuery Services - - - - - Returns true if the User Is Authenticated - - - - - How many queries are available to this user - - - - - Removes items from cache that have keys matching the specified wildcard pattern - - Cache client - The wildcard, where "*" means any sequence of characters and "?" means any single character. - - - - Removes items from the cache based on the specified regular expression pattern - - Cache client - Regular expression pattern to search cache keys - - - - The CacheKey to be use store the response against - - - - - The base Cache Key used to cache the Service response - - - - - Additional CacheKey Modifiers used to cache different outputs for a single Service Response - - - - - How long to cache the resource for. Fallsback to HttpCacheFeature.DefaultExpiresIn - - - - - The unique ETag returned for this resource clients can use to determine whether their local version has changed - - - - - The Age for this resource returned to clients - - - - - The MaxAge returned to clients to indicate how long they can use their local cache before re-validating - - - - - The LastModified date to use for the Cache and HTTP Header - - - - - Cache-Control HTTP Headers - - - - - Create unique cache per user - - - - - Use HostContext.LocalCache or HostContext.Cache - - - - - Skip compression for this Cache Result - - - - - Cache the Response of a Service - - - - - Cache expiry in seconds - - - - - MaxAge in seconds - - - - - Cache-Control HTTP Headers - - - - - Vary cache per user - - - - - Vary cache for users in these roles - - - - - Vary cache for different HTTP Headers - - - - - Use HostContext.LocalCache or HostContext.Cache - - - - - Skip compression for this Cache Result - - - - - Decorates the ICacheClient (and its sibblings) prefixing every key with the given prefix - - Usefull for multi-tenant environments - - - - - Decorates the ICacheClient (and its sibblings) prefixing every key with the given prefix - - Usefull for multi-tenant environments - - - - - Create new instance of CacheEntry. - - - - UTC time at which CacheEntry expires. - - - - Stores The value with key only if such key doesn't exist at the server yet. - - - - - Adds or replaces the value with key. - - - - - Adds or replaces the value with key. - - - - - Replace the value with specified key if it exists. - - - - - Add the value with key to the cache, set to never expire. - - - - - Add or replace the value with key to the cache, set to never expire. - - - - - Replace the value with key in the cache, set to never expire. - - - - - Add the value with key to the cache, set to expire at specified DateTime. - - This method examines the DateTimeKind of expiresAt to determine if conversion to - universal time is needed. The version of Add that takes a TimeSpan expiration is faster - than using this method with a DateTime of Kind other than Utc, and is not affected by - ambiguous local time during daylight savings/standard time transition. - - - - Add or replace the value with key to the cache, set to expire at specified DateTime. - - This method examines the DateTimeKind of expiresAt to determine if conversion to - universal time is needed. The version of Set that takes a TimeSpan expiration is faster - than using this method with a DateTime of Kind other than Utc, and is not affected by - ambiguous local time during daylight savings/standard time transition. - - - - Replace the value with key in the cache, set to expire at specified DateTime. - - This method examines the DateTimeKind of expiresAt to determine if conversion to - universal time is needed. The version of Replace that takes a TimeSpan expiration is faster - than using this method with a DateTime of Kind other than Utc, and is not affected by - ambiguous local time during daylight savings/standard time transition. - - - - Add the value with key to the cache, set to expire after specified TimeSpan. - - - - - Add or replace the value with key to the cache, set to expire after specified TimeSpan. - - - - - Replace the value with key in the cache, set to expire after specified TimeSpan. - - - - - More familiar name for the new crowd. - - - - - The tier lets you specify a retrieving a setting with the tier prefix first before falling back to the original key. - E.g a tier of 'Live' looks for 'Live.{Key}' or if not found falls back to '{Key}'. - - - - - Returns string if exists, otherwise null - - - - - - - Would've preferred to use [assembly: ContractNamespace] attribute but it is not supported in Mono - - - - - Gets the nullable app setting. - - - - - Gets the app setting. - - - - - Returns AppSetting[key] if exists otherwise defaultValue - - - - - Returns AppSetting[key] if exists otherwise defaultValue, for non-string values - - - - - Gets the connection string. - - - - - Gets the list from app setting. - - - - - Gets the dictionary from app setting. - - - - - Provides a common interface for Settings providers such as - ConfigurationManager or Azure's RoleEnvironment. The only - requirement is that if the implementation cannot find the - specified key, the return value must be null - - The key for the setting - The string value of the specified key, or null if the key - was invalid - - - - Return all keys in this configuration source. - - - - - - Represents a builder for the class. - - - - - Initializes a new instance of the class with a specified . - - The of the . - - - - Adds an that reads configuration values from the Web.config file. - - The . - - - - Adds an that reads configuration values from the Web.config file. - - The tier of the . - The . - - - - Adds a that reads configuration values from a dictionary. - - The dictionary of settings to add. - The . - - - - Adds an that reads configuration values from environmental variables. - - The . - - - - Adds an that reads configuration values from environmental variables. - - The tier of the . - The . - - - - Adds an that reads configuration values from a text file at . - - The path of the text file. - The . - - - - Adds an that reads configuration values from a text file at with a specified . - - The path of the text file. - The delimeter fo the text file. - The . - - - - Adds an that reads configuration values from a text file at with a specified . - - The path of the text file. - The delimeter fo the text file. - The tier of the . - The . - - - - Builds an . - - An . - - - - Wrappers for improving consistency with .NET Core Conventions - - - - - Registers the type in the IoC container and - adds auto-wiring to the specified type. - - - - - - - Registers a named instance of type in the IoC container and - adds auto-wiring to the specified type. - - - - - - - Registers the type in the IoC container and - adds auto-wiring to the specified type. - The reuse scope is set to none (transient). - - - - - - Registers the type in the IoC container and - adds auto-wiring to the specified type. - The reuse scope is set to none (transient). - - - - - - Registers the types in the IoC container and - adds auto-wiring to the specified types. - The reuse scope is set to none (transient). - - - - - - Register a singleton instance as a runtime type - - - - - Plugin adds support for Cross-origin resource sharing (CORS, see http://www.w3.org/TR/access-control/). - CORS allows to access resources from different domain which usually forbidden by origin policy. - - - - - Represents a default constructor with Allow Origin equals to "*", Allowed GET, POST, PUT, DELETE, OPTIONS request and allowed "Content-Type" header. - - - - - Lets you Register new Services and the optional restPaths will be registered against - this default Request Type - - - - - Change the default HTML view or template used for the HTML response of this service - - - - - Tracks created objects. - Used by to track created IDisposable instances. - These instances are tracked and disposed at the end of a request. - - - - - Adds disposable to the tracker - - - - - Dispose all disposables in the tracker. - If disposable is still alive alose .Release() is called to release the object. - - - - - Naming convention for the ResponseStatus property name on the response DTO - - - - - Create an instance of the service response dto type and inject it with the supplied responseStatus - - - - - - - - - - - - - - - - - Override to provide additional/less context about the Service Exception. - By default the request is serialized and appended to the ResponseStatus StackTrace. - - - - - Attribute marks that specific response class has support for Cross-origin resource sharing (CORS, see http://www.w3.org/TR/access-control/). CORS allows to access resources from different domain which usually forbidden by origin policy. - - - - - Represents a default constructor with Allow Origin equals to "*", Allowed GET, POST, PUT, DELETE, OPTIONS request and allowed "Content-Type" header. - - - - - Redirect to the https:// version of this url if not already. - - - - - Don't redirect when in DebugMode - - - - - Don't redirect if the request was a forwarded request, e.g. from a Load Balancer - - - - - Base class for entity validator classes. - - The type of the object being validated - - Base class for entity validator classes. - - The type of the object being validated - - - - Sets the cascade mode for all rules within this validator. - - - - - Validates the specified instance - - The object to validate - A ValidationResult object containing any validation failures - - - - Validates the specified instance asynchronously - - The object to validate - Cancellation token - A ValidationResult object containing any validation failures - - - - Validates the specified instance. - - Validation Context - A ValidationResult object containing any validation failures. - - - - Validates the specified instance asynchronously. - - Validation Context - Cancellation token - A ValidationResult object containing any validation failures. - - - - Adds a rule to the current validator. - - - - - - Creates a that can be used to obtain metadata about the current validator. - - - - - Defines a validation rule for a specify property. - - - RuleFor(x => x.Surname)... - - The type of property being validated - The expression representing the property to validate - an IRuleBuilder instance on which validators can be defined - - - - Invokes a rule for each item in the collection - - Type of property - Expression representing the collection to validate - An IRuleBuilder instance on which validators can be defined - - - - Defines a custom validation rule using a lambda expression. - If the validation rule fails, it should return a instance of a ValidationFailure - If the validation rule succeeds, it should return null. - - A lambda that executes custom validation rules. - - - - Defines a custom validation rule using a lambda expression. - If the validation rule fails, it should return an instance of ValidationFailure - If the validation rule succeeds, it should return null. - - A lambda that executes custom validation rules - - - - Defines a custom asynchronous validation rule using a lambda expression. - If the validation rule fails, it should asynchronously return a instance of a ValidationFailure - If the validation rule succeeds, it should return null. - - A lambda that executes custom validation rules. - - - - Defines a custom asynchronous validation rule using a lambda expression. - If the validation rule fails, it should asynchronously return an instance of ValidationFailure - If the validation rule succeeds, it should return null. - - A lambda that executes custom validation rules - - - - Defines a RuleSet that can be used to group together several validators. - - The name of the ruleset. - Action that encapsulates the rules in the ruleset. - - - - Defines a condition that applies to several rules - - The condition that should apply to multiple rules - Action that encapsulates the rules. - - - - - Defines an inverse condition that applies to several rules - - The condition that should be applied to multiple rules - Action that encapsulates the rules - - - - Defines an asynchronous condition that applies to several rules - - The asynchronous condition that should apply to multiple rules - Action that encapsulates the rules. - - - - - Defines an inverse asynchronous condition that applies to several rules - - The asynchronous condition that should be applied to multiple rules - Action that encapsulates the rules - - - - Includes the rules from the specified validator - - - - - Returns an enumerator that iterates through the collection of validation rules. - - - A that can be used to iterate through the collection. - - 1 - - - - Throws an exception if the instance being validated is null. - - - - - - Defines a RuleSet that can be used to provide specific validation rules for specific HTTP methods (GET, POST...) - - The HTTP methods where this rule set should be used. - Action that encapuslates the rules in the ruleset. - - - - Container class for dependent rule definitions - - - - - - Class that can be used to find all the validators from a collection of types. - - - - - Creates a scanner that works on a sequence of types. - - - - - Finds all the validators in the specified assembly. - - - - - Finds all the validators in the specified assemblies - - - - - Finds all the validators in the assembly containing the specified type. - - - - - Performs the specified action to all of the assembly scan results. - - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - 1 - - - - Result of performing a scan. - - - - - Creates an instance of an AssemblyScanResult. - - - - - Validator interface type, eg IValidator<Foo> - - - - - Concrete type that implements the InterfaceType, eg FooValidator. - - - - - Implementation of and that looks for - the instance on the specified or - in order to provide the validator instance. - - - - - Creates an instance of . - - - - - Creates an instance of with the supplied instance factory delegate - used for creation of instances. - - The instance factory delegate. - - - - Gets a validator for the appropriate type. - - - - - Gets a validator for the appropriate type. - - Created instance; if a validator cannot be - created. - - - - Gets a validator for . - - The instance to get a validator for. - Created instance; if a validator cannot be - created. - - - - Validator attribute to define the class that will describe the Validation rules. - - - - - The type of the validator used to validate the current type or parameter. - - - - - Creates an instance of allowing a validator type to be specified. - - - - - Overrides the name of the property associated with this rule. - NOTE: This is a considered to be an advanced feature. 99% of the time that you use this, you actually meant to use WithName. - - The current rule - The property name to use - - - - - Specifies a localized name for the error message. - - The current rule - The resource to use as an expression, eg () => Messages.MyResource - Resource accessor builder to use - - - - Specifies a custom error message resource to use when validation fails. - - The current rule - The resource to use as an expression, eg () => Messages.MyResource - - - - - Specifies a custom error message resource to use when validation fails. - - The current rule - The resource to use as an expression, eg () => Messages.MyResource - Custom message format args - - - - - Specifies a custom error message resource to use when validation fails. - - The current rule - The resource to use as an expression, eg () => Messages.MyResource - The resource accessor builder to use. - - - - - Specifies a custom error message resource to use when validation fails. - - The current rule - The resource to use as an expression, eg () => Messages.MyResource - Custom message format args - - - - - Specifies a localized name for the error message. - - The current rule - The type of the generated resource file - The name of the resource to use - - - - Specifies a custom error message to use if validation fails. - - The current rule - The error message to use - Additional arguments to be specified when formatting the custom error message. - - - - - Specifies a custom error message to use if validation fails. - - The current rule - The error message to use - Additional property values to be included when formatting the custom error message. - - - - - Specifies a custom error message to use if validation fails. - - The current rule - The error message to use - Additional property values to use when formatting the custom error message. - - - - - Specifies a custom error message resource to use when validation fails. - - The current rule - Name of resource - Custom message format args - Type of resource representing a resx file - - - - - Specifies a custom error message resource to use when validation fails. - - The current rule - Resource name - Custom message format args - Resource type representing a resx file - - - - - Replace the first validator of this type and remove all the others. - - - - - Remove all validators of the specified type. - - - - - Remove all validators for the given property. - - - - - Builds a delegate for retrieving a localised resource from a resource type and property name. - - - - - Gets a function that can be used to retrieve a message from a resource type and resource name. - - - - - Allows the default error message translations to be managed. - - - - - Whether localization is enabled. - - - - - Default culture to use for all requests to the LanguageManager. If not specified, uses the current UI culture. - - - - - Gets a translated string based on its key. If the culture is specific and it isn't registered, we try the neutral culture instead. - If no matching culture is found to be registered we use English. - - The key - The culture to translate into - - - - - Provides error message templates - - - - - Construct the error message template - - Error message template - - - - The name of the resource if localized. - - - - - The type of the resource provider if localized. - - - - - Marker interface that indicates a PropertyValidatorContext should be passed to GetString - - - - - Base class for lanaguages - - - - - Name of language (culture code) - - - - - Adds a translation - - - - - - - Adds a translation for a type - - - - - - - Gets the localized version of a string with a specific key. - - - - - - - Allows the default error message translations to be managed. - - - - - Creates a new instance of the LanguageManager class. - - - - - Whether localization is enabled. - - - - - Default culture to use for all requests to the LanguageManager. If not specified, uses the current UI culture. - - - - - Provides a collection of all supported languages. - - - - - - Removes all languages except the default. - - - - - Gets a translated string based on its key. If the culture is specific and it isn't registered, we try the neutral culture instead. - If no matching culture is found to be registered we use English. - - The key - The culture to translate into - - - - - IStringSource implementation that uses the default language manager. - - - - - Lazily loads the string - - - - - Creates a LazyStringSource - - - - - Gets the value - - - - - - Resource type - - - - - Resource name - - - - - Creates a LazyStringSource - - - - - Gets the value - - - - - - Resource type - - - - - Resource name - - - - - Represents a localized string. - - - - - Creates a new instance of the LocalizedErrorMessageSource class using the specified resource name and resource type. - - The resource type - The resource name - - - - Creates a new instance of the LocalizedErrorMessageSource class using the specified resource name and resource type. - - The resource type - The resource name - Strategy used to construct the resource accessor - - - - Creates a LocalizedStringSource from an expression: () => MyResources.SomeResourceName - - The expression - Strategy used to construct the resource accessor - Error message source - - - - Construct the error message template - - Error message template - - - - The name of the resource if localized. - - - - - The type of the resource provider if localized. - - - - - Gets the PropertyInfo for a resource. - ResourceType and ResourceName are ref parameters to allow derived types - to replace the type/name of the resource before the delegate is constructed. - - - - - Version of LocalizedStringSource that allows the specified ResourceType to be replaced by the default resource type specified in ValidatorOptions.ResourceProviderType. - This is typically only used by the default validator types built into FV, or if you're building a library of validators. Don't use it in rule definitions. - - - - - Gets the PropertyInfo for a resource. - ResourceType and ResourceName are ref parameters to allow derived types - to replace the type/name of the resource before the delegate is constructed. - - - - - Creates a OverridableLocalizedStringSource from an expression: () => MyResources.SomeResourceName - - The expression - Error message source - - - - Defines an accessor for localization resources - - - - - Function that can be used to retrieve the resource - - - - - Resource type - - - - - Resource name - - - - - Represents a static string. - - - - - Creates a new StringErrorMessageSource using the specified error message as the error template. - - The error message template. - - - - Construct the error message template - - Error message template - - - - The name of the resource if localized. - - - - - The type of the resource provider if localized. - - - - - Extension methods for collection validation rules - - - - - Associates an instance of IValidator with the current property rule and is used to validate each item within the collection. - - Rule builder - The validator to use - - - - Uses a provider to instantiate a validator instance to be associated with a collection - - - - - - - - - - - Collection rule builder syntax - - - - - - - Defines a condition to be used to determine if validation should run - - - - - - - Extension methods that provide the default set of validators. - - - - - Defines a 'not null' validator on the current rule builder. - Validation will fail if the property is null. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - - - - - Defines a 'null' validator on the current rule builder. - Validation will fail if the property is not null. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - - - - - Defines a 'not empty' validator on the current rule builder. - Validation will fail if the property is null, an empty or the default value for the type (for example, 0 for integers) - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - - - - - Defines a 'empty' validator on the current rule builder. - Validation will fail if the property is not null, an empty or the default value for the type (for example, 0 for integers) - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - - - - - Defines a length validator on the current rule builder, but only for string properties. - Validation will fail if the length of the string is outside of the specified range. The range is inclusive. - - Type of object being validated - The rule builder on which the validator should be defined - - - - - - - Defines a length validator on the current rule builder, but only for string properties. - Validation will fail if the length of the string is outside of the specified range. The range is inclusive. - - Type of object being validated - The rule builder on which the validator should be defined - - - - - - - Defines a length validator on the current rule builder, but only for string properties. - Validation will fail if the length of the string is not equal to the length specified. - - Type of object being validated - The rule builder on which the validator should be defined - - - - - - Defines a length validator on the current rule builder, but only for string properties. - Validation will fail if the length of the string is not equal to the length specified. - - Type of object being validated - The rule builder on which the validator should be defined - - - - - - Defines a regular expression validator on the current rule builder, but only for string properties. - Validation will fail if the value returned by the lambda does not match the regular expression. - - Type of object being validated - The rule builder on which the validator should be defined - The regular expression to check the value against. - - - - - Defines a length validator on the current rule builder, but only for string properties. - Validation will fail if the length of the string is larger than the length specified. - - Type of object being validated - The rule builder on which the validator should be defined - - - - - - Defines a length validator on the current rule builder, but only for string properties. - Validation will fail if the length of the string is less than the length specified. - - Type of object being validated - The rule builder on which the validator should be defined - - - - - - Defines a regular expression validator on the current rule builder, but only for string properties. - Validation will fail if the value returned by the lambda does not match the regular expression. - - Type of object being validated - The rule builder on which the validator should be defined - The regular expression to check the value against. - - - - - Defines a regular expression validator on the current rule builder, but only for string properties. - Validation will fail if the value returned by the lambda does not match the regular expression. - - Type of object being validated - The rule builder on which the validator should be defined - The regular expression to use - - - - - Defines a regular expression validator on the current rule builder, but only for string properties. - Validation will fail if the value returned by the lambda does not match the regular expression. - - Type of object being validated - The rule builder on which the validator should be defined - The regular expression to use - - - - - Defines a regular expression validator on the current rule builder, but only for string properties. - Validation will fail if the value returned by the lambda does not match the regular expression. - - Type of object being validated - The rule builder on which the validator should be defined - The regular expression to check the value against. - Regex options - - - - - Defines a regular expression validator on the current rule builder, but only for string properties. - Validation will fail if the value returned by the lambda does not match the regular expression. - - Type of object being validated - The rule builder on which the validator should be defined - The regular expression to check the value against. - Regex options - - - - - Defines a regular expression validator on the current rule builder, but only for string properties. - Validation will fail if the value returned by the lambda is not a valid email address. - - Type of object being validated - The rule builder on which the validator should be defined - - - - - Defines a 'not equal' validator on the current rule builder. - Validation will fail if the specified value is equal to the value of the property. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value to compare - Equality comparer to use - - - - - Defines a 'not equal' validator on the current rule builder using a lambda to specify the value. - Validation will fail if the value returned by the lambda is equal to the value of the property. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - A lambda expression to provide the comparison value - Equality Comparer to use - - - - - Defines an 'equals' validator on the current rule builder. - Validation will fail if the specified value is not equal to the value of the property. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value to compare - Equality Comparer to use - - - - - Defines an 'equals' validator on the current rule builder using a lambda to specify the comparison value. - Validation will fail if the value returned by the lambda is not equal to the value of the property. - - The type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - A lambda expression to provide the comparison value - Equality comparer to use - - - - - Defines a predicate validator on the current rule builder using a lambda expression to specify the predicate. - Validation will fail if the specified lambda returns false. - Validation will succeed if the specified lambda returns true. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - A lambda expression specifying the predicate - - - - - Defines a predicate validator on the current rule builder using a lambda expression to specify the predicate. - Validation will fail if the specified lambda returns false. - Validation will succeed if the specified lambda returns true. - This overload accepts the object being validated in addition to the property being validated. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - A lambda expression specifying the predicate - - - - - Defines a predicate validator on the current rule builder using a lambda expression to specify the predicate. - Validation will fail if the specified lambda returns false. - Validation will succeed if the specified lambda returns true. - This overload accepts the object being validated in addition to the property being validated. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - A lambda expression specifying the predicate - - - - - Defines an asynchronous predicate validator on the current rule builder using a lambda expression to specify the predicate. - Validation will fail if the specified lambda returns false. - Validation will succeed if the specified lambda returns true. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - A lambda expression specifying the predicate - - - - - Defines an asynchronous predicate validator on the current rule builder using a lambda expression to specify the predicate. - Validation will fail if the specified lambda returns false. - Validation will succeed if the specified lambda returns true. - This overload accepts the object being validated in addition to the property being validated. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - A lambda expression specifying the predicate - - - - - Defines an asynchronous predicate validator on the current rule builder using a lambda expression to specify the predicate. - Validation will fail if the specified lambda returns false. - Validation will succeed if the specified lambda returns true. - This overload accepts the object being validated in addition to the property being validated. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - A lambda expression specifying the predicate - - - - - Defines a 'less than' validator on the current rule builder. - The validation will succeed if the property value is less than the specified value. - The validation will fail if the property value is greater than or equal to the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'less than' validator on the current rule builder. - The validation will succeed if the property value is less than the specified value. - The validation will fail if the property value is greater than or equal to the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'less than or equal' validator on the current rule builder. - The validation will succeed if the property value is less than or equal to the specified value. - The validation will fail if the property value is greater than the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'less than or equal' validator on the current rule builder. - The validation will succeed if the property value is less than or equal to the specified value. - The validation will fail if the property value is greater than the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'greater than' validator on the current rule builder. - The validation will succeed if the property value is greater than the specified value. - The validation will fail if the property value is less than or equal to the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'greater than' validator on the current rule builder. - The validation will succeed if the property value is greater than the specified value. - The validation will fail if the property value is less than or equal to the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'greater than or equal' validator on the current rule builder. - The validation will succeed if the property value is greater than or equal the specified value. - The validation will fail if the property value is less than the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'greater than or equal' validator on the current rule builder. - The validation will succeed if the property value is greater than or equal the specified value. - The validation will fail if the property value is less than the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'less than' validator on the current rule builder using a lambda expression. - The validation will succeed if the property value is less than the specified value. - The validation will fail if the property value is greater than or equal to the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - A lambda that should return the value being compared - - - - - Defines a 'less than' validator on the current rule builder using a lambda expression. - The validation will succeed if the property value is less than the specified value. - The validation will fail if the property value is greater than or equal to the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - A lambda that should return the value being compared - - - - - Defines a 'less than' validator on the current rule builder using a lambda expression. - The validation will succeed if the property value is less than the specified value. - The validation will fail if the property value is greater than or equal to the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - A lambda that should return the value being compared - - - - - Defines a 'less than' validator on the current rule builder using a lambda expression. - The validation will succeed if the property value is less than the specified value. - The validation will fail if the property value is greater than or equal to the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - A lambda that should return the value being compared - - - - - Defines a 'less than or equal' validator on the current rule builder using a lambda expression. - The validation will succeed if the property value is less than or equal to the specified value. - The validation will fail if the property value is greater than the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'less than or equal' validator on the current rule builder using a lambda expression. - The validation will succeed if the property value is less than or equal to the specified value. - The validation will fail if the property value is greater than the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'less than or equal' validator on the current rule builder using a lambda expression. - The validation will succeed if the property value is less than or equal to the specified value. - The validation will fail if the property value is greater than the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'less than or equal' validator on the current rule builder using a lambda expression. - The validation will succeed if the property value is less than or equal to the specified value. - The validation will fail if the property value is greater than the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'less than' validator on the current rule builder using a lambda expression. - The validation will succeed if the property value is greater than the specified value. - The validation will fail if the property value is less than or equal to the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'less than' validator on the current rule builder using a lambda expression. - The validation will succeed if the property value is greater than the specified value. - The validation will fail if the property value is less than or equal to the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'less than' validator on the current rule builder using a lambda expression. - The validation will succeed if the property value is greater than the specified value. - The validation will fail if the property value is less than or equal to the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'less than' validator on the current rule builder using a lambda expression. - The validation will succeed if the property value is greater than the specified value. - The validation will fail if the property value is less than or equal to the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'greater than' validator on the current rule builder using a lambda expression. - The validation will succeed if the property value is greater than or equal the specified value. - The validation will fail if the property value is less than the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'greater than' validator on the current rule builder using a lambda expression. - The validation will succeed if the property value is greater than or equal the specified value. - The validation will fail if the property value is less than the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'greater than or equal to' validator on the current rule builder using a lambda expression. - The validation will succeed if the property value is greater than or equal the specified value. - The validation will fail if the property value is less than the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'greater than or equal to' validator on the current rule builder using a lambda expression. - The validation will succeed if the property value is greater than or equal the specified value. - The validation will fail if the property value is less than the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Validates certain properties of the specified instance. - - The current validator - The object to validate - Expressions to specify the properties to validate - A ValidationResult object containing any validation failures - - - - Validates certain properties of the specified instance. - - - The object to validate - The names of the properties to validate. - A ValidationResult object containing any validation failures. - - - - Validates an object using either a custom validator selector or a ruleset. - - - - - - - - - - - Validates certain properties of the specified instance asynchronously. - - The current validator - The object to validate - Expressions to specify the properties to validate - A ValidationResult object containing any validation failures - - - - Validates certain properties of the specified instance asynchronously. - - - The object to validate - The names of the properties to validate. - A ValidationResult object containing any validation failures. - - - - Validates an object asynchronously using a custom valdiator selector or a ruleset - - - - - - - - - - - Performs validation and then throws an exception if validation fails. - - The validator this method is extending. - The instance of the type we are validating. - Optional: a ruleset when need to validate against. - - - - Performs validation asynchronously and then throws an exception if validation fails. - - The validator this method is extending. - The instance of the type we are validating. - Optional: a ruleset when need to validate against. - - - - Defines an 'inclusive between' validator on the current rule builder, but only for properties of types that implement IComparable. - Validation will fail if the value of the property is outside of the specifed range. The range is inclusive. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The lowest allowed value - The highest allowed value - - - - - Defines an 'inclusive between' validator on the current rule builder, but only for properties of types that implement IComparable. - Validation will fail if the value of the property is outside of the specifed range. The range is inclusive. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The lowest allowed value - The highest allowed value - - - - - Defines an 'exclusive between' validator on the current rule builder, but only for properties of types that implement IComparable. - Validation will fail if the value of the property is outside of the specifed range. The range is exclusive. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The lowest allowed value - The highest allowed value - - - - - Defines an 'exclusive between' validator on the current rule builder, but only for properties of types that implement IComparable. - Validation will fail if the value of the property is outside of the specifed range. The range is exclusive. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The lowest allowed value - The highest allowed value - - - - - Defines a credit card validator for the current rule builder that ensures that the specified string is a valid credit card number. - - - - - Defines a enum value validator on the current rule builder that ensures that the specific value is a valid enum value. - - Type of Enum being validated - Type of property being validated - The rule builder on which the validator should be defined - - - - - Defines a custom validation rule - - - - - - - - - - Defines a custom validation rule - - - - - - - - - - Performs validation and then throws an exception if validation fails. - - The validator this method is extending. - The instance of the type we are validating. - The ruleset to validate against. - - - - Performs validation asynchronously and then throws an exception if validation fails. - - The validator this method is extending. - The instance of the type we are validating. - Optional: a ruleset when need to validate against. - - - - Default options that can be used to configure a validator. - - - - - Specifies the cascade mode for failures. - If set to 'Stop' then execution of the rule will stop once the first validator in the chain fails. - If set to 'Continue' then all validators in the chain will execute regardless of failures. - - - - - Specifies a custom action to be invoked when the validator fails. - - - - - - - - - - Specifies a custom error message to use if validation fails. - - The current rule - The error message to use - - - - - Specifies a custom error message to use when validation fails. - - The current rule - Delegate that will be invoked to retrieve the localized message. - - - - - Specifies a custom error message to use when validation fails. - - The current rule - Delegate that will be invoked to retrieve the localized message. - - - - - Specifies a custom error code to use if validation fails. - - The current rule - The error code to use - - - - - Specifies a custom error message resource to use when validation fails. - - The current rule - Resource type representing a resx file - Name of resource - - - - - Specifies a condition limiting when the validator should run. - The validator will only be executed if the result of the lambda returns true. - - The current rule - A lambda expression that specifies a condition for when the validator should run - Whether the condition should be applied to the current rule or all rules in the chain - - - - - Specifies a condition limiting when the validator should not run. - The validator will only be executed if the result of the lambda returns false. - - The current rule - A lambda expression that specifies a condition for when the validator should not run - Whether the condition should be applied to the current rule or all rules in the chain - - - - - Specifies an asynchronous condition limiting when the validator should run. - The validator will only be executed if the result of the lambda returns true. - - The current rule - A lambda expression that specifies a condition for when the validator should run - Whether the condition should be applied to the current rule or all rules in the chain - - - - - Specifies an asynchronous condition limiting when the validator should not run. - The validator will only be executed if the result of the lambda returns false. - - The current rule - A lambda expression that specifies a condition for when the validator should not run - Whether the condition should be applied to the current rule or all rules in the chain - - - - - Triggers an action when the rule passes. Typically used to configure dependent rules. This applies to all preceding rules in the chain. - - The current rule - An action to be invoked if the rule is valid - - - - - Specifies a custom property name to use within the error message. - - The current rule - The property name to use - - - - - Specifies a custom property name to use within the error message. - - The current rule - Func used to retrieve the property's display name - - - - - Overrides the name of the property associated with this rule. - NOTE: This is a considered to be an advanced feature. 99% of the time that you use this, you actually meant to use WithName. - - The current rule - The property name to use - - - - - Specifies custom state that should be stored alongside the validation message when validation fails for this rule. - - - - - - - - - - Specifies custom state that should be stored alongside the validation message when validation fails for this rule. - - - - - - - - - - Specifies custom severity that should be stored alongside the validation message when validation fails for this rule. - - - - - - - - - - Gets the default message for a property validato - - The validator type - The translated string - - - - Specifies how rules should cascade when one fails. - - - - - When a rule fails, execution continues to the next rule. - - - - - When a rule fails, validation is stopped and all other rules in the chain will not be executed. - - - - - Specifies where a When/Unless condition should be applied - - - - - Applies the condition to all validators declared so far in the chain. - - - - - Applies the condition to the current validator only. - - - - - Specifies the severity of a rule. - - - - - Error - - - - - Warning - - - - - Info - - - - - Validator implementation that allows rules to be defined without inheriting from AbstractValidator. - - - - public class Customer { - public int Id { get; set; } - public string Name { get; set; } - - public static readonly InlineValidator<Customer> Validator = new InlineValidator<Customer> { - v => v.RuleFor(x => x.Name).NotNull(), - v => v.RuleFor(x => x.Id).NotEqual(0), - } - } - - - - - - - Delegate that specifies configuring an InlineValidator. - - - - - Allows configuration of the validator. - - - - - Rule definition for collection properties - - - - - - Initializes new instance of the CollectionPropertyRule class - - - - - - - - - - - Creates a new property rule from a lambda expression. - - - - - Invokes the validator asynchronously - - - - - - - - - - Invokes the validator - - - - - - - - - Custom logic for performing comparisons - - - - - Tries to compare the two objects. - - - The resulting comparison value. - - True if all went well, otherwise False. - - - - Tries to do a proper comparison but may fail. - First it tries the default comparison, if this fails, it will see - if the values are fractions. If they are, then it does a double - comparison, otherwise it does a long comparison. - - - - - Tries to compare the two objects, but will throw an exception if it fails. - - True on success, otherwise False. - - - - Tries to compare the two objects, but will throw an exception if it fails. - - True on success, otherwise False. - - - - Default validator selector that will execute all rules that do not belong to a RuleSet. - - - - - Determines whether or not a rule should execute. - - The rule - Property path (eg Customer.Address.Line1) - Contextual information - Whether or not the validator can execute. - - - - Custom IValidationRule for performing custom logic. - - - - - - Rule set to which this rule belongs. - - - - - Creates a new DelegateValidator using the specified function to perform validation. - - - - - Creates a new DelegateValidator using the specified function to perform validation. - - - - - Creates a new DelegateValidator using the specified async function to perform validation. - - - - - Creates a new DelegateValidator using the specified async function to perform validation. - - - - - Performs validation using a validation context and returns a collection of Validation Failures. - - Validation Context - A collection of validation failures - - - - Performs validation asynchronously using a validation context and returns a collection of Validation Failures. - - Validation Context - - A collection of validation failures - - - - The validators that are grouped under this rule. - - - - - Performs validation using a validation context and returns a collection of Validation Failures. - - Validation Context - A collection of validation failures - - - - When overloaded performs validation asynchronously using a validation context and returns a collection of Validation Failures. - - Validation Context - - A collection of validation failures - - - - Applies a condition to the validator. - - - - - - - Applies a condition asynchronously to the validator - - - - - - - Useful extensions - - - - - Checks if the expression is a parameter expression - - - - - - - Gets a MemberInfo from a member expression. - - - - - Gets a MemberInfo from a member expression. - - - - - Splits pascal case, so "FooBar" would become "Foo Bar" - - - - - Helper method to construct a constant expression from a constant. - - Type of object being validated - Type of property being validated - The value being compared - - - - - Represents an object that is configurable. - - Type of object being configured - Return type - - - - Configures the current object. - - Action to configure the object. - - - - - Instancace cache. - - - - - Gets or creates an instance using Activator.CreateInstance - - The type to instantiate - The instantiated object - - - - Gets or creates an instance using a custom factory - - The type to instantiate - The custom factory - The instantiated object - - - - Member accessor cache. - - - - - - Gets an accessor func based on an expression - - - The member represented by the expression - - Accessor func - - - - Determines whether or not a rule should execute. - - - - - Determines whether or not a rule should execute. - - The rule - Property path (eg Customer.Address.Line1) - Contextual information - Whether or not the validator can execute. - - - - Selects validators that are associated with a particular property. - - - - - Creates a new instance of MemberNameValidatorSelector. - - - - - Member names that are validated. - - - - - Determines whether or not a rule should execute. - - The rule - Property path (eg Customer.Address.Line1) - Contextual information - Whether or not the validator can execute. - - - - Creates a MemberNameValidatorSelector from a collection of expressions. - - - - - Gets member names from expressions - - - - - - - - Assists in the construction of validation messages. - - - - - Default Property Name placeholder. - - - - - Default Property Value placeholder. - - - - - Adds a value for a validation message placeholder. - - - - - - - - Appends a property name to the message. - - The name of the property - - - - - Appends a property value to the message. - - The value of the property - - - - - Adds additional arguments to the message for use with standard string placeholders. - - Additional arguments - - - - - Constructs the final message from the specified template. - - Message template - The message with placeholders replaced with their appropriate values - - - - Additional arguments to use - - - - - Additional placeholder values - - - - - Represents a chain of properties - - - - - Creates a new PropertyChain. - - - - - Creates a new PropertyChain based on another. - - - - - Creates a new PropertyChain - - - - - - Creates a PropertyChain from a lambda expresion - - - - - - - Adds a MemberInfo instance to the chain - - Member to add - - - - Adds a property name to the chain - - Name of the property to add - - - - Adds an indexer to the property chain. For example, if the following chain has been constructed: - Parent.Child - then calling AddIndexer(0) would convert this to: - Parent.Child[0] - - - - - - Creates a string representation of a property chain. - - - - - Checks if the current chain is the child of another chain. - For example, if chain1 were for "Parent.Child" and chain2 were for "Parent.Child.GrandChild" then - chain2.IsChildChainOf(chain1) would be true. - - The parent chain to compare - True if the current chain is the child of the other chain, otherwise false - - - - Builds a property path. - - - - - Number of member names in the chain - - - - - Defines a rule associated with a property. - - - - - Property associated with this rule. - - - - - Function that can be invoked to retrieve the value of the property. - - - - - Expression that was used to create the rule. - - - - - String source that can be used to retrieve the display name (if null, falls back to the property name) - - - - - Rule set that this rule belongs to (if specified) - - - - - Function that will be invoked if any of the validators associated with this rule fail. - - - - - The current validator being configured by this rule. - - - - - Type of the property being validated - - - - - Cascade mode for this rule. - - - - - Validators associated with this rule. - - - - - Creates a new property rule. - - Property - Function to get the property value - Lambda expression used to create the rule - Function to get the cascade mode. - Type to validate - Container type that owns the property - - - - Creates a new property rule from a lambda expression. - - - - - Creates a new property rule from a lambda expression. - - - - - Adds a validator to the rule. - - - - - Replaces a validator in this rule. Used to wrap validators. - - - - - Remove a validator in this rule. - - - - - Clear all validators from this rule. - - - - - Returns the property name for the property being validated. - Returns null if it is not a property being validated (eg a method call) - - - - - Allows custom creation of an error message - - - - - Dependent rules - - - - - Display name for the property. - - - - - Display name for the property. - - - - - Performs validation using a validation context and returns a collection of Validation Failures. - - Validation Context - A collection of validation failures - - - - Performs asynchronous validation using a validation context and returns a collection of Validation Failures. - - Validation Context - - A collection of validation failures - - - - Invokes the validator asynchronously - - - - - - - - - - Invokes a property validator using the specified validation context. - - - - - Applies a condition to the rule - - - - - - - Applies the condition to the rule asynchronously - - - - - - - Include rule - - - - - Creates a new IncludeRule - - - - - - - - - Creates a new include rule from an existing validator - - - - - - - - - Builds a validation rule and constructs a validator. - - Type of object being validated - Type of property being validated - - - - The rule being created by this RuleBuilder. - - - - - Creates a new instance of the RuleBuilder class. - - - - - Sets the validator associated with the rule. - - The validator to set - - - - - Sets the validator associated with the rule. Use with complex properties where an IValidator instance is already declared for the property type. - - The validator to set - - - - Sets the validator associated with the rule. Use with complex properties where an IValidator instance is already declared for the property type. - - The validator provider to set - - - - Selects validators that belong to the specified rulesets. - - - - - Rule sets - - - - - Creates a new instance of the RulesetValidatorSelector. - - - - - Determines whether or not a rule should execute. - - The rule - Property path (eg Customer.Address.Line1) - Contextual information - Whether or not the validator can execute. - - - - Checks if the rule is an IncludeRule - - - - - - - Gets validators for method parameters. - - - - - Gets a validator for . - - The instance to get a validator for. - Created instance; if a validator cannot be - created. - - - - Defines a rule associated with a property which can have multiple validators. - - - - - The validators that are grouped under this rule. - - - - - Name of the rule-set to which this rule belongs. - - - - - Performs validation using a validation context and returns a collection of Validation Failures. - - Validation Context - A collection of validation failures - - - - Performs validation using a validation context and returns a collection of Validation Failures asynchronoulsy. - - Validation Context - Cancellation token - A collection of validation failures - - - - Applies a condition to the rule - - - - - - - Applies a condition to the rule asynchronously - - - - - - - Defines a validator for a particular type. - - - - - - Validates the specified instance. - - The instance to validate - A ValidationResult object containing any validation failures. - - - - Validate the specified instance asynchronously - - The instance to validate - - A ValidationResult object containing any validation failures. - - - - Sets the cascade mode for all rules within this validator. - - - - - Defines a validator for a particular type. - - - - - Validates the specified instance - - - A ValidationResult containing any validation failures - - - - Validates the specified instance asynchronously - - - Cancellation token - A ValidationResult containing any validation failures - - - - Validates the specified instance. - - A ValidationContext - A ValidationResult object containy any validation failures. - - - - Validates the specified instance asynchronously. - - A ValidationContext - Cancellation token - A ValidationResult object containy any validation failures. - - - - Creates a hook to access various meta data properties - - A IValidatorDescriptor object which contains methods to access metadata - - - - Checks to see whether the validator can validate objects of the specified type - - - - - Provides metadata about a validator. - - - - - Gets the name display name for a property. - - - - - Gets a collection of validators grouped by property. - - - - - Gets validators for a particular property. - - - - - Gets rules for a property. - - - - - Gets validators for a particular type. - - - - - Gets the validator for the specified type. - - - - - Gets the validator for the specified type. - - - - - Defines a validation failure - - - - - Creates a new validation failure. - - - - - Creates a new ValidationFailure. - - - - - The name of the property. - - - - - The error message - - - - - The property value that caused the failure. - - - - - Custom state associated with the failure. - - - - - Custom severity level associated with the failure. - - - - - Gets or sets the formatted message arguments. - These are values for custom formatted message in validator resource files - Same formatted message can be reused in UI and with same number of format placeholders - Like "Value {0} that you entered should be {1}" - - - - - Gets or sets the formatted message placeholder values. - - - - - The resource name used for building the message - - - - - Creates a textual representation of the failure. - - - - - Creates a new ValidationFailure with ErrorCode. - - - - - Gets or sets the error code. - - - - - The result of running a validator - - - - - Whether validation succeeded - - - - - A collection of errors - - - - - Creates a new validationResult - - - - - Creates a new ValidationResult from a collection of failures - - List of which is later available through . This list get's copied. - - Every caller is responsible for not adding null to the list. - - - - - Rule builder that starts the chain - - - - - - - Rule builder - - - - - - - Associates a validator with this the property for this rule builder. - - The validator to set - - - - - Associates an instance of IValidator with the current property rule. - - The validator to use - - - - Associates a validator provider with the current property rule. - - The validator provider to use - - - - Rule builder - - - - - - - Validation context - - - - Validation context - - - - - - Creates a new validation context - - - - - - Creates a new validation context with a custom property chain and selector - - - - - - - - The object to validate - - - - - Validation context - - - Validation context - - - - - Creates a new validation context - - - - - - Creates a new validation context with a property chain and validation selector - - - - - - - - Property chain - - - - - Object being validated - - - - - Selector - - - - - Whether this is a child context - - - - - Whether this is a child collection context. - - - - - Creates a new ValidationContext based on this one - - - - - - - - - Creates a new validation context for use with a child validator - - - - - - - Creates a new validation context for use with a child collection validator - - - - - - - An exception that represents failed validation - - - An exception that represents failed validation - - - - - Validation errors - - - - - Creates a new ValidationException - - - - - - Creates a new ValidationException - - - - - - - Creates a new ValidationException - - - - - - Used for providing metadata about a validator. - - - - - Rules associated with the validator - - - - - Creates a ValidatorDescriptor - - - - - - Gets the display name or a property property - - - - - - - Gets all members with their associated validators - - - - - - Gets validators for a specific member - - - - - - - Gets rules for a specific member - - - - - - - Gets the member name from an expression - - - - - - - Gets validators for a member - - - - - - - - Gets rules grouped by ruleset - - - - - - Information about reulesets - - - - - Creates a new RulesetMetadata - - - - - - - Rulset name - - - - - Rules in the ruleset - - - - - Factory for creating validators - - - - - Gets a validator for a type - - - - - - - Gets a validator for a type - - - - - - - Instantiates the validator - - - - - - - Validator runtime options - - - - - Default cascade mode - - - - - Default property chain separator - - - - - Default resource provider - - - - - Default language manager - - - - - Customizations of validator selector - - - - - Specifies a factory for creating MessageFormatter instances. - - - - - Pluggable logic for resolving property names - - - - - Pluggable logic for resolving display names - - - - - Disables the expression accessor cache. Not recommended. - - - - - ValidatorSelector options - - - - - Factory func for creating the default validator selector - - - - - Factory func for creating the member validator selector - - - - - Factory func for creating the ruleset validator selector - - - - - Base class for all comparison validators - - - - - - - - - - - - - - - - - - Performs the comparison - - - - - - - Override to perform the comparison - - - - - - - - Metadata- the comparison type - - - - - Metadata- the member being compared - - - - - Metadata- the value being compared - - - - - Defines a comparison validator - - - - - Metadata- the comparison type - - - - - Metadata- the member being compared - - - - - Metadata- the value being compared - - - - - Asynchronous custom validator - - - - - Creates a new ASyncPredicateValidator - - - - - - Runs the validation check - - - - - - - - Ensures that the property value is a valid credit card number. - - - - - Custom validator that allows for manual/direct creation of ValidationFailure instances. - - - - - - Creates a new instance of the CustomValidator - - - - - - Creates a new isntance of the CutomValidator. - - - - - - Custom validation context - - - - - Creates a new CustomContext - - The parent PropertyValidatorContext that represents this execution - - - - Adds a new validation failure. - - The property name - The error mesage - - - - Adds a new validation failure (the property name is inferred) - - The error message - - - - Adss a new validation failure - - The failure to add - - - - A custom property validator. - This interface should not be implemented directly in your code as it is subject to change. - Please inherit from PropertyValidator instead. - - - - - Prepares the of for an upcoming . - - The validator context - - - - Creates an error validation result for this validator. - - The validator context - Returns an error validation result. - - - - Allows a decimal to be validated for scale and precision. - Scale would be the number of digits to the right of the decimal point. - Precision would be the number of digits. - - It can be configured to use the effective scale and precision - (i.e. ignore trailing zeros) if required. - - 123.4500 has an scale of 4 and a precision of 7, but an effective scale - and precision of 2 and 5 respectively. - - - - - When the AppHost was instantiated. - - - - - When the Init function was done. - Called at begin of - - - - - When all configuration was completed. - Called at the end of - - - - - If app currently runs for unit tests. - Used for overwritting AuthSession. - - - - - The assemblies reflected to find api services. - These can be provided in the constructor call. - - - - - Wether AppHost configuration is done. - Note: It doesn't mean the start function was called. - - - - - Wether AppHost is ready configured and either ready to run or already running. - Equals - - - - - Set the host config of the AppHost. - - - - - Initializes the AppHost. - Calls the method. - Should be called before start. - - - - - Gets Full Directory Path of where the app is running - - - - - Starts the AppHost. - this methods needs to be overwritten in subclass to provider a listener to start handling requests. - - Url to listen to - - - - The AppHost.Container. Note: it is not thread safe to register dependencies after AppStart. - - - - - Collection of PreRequest filters. - They are called before each request is handled by a service, but after an HttpHandler is by the chosen. - called in . - - - - - Collection of RequestConverters. - Can be used to convert/change Input Dto - Called after routing and model binding, but before request filters. - All request converters are called unless - Converter can return null, orginal model will be used. - - Note one converter could influence the input for the next converter! - - - - - Collection of ResponseConverters. - Can be used to convert/change Output Dto - - Called directly after response is handled, even before ! - - - - - Lists of view engines for this app. - If view is needed list is looped until view is found. - - - - - Collection of added plugins. - - - - - Executed immediately before a Service is executed. Use return to change the request DTO used, must be of the same type. - - - - - Executed immediately after a service is executed. Use return to change response used. - - - - - Occurs when the Service throws an Exception. - - - - - Occurs when an exception is thrown whilst processing a request. - - - - - Register singleton in the Ioc Container of the AppHost. - - - - - Registers type to be automatically wired by the Ioc container of the AppHost. - - Concrete type - Abstract type - - - - Tries to resolve type through the ioc container of the AppHost. - Can return null. - - - - - Resolves Type through the Ioc container of the AppHost. - - If type is not registered - - - - Looks for first plugin of this type in Plugins. - Reflection performance penalty. - - - - - Apply PreRequest Filters for participating Custom Handlers, e.g. RazorFormat, MarkdownFormat, etc - - - - - Apply PreAuthenticate Filters from IAuthWithRequest AuthProviders - - - - - Applies the raw request filters. Returns whether or not the request has been handled - and no more processing should be done. - - - - - - Applies the request filters. Returns whether or not the request has been handled - and no more processing should be done. - - - - - - Applies the response filters. Returns whether or not the request has been handled - and no more processing should be done. - - - - - - Inspect or modify ever new UserSession created or resolved from cache. - return null if Session is invalid to create new Session. - - - - - Gets IDbConnection Checks if DbInfo is seat in RequestContext. - See multitenancy: http://docs.servicestack.net/multitenancy - Called by itself, and - - Provided by services and pageView, can be helpfull when overriding this method - - - - - Resolves based on .GetClient(); - Called by itself, and - - Provided by services and pageView, can be helpfull when overriding this method - - - - - If they don't have an ICacheClient configured use an In Memory one. - - - - - Tries to resolve through Ioc container. - If not registered, it falls back to .GetClient(); - Called by itself, and - - Provided by services and pageView, can be helpfull when overriding this method - - - - - Returns . cache is only persisted for this running app instance. - Called by .MemoryCacheClient - - Provided by services and pageView, can be helpfull when overriding this method - Nullable MemoryCacheClient - - - - Returns from the IOC container. - Called by itself, and - - Provided by services and PageViewBase, can be helpfull when overriding this method - - - - - If enabled reverts to persist password hashes using the original SHA256 SaltedHash implementation. - By default ServiceStack uses the more secure ASP.NET Identity v3 PBKDF2 with HMAC-SHA256 implementation. - - New Users will have their passwords persisted with the specified implementation, likewise existing users will have their passwords re-hased - to use the current registered IPasswordHasher. - - - - - Older Password Hashers that were previously used to hash passwords. Failed password matches check to see if the password was hashed with - any of the registered FallbackPasswordHashers, if true the password attempt will succeed and password will get re-hashed with - the current registered IPasswordHasher. - - - - - Read/Write Virtual FileSystem. Defaults to FileSystemVirtualPathProvider - - - - - Cascading collection of virtual file sources, inc. Embedded Resources, File System, In Memory, S3 - - - - - Call to signal the completion of a ServiceStack-handled Request - - - - - Resolves and auto-wires a ServiceStack Service from a ASP.NET HttpContext. - - - - - Resolves and auto-wires a ServiceStack Service from a HttpListenerContext. - - - - - Resolves and auto-wires a ServiceStack Service. - - - - - Context to capture IService action - - - - - Can ignore as doesn't throw if HTTP Headers already written - - - - - Creates instance using straight Resolve approach. - This will throw an exception if resolution fails - - - - - Creates instance using the TryResolve approach if tryResolve = true. - Otherwise uses Resolve approach, which will throw an exception if resolution fails - - - - - Sets a persistent cookie which never expires - - - - - Sets a session cookie which expires after the browser session closes - - - - - Deletes a specified cookie by setting its value to empty and expiration to -1 days - - - - - Return File at specified virtualPath from AppHost.VirtualFiles ContentRootPath - - - - - Keep default file contents in-memory - - - - - - Wrapper class for the HTTPListener to allow easier access to the - server, for start and stop management and event routing of the actual - inbound requests. - - - - - Starts the Web Service - - - A Uri that acts as the base that the server is listening on. - Format should be: http://127.0.0.1:8080/ or http://127.0.0.1:8080/somevirtual/ - Note: the trailing slash is required! For more info see the - HttpListener.Prefixes property on MSDN. - - - - - Shut down the Web Service - - - - - Overridable method that can be used to implement a custom hnandler - - - - - - Reserves the specified URL for non-administrator users and accounts. - http://msdn.microsoft.com/en-us/library/windows/desktop/cc307223(v=vs.85).aspx - - Reserved Url if the process completes successfully - - - - Can ignore as doesn't throw if HTTP Headers already written - - - - - Used in Unit tests - - - - - - The number of segments separated by '/' determinable by path.Split('/').Length - e.g. /path/to/here.ext == 3 - - - - - The total number of segments after subparts have been exploded ('.') - e.g. /path/to/here.ext == 4 - - - - - Provide for quick lookups based on hashes that can be determined from a request url - - - - - For performance withPathInfoParts should already be a lower case string - to minimize redundant matching operations. - - - - - - For performance withPathInfoParts should already be a lower case string - to minimize redundant matching operations. - - - - - - - - - Get Best Matching Route. - - - - If not null, ensures any Route matches any [Route(Matches)] - - - - - Execute MQ - - - - - Execute MQ with requestContext - - - - - Execute using empty RequestContext - - - - - Execute a Service with a Request DTO. See ExecuteAsync for a non-blocking alternative. - - - - - Execute a Service with a Request DTO. - - - - - Gets the name of the base most type in the heirachy tree with the same. - - We get an exception when trying to create a schema with multiple types of the same name - like when inheriting from a DataContract with the same name. - - The type. - - - - - Back-end Service used by /js/hot-fileloader.js to detect file changes in /wwwroot and auto reload page. - - - - - Predefined pattern that matches <?php ... ?> tags. - Could be passed inside a list to {@link #setPreservePatterns(List) setPreservePatterns} method. - - - Predefined pattern that matches <% ... %> tags. - Could be passed inside a list to {@link #setPreservePatterns(List) setPreservePatterns} method. - - - Predefined pattern that matches <--# ... --> tags. - Could be passed inside a list to {@link #setPreservePatterns(List) setPreservePatterns} method. - - - Predefined list of tags that are very likely to be block-level. - Could be passed to {@link #setRemoveSurroundingSpaces(string) setRemoveSurroundingSpaces} method. - - - Predefined list of tags that are block-level by default, excluding <div> and <li> tags. - Table tags are also included. - Could be passed to {@link #setRemoveSurroundingSpaces(string) setRemoveSurroundingSpaces} method. - - - Could be passed to {@link #setRemoveSurroundingSpaces(string) setRemoveSurroundingSpaces} method - to remove all surrounding spaces (not recommended). - - - If set to false all compression will be bypassed. Might be useful for testing purposes. - Default is true. - - @param enabled set false to bypass all compression - - - Gets or Sets JavaScript compressor implementation that will be used - to compress inline JavaScript in HTML. - - - Returns CSS compressor implementation that will be used - to compress inline CSS in HTML. - - - If set to true all HTML comments will be removed. - Default is true. - - @param removeComments set true to remove all HTML comments - - - If set to true all multiple whitespace characters will be replaced with single spaces. - Default is true. - - @param removeMultiSpaces set true to replace all multiple whitespace characters - will single spaces. - - - - - Enables JavaScript compression within <script> tags - if set to true. Default is false for performance reasons. - -

Note: Compressing JavaScript is not recommended if pages are - compressed dynamically on-the-fly because of performance impact. - You should consider putting JavaScript into a separate file and - compressing it using standalone YUICompressor for example.

- - @param compressJavaScript set true to enable JavaScript compression. - Default is false -
- - Enables CSS compression within <style> tags using - Yahoo YUI ICompressor - if set to true. Default is false for performance reasons. - -

Note: Compressing CSS is not recommended if pages are - compressed dynamically on-the-fly because of performance impact. - You should consider putting CSS into a separate file and - compressing it using standalone YUICompressor for example.

- - @param compressCss set true to enable CSS compression. - Default is false -
- - If set to true, existing DOCTYPE declaration will be replaced with simple <!DOCTYPE html> declaration. - Default is false. - - @param simpleDoctype set true to replace existing DOCTYPE declaration with <!DOCTYPE html> - - - - If set to true, type="text/style" attributes will be removed from <style> tags. Default is false. - - @param removeStyleAttributes set true to remove type="text/style" attributes from <style> tags - - - - If set to true, method="get" attributes will be removed from <form> tags. Default is false. - - @param removeFormAttributes set true to remove method="get" attributes from <form> tags - - - If set to true, type="text" attributes will be removed from <input> tags. Default is false. - - @param removeInputAttributes set true to remove type="text" attributes from <input> tags - - - - - - - - - - Returns {@link HtmlCompressorStatistics} object containing statistics of the last HTML compression, if enabled. - Should be called after {@link #compress(string)} - - @return {@link HtmlCompressorStatistics} object containing last HTML compression statistics - - @see HtmlCompressorStatistics - @see #setGenerateStatistics(bool) - - - The main method that compresses given HTML source and returns compressed - result. - - @param html HTML content to compress - @return compressed content. - - - Returns metrics of an uncompressed document - - @return metrics of an uncompressed document - @see HtmlMetrics - - - Returns metrics of a compressed document - - @return metrics of a compressed document - @see HtmlMetrics - - - - Returns total size of blocks that were skipped by the compressor - (for example content inside <pre> tags or inside - <script> tags with disabled javascript compression) - - @return the total size of blocks that were skipped by the compressor, in bytes - - - Returns total filesize of a document - - @return total filesize of a document, in bytes - - - Returns number of empty characters (spaces, tabs, end of lines) in a document - - @return number of empty characters in a document - - - Returns total size of inline <script> tags - - @return total size of inline <script> tags, in bytes - - - Returns total size of inline <style> tags - - @return total size of inline <style> tags, in bytes - - - Returns total size of inline event handlers (onclick, etc) - - @return total size of inline event handlers, in bytes - - - - End a ServiceStack Request - - - - - End a ServiceStack Request - - - - - End a HttpHandler Request - - - - - End a HttpHandler Request - - - - - End an MQ Request - - - - - End a ServiceStack Request with no content - - - - - Gets string value from Items[name] then Cookies[name] if exists. - Useful when *first* setting the users response cookie in the request filter. - To access the value for this initial request you need to set it in Items[]. - - string value or null if it doesn't exist - - - - Gets request paramater string value by looking in the following order: - - QueryString[name] - - FormData[name] - - Cookies[name] - - Items[name] - - string value or null if it doesn't exist - - - * - Input: http://localhost:96/Cambia3/Temp/Test.aspx/path/info?q=item#fragment - - Some HttpRequest path and URL properties: - Request.ApplicationPath: /Cambia3 - Request.CurrentExecutionFilePath: /Cambia3/Temp/Test.aspx - Request.FilePath: /Cambia3/Temp/Test.aspx - Request.Path: /Cambia3/Temp/Test.aspx/path/info - Request.PathInfo: /path/info - Request.PhysicalApplicationPath: D:\Inetpub\wwwroot\CambiaWeb\Cambia3\ - Request.QueryString: /Cambia3/Temp/Test.aspx/path/info?query=arg - Request.Url.AbsolutePath: /Cambia3/Temp/Test.aspx/path/info - Request.Url.AbsoluteUri: http://localhost:96/Cambia3/Temp/Test.aspx/path/info?query=arg - Request.Url.Fragment: - Request.Url.Host: localhost - Request.Url.LocalPath: /Cambia3/Temp/Test.aspx/path/info - Request.Url.PathAndQuery: /Cambia3/Temp/Test.aspx/path/info?query=arg - Request.Url.Port: 96 - Request.Url.Query: ?query=arg - Request.Url.Scheme: http - Request.Url.Segments: / - Cambia3/ - Temp/ - Test.aspx/ - path/ - info - * - - - - Duplicate Params are given a unique key by appending a #1 suffix - - - - - Duplicate params have their values joined together in a comma-delimited string - - - - - Use this to treat Request.Items[] as a cache by returning pre-computed items to save - calculating them multiple times. - - - - - Sets a persistent cookie which never expires - - - - - Sets a session cookie which expires after the browser session closes - - - - - Sets a persistent cookie which expires after the given time - - - - - Sets a persistent cookie with an expiresAt date - - - - - Deletes a specified cookie by setting its value to empty and expiration to -1 days - - - - - Writes to response. - Response headers are customizable by implementing IHasOptions an returning Dictionary of Http headers. - - The response. - Whether or not it was implicity handled by ServiceStack's built-in handlers. - The default action. - The serialization context. - Add prefix to response body if any - Add suffix to response body if any - - - - - When HTTP Headers have already been written and only the Body can be written - - - - - Respond with a 'Soft redirect' so smart clients (e.g. ajax) have access to the response and - can decide whether or not they should redirect - - - - - Decorate the response with an additional client-side event to instruct participating - smart clients (e.g. ajax) with hints to transparently invoke client-side functionality - - - - - Shortcut to get the ResponseDTO whether it's bare or inside a IHttpResult - - - - - - - Alias of AsDto - - - - - Shortcut to get the ResponseDTO whether it's bare or inside a IHttpResult - - - TResponse if found; otherwise null - - - - Alias of AsDto - - - - - Whether the response is an IHttpError or Exception - - - - - rangeHeader should be of the format "bytes=0-" or "bytes=0-12345" or "bytes=123-456" - - - - - Adds 206 PartialContent Status, Content-Range and Content-Length headers - - - - - Writes partial range as specified by start-end, from fromStream to toStream. - - - - - Writes partial range as specified by start-end, from fromStream to toStream. - - - - - ASP.NET or HttpListener ServiceStack host - - - - - The assemblies reflected to find api services provided in the AppHost constructor - - - - - Register dependency in AppHost IOC on Startup - - - - - AutoWired Registration of an interface with a concrete type in AppHost IOC on Startup. - - - - - Allows the clean up for executed autowired services and filters. - Calls directly after services and filters are executed. - - - - - Called at the end of each request. Enables Request Scope. - - - - - Register callbacks to be called at the end of each request. - - - - - Register user-defined custom routes. - - - - - Inferred Metadata available from existing services - - - - - Register custom ContentType serializers - - - - - Add Request Filters, to be applied before the dto is deserialized - - - - - Add Request Converter to convert Request DTO's - - - - - Add Response Converter to convert Response DTO's - - - - - Add Request Filters for HTTP Requests - - - - - Add Async Request Filters for HTTP Requests - - - - - Add Response Filters for HTTP Responses - - - - - Add Async Response Filters for HTTP Responses - - - - - Add Request Filters for MQ/TCP Requests - - - - - Add Async Request Filters for MQ/TCP Requests - - - - - Add Response Filters for MQ/TCP Responses - - - - - Add Request Filter for a specific Request DTO Type - - - - - Add as a Typed Request Filter for a specific Request DTO Type - - The DTO Type. - The methods to resolve the . - - - - Add Request Filter for a specific Response DTO Type - - - - - Add as a Typed Request Filter for a specific Request DTO Type - - The DTO Type. - The methods to resolve the . - - - - Add Request Filter for a specific MQ Request DTO Type - - - - - Add Request Filter for a specific MQ Response DTO Type - - - - - Add Request Filter for Service Gateway Requests - - - - - Add Response Filter for Service Gateway Responses - - - - - Add alternative HTML View Engines - - - - - Provide an exception handler for unhandled exceptions - - - - - Provide an exception handler for unhandled exceptions (Async) - - - - - Provide an exception handler for un-caught exceptions - - - - - Provide an exception handler for un-caught exceptions (Async) - - - - - Provide callbacks to be fired after the AppHost has finished initializing - - - - - Provide callbacks to be fired when AppHost is being disposed - - - - - Skip the ServiceStack Request Pipeline and process the returned IHttpHandler instead - - - - - Provide a catch-all handler that doesn't match any routes - - - - - Use a fall-back Error Handler for handling global errors - - - - - Use a Custom Error Handler for handling specific error HttpStatusCodes - - - - - Provide a custom model minder for a specific Request DTO - - - - - The AppHost config - - - - - The AppHost AppSettings. Defaults to App or Web.config appSettings. - - - - - Allow specific configuration to be overridden at runtime in multi-tenancy Applications - by overriding GetRuntimeConfig in your AppHost - - - - - Register an Adhoc web service on Startup - - - - - Register all Services in Assembly - - - - - List of pre-registered and user-defined plugins to be enabled in this AppHost - - - - - Apply plugins to this AppHost - - - - - Returns the Absolute File Path, relative from your AppHost's Project Path - - - - - Cascading number of file sources, inc. Embedded Resources, File System, In Memory, S3 - - - - - Read/Write Virtual FileSystem. Defaults to FileSystemVirtualPathProvider - - - - - Register additional Virtual File Sources - - - - - Create a service runner for IService actions - - - - - Resolve the absolute url for this request - - - - - Resolve localized text, returns itself by default. - The Request is provided when exists. - - - - - Execute MQ Message in ServiceStack - - - - - Access Service Controller for ServiceStack - - - - - A convenient repository base class you can inherit from to reduce the boilerplate - with accessing a managed IDbConnection - - - - - A convenient base class for your injected service dependencies that reduces the boilerplate - with managed access to ServiceStack's built-in providers - - - - - Callback for Plugins to register necessary handlers with ServiceStack - - - - - Callback to pre-configure any logic before IPlugin.Register() is fired - - - - - Callback to post-configure any logic after IPlugin.Register() is fired - - - - - Callback for AuthProviders to register callbacks with AuthFeature - - - - - Resolve an alternate Web Service from ServiceStack's IOC container. - - - - - - - How many times to retry processing messages before moving them to the DLQ - - - - - Execute global transformation or custom logic before a request is processed. - Must be thread-safe. - - - - - Execute global transformation or custom logic on the response. - Must be thread-safe. - - - - - If you only want to enable priority queue handlers (and threads) for specific msg types - - - - - Create workers for priority queues - - - - - Opt-in to only publish responses on this white list. - Publishes all responses by default. - - - - - Subscribe to messages sent to .outq - - - - - The max size of the Out MQ Collection in each Type (default 100) - - - - - Encapsulates creating a new message handler - - - - - Processes all messages in a Normal and Priority Queue. - Expects to be called in 1 thread. i.e. Non Thread-Safe. - - - - - - Changes the links for the servicestack/metadata page - - - - - Get the static Parse(string) method on the type supplied - - - - - Gets the constructor info for T(string) if exists. - - - - - Returns the value returned by the 'T.Parse(string)' method if exists otherwise 'new T(string)'. - e.g. if T was a TimeSpan it will return TimeSpan.Parse(textValue). - If there is no Parse Method it will attempt to create a new instance of the destined type - - - - - Determines wheter the Config section identified by the sectionName exists. - - - - - Gets the connection string setting. - - - - - Only generate specified Verb entries for "ANY" routes - - - - - A strongly-typed resource class, for looking up localized strings, etc. - - - - - Returns the cached ResourceManager instance used by this class. - - - - - Overrides the current thread's CurrentUICulture property for all - resource lookups using this strongly typed resource class. - - - - - Looks up a localized string similar to Container service is built-in and read-only.. - - - - - Looks up a localized string similar to Service type {0} does not inherit or implement {1}.. - - - - - Looks up a localized string similar to Required dependency of type {0} named '{1}' could not be resolved.. - - - - - Looks up a localized string similar to Required dependency of type {0} could not be resolved.. - - - - - Looks up a localized string similar to Unknown scope.. - - - - - Transparently Proxy requests through to downstream HTTP Servers - - - - - Customize the HTTP Request Headers that are sent to downstream server - - - - - Customize the downstream HTTP Response Headers that are returned to client - - - - - Inspect or Transform the HTTP Request Body that's sent downstream - - - - - Inspect or Transform the downstream HTTP Response Body that's returned - - - - - Required filters to specify which requests to proxy and which url to use. - - Specify which requests should be proxied - Specify which downstream url to use - - - - Service error logs are kept in 'urn:ServiceErrors:{ServiceName}' - - - - - Combined service error logs are maintained in 'urn:ServiceErrors:All' - - - - - Enable the Registration feature and configure the RegistrationService. - - - - - Abstraction to provide a context per request. - in spnet.web its equivalent to .Current.Items falls back to CallContext - - - - - Tell ServiceStack to use ThreadStatic Items Collection for RequestScoped items. - Warning: ThreadStatic Items aren't pinned to the same request in async services which callback on different threads. - - - - - Start a new Request context, everything deeper in Async pipeline will get this new RequestContext dictionary. - - - - - Gets a list of items for this request. - - This list will be cleared on every request and is specific to the original thread that is handling the request. - If a handler uses additional threads, this data will not be available on those threads. - - - - - Track any IDisposable's to dispose of at the end of the request in IAppHost.OnEndRequest() - - - - - - Release currently registered dependencies for this request - - true if any dependencies were released - - - - Returns the optimized result for the IRequestContext. - Does not use or store results in any cache. - - - - - - - - Returns the optimized result for the IRequestContext. - Does not use or store results in any cache. - - - - - Overload for the method returning the most - optimized result based on the MimeType and CompressionType from the IRequestContext. - - - - - Overload for the method returning the most - optimized result based on the MimeType and CompressionType from the IRequestContext. - How long to cache for, null is no expiration - - - - - Clears all the serialized and compressed caches set - by the 'Resolve' method for the cacheKey provided - - - - - - - - Store an entry in the IHttpRequest.Items Dictionary - - - - - Get an entry from the IHttpRequest.Items Dictionary - - - - - Base class to create request filter attributes only for specific HTTP methods (GET, POST...) - - - - - Creates a new - - Defines when the filter should be executed - - - - This method is only executed if the HTTP method matches the property. - - The http request wrapper - The http response wrapper - The request DTO - - - - Create a ShallowCopy of this instance. - - - - - - Base class to create request filter attributes only for specific HTTP methods (GET, POST...) - - - - - Creates a new - - Defines when the filter should be executed - - - - This method is only executed if the HTTP method matches the property. - - The http request wrapper - The http response wrapper - The request DTO - - - - Create a ShallowCopy of this instance. - - - - - - RequestLogs service Route, default is /requestlogs - - - - - Turn On/Off Session Tracking - - - - - Turn On/Off Logging of Raw Request Body, default is Off - - - - - Turn On/Off Tracking of Responses - - - - - Turn On/Off Tracking of Exceptions - - - - - Don't log matching requests - - - - - Size of InMemoryRollingRequestLogger circular buffer - - - - - Limit access to /requestlogs service to these roles - - - - - Change the RequestLogger provider. Default is InMemoryRollingRequestLogger - - - - - Don't log requests of these types. By default RequestLog's are excluded - - - - - Don't log request bodys for services with sensitive information. - By default Auth and Registration requests are hidden. - - - - - Limit logging to only Service Requests - - - - - Indicates that the request dto, which is associated with this attribute, - can only execute, if the user has specific permissions. - - - - - Indicates that the request dto, which is associated with this attribute, - can only execute, if the user has specific roles. - - - - - Check all session is in all supplied roles otherwise a 401 HttpError is thrown - - - - - - - Indicates that the request dto, which is associated with this attribute, - can only execute, if the user has specific permissions. - - - - - Indicates that the request dto, which is associated with this attribute, - can only execute, if the user has any of the specified roles. - - - - - Check all session is in any supplied roles otherwise a 401 HttpError is thrown - - - - - - - Base class to create response filter attributes only for specific HTTP methods (GET, POST...) - - - - - Creates a new - - Defines when the filter should be executed - - - - This method is only executed if the HTTP method matches the property. - - The http request wrapper - The http response wrapper - The response DTO - - - - Create a ShallowCopy of this instance. - - - - - - Base class to create response filter attributes only for specific HTTP methods (GET, POST...) - - - - - Creates a new - - Defines when the filter should be executed - - - - This method is only executed if the HTTP method matches the property. - - The http request wrapper - The http response wrapper - The response DTO - - - - Create a ShallowCopy of this instance. - - - - - - Generic + Useful IService base class - - - - - Returns . cache is only persisted for this running app instance. - - - - - Cascading collection of virtual file sources, inc. Embedded Resources, File System, In Memory, S3 - - - - - Read/Write Virtual FileSystem. Defaults to FileSystemVirtualPathProvider - - - - - Dynamic Session Bag - - - - - Typed UserSession - - - - - If user found in session for this request is authenticated. - - - - - Publish a MQ message over the implementation. - - - - - Disposes all created disposable properties of this service - and executes disposing of all request s - (warning, manualy triggering this might lead to unwanted disposing of all request related objects and services.) - - - - - Scans the supplied Assemblies to infer REST paths and HTTP verbs. - - The instance. - - The assemblies with REST services. - - The same instance; - never . - - - - Typed UserSession - - - - - Dynamic Session Bag - - - - - Configure ServiceStack to have ISession support - - - - - Create the active Session or Permanent Session Id cookie. - - - - - - Create both Permanent and Session Id cookies and return the active sessionId - - - - - - Optimized code to find if GZIP is supported from: - - http://dotnetperls.com/gzip-request - - Other resources for GZip, deflate resources: - - http://www.west-wind.com/Weblog/posts/10564.aspx - - http://www.west-wind.com/WebLog/posts/102969.aspx - - ICSharpCode - - - - - This class interecepts 401 requests and changes them to 402 errors. When this happens the FormAuthentication module - will no longer hijack it and redirect back to login because it is a 402 error, not a 401. - When the request ends, this class sets the status code back to 401 and everything works as it should. - - PathToSupress is the path inside your website where the above swap should happen. - - If you can build for .net 4.5, you do not have to do this swap. You can take advantage of a new flag (SuppressFormsAuthenticationRedirect) - that tells the FormAuthenticationModule to not redirect, which also means you will not need the EndRequest code. - - - - - Load Embedded Resource Templates in ServiceStack. - To get ServiceStack to use your own instead just add a copy of one or more of the following to your Web Root: - ~/Templates/IndexOperations.html - ~/Templates/OperationControl.html - ~/Templates/HtmlFormat.html - - - - - Converts the validation result to an error result which will be serialized by ServiceStack in a clean and human-readable way. - - The validation result - - - - - Converts the validation result to an error exception which will be serialized by ServiceStack in a clean and human-readable way - if the returned exception is thrown. - - The validation result - - - - - Creates a new instance of the RulesetValidatorSelector. - - - - - Determines whether or not a rule should execute. - - The rule - Property path (eg Customer.Address.Line1) - Contextual information - Whether or not the validator can execute. - - - - Activate the validation mechanism, so every request DTO with an existing validator - will be validated. - - The app host - - - - Override to provide additional/less context about the Service Exception. - By default the request is serialized and appended to the ResponseStatus StackTrace. - - - - - Auto-scans the provided assemblies for a - and registers it in the provided IoC container. - - The IoC container - The assemblies to scan for a validator - - - - Main container class for components, supporting container hierarchies and - lifetime management of instances. - - - - - Register an autowired dependency - - - - - - Register an autowired dependency - - Name of dependency - - - - - Register an autowired dependency as a separate type - - - - - - Register an autowired dependency as a separate type - - - - - - Alias for RegisterAutoWiredAs - - - - - - Alias for RegisterAutoWiredAs - - - - - - Auto-wires an existing instance, - ie all public properties are tried to be resolved. - - - - - - Generates a function which creates and auto-wires . - - - - - - - - Auto-wires an existing instance of a specific type. - The auto-wiring progress is also cached to be faster - when calling next time with the same type. - - - - - - Initializes a new empty container. - - - - - Default owner for new registrations. by default. - - - - - Default reuse scope for new registrations. by default. - - - - - Creates a child container of the current one, which exposes its - current service registration to the new child container. - - - - - Disposes the container and all instances owned by it (see - ), as well as all child containers - created through . - - - - - Registers a service instance with the container. This instance - will have and - behavior. - Service instance to use. - - - - Registers a named service instance with the container. This instance - will have and - behavior. - Name of the service to register.Service instance to use. - - - - Retrieves a function that can be used to lazily resolve an instance - of the service when needed. - Type of the service to retrieve.The function that can resolve to the service instance when invoked.The requested service has not been registered previously. - - - - - - - - - - - - - - - - - - - - - - Retrieves a function that can be used to lazily resolve an instance - of the service with the given name when needed. - Type of the service to retrieve.Name of the service to retrieve.The function that can resolve to the service instance with the given name when invoked.The requested service with the given name has not been registered previously. - - - - Retrieves a function that can be used to lazily resolve an instance - of the service of the given type, name and service constructor arguments when needed. - Name of the service to retrieve.The function that can resolve to the service instance with the given and service constructor arguments name when invoked.The requested service with the given name and constructor arguments has not been registered previously. - - - - Retrieves a function that can be used to lazily resolve an instance - of the service of the given type, name and service constructor arguments when needed. - Name of the service to retrieve.The function that can resolve to the service instance with the given and service constructor arguments name when invoked.The requested service with the given name and constructor arguments has not been registered previously. - - - - Retrieves a function that can be used to lazily resolve an instance - of the service of the given type, name and service constructor arguments when needed. - Name of the service to retrieve.The function that can resolve to the service instance with the given and service constructor arguments name when invoked.The requested service with the given name and constructor arguments has not been registered previously. - - - - Retrieves a function that can be used to lazily resolve an instance - of the service of the given type, name and service constructor arguments when needed. - Name of the service to retrieve.The function that can resolve to the service instance with the given and service constructor arguments name when invoked.The requested service with the given name and constructor arguments has not been registered previously. - - - - Retrieves a function that can be used to lazily resolve an instance - of the service of the given type, name and service constructor arguments when needed. - Name of the service to retrieve.The function that can resolve to the service instance with the given and service constructor arguments name when invoked.The requested service with the given name and constructor arguments has not been registered previously. - - - - Retrieves a function that can be used to lazily resolve an instance - of the service of the given type, name and service constructor arguments when needed. - Name of the service to retrieve.The function that can resolve to the service instance with the given and service constructor arguments name when invoked.The requested service with the given name and constructor arguments has not been registered previously. - - - - Registers the given service by providing a factory delegate to - instantiate it. - The service type to register.The factory delegate to initialize new instances of the service when needed.The registration object to perform further configuration via its fluent interface. - - - - Registers the given service by providing a factory delegate that receives arguments to - instantiate it. - The service type to register.First argument that should be passed to the factory delegate to create the instace.The factory delegate to initialize new instances of the service when needed.The registration object to perform further configuration via its fluent interface. - - - - Registers the given service by providing a factory delegate that receives arguments to - instantiate it. - The service type to register.First argument that should be passed to the factory delegate to create the instace.Second argument that should be passed to the factory delegate to create the instace.The factory delegate to initialize new instances of the service when needed.The registration object to perform further configuration via its fluent interface. - - - - Registers the given service by providing a factory delegate that receives arguments to - instantiate it. - The service type to register.First argument that should be passed to the factory delegate to create the instace.Second argument that should be passed to the factory delegate to create the instace.Third argument that should be passed to the factory delegate to create the instace.The factory delegate to initialize new instances of the service when needed.The registration object to perform further configuration via its fluent interface. - - - - Registers the given service by providing a factory delegate that receives arguments to - instantiate it. - The service type to register.First argument that should be passed to the factory delegate to create the instace.Second argument that should be passed to the factory delegate to create the instace.Third argument that should be passed to the factory delegate to create the instace.Fourth argument that should be passed to the factory delegate to create the instace.The factory delegate to initialize new instances of the service when needed.The registration object to perform further configuration via its fluent interface. - - - - Registers the given service by providing a factory delegate that receives arguments to - instantiate it. - The service type to register.First argument that should be passed to the factory delegate to create the instace.Second argument that should be passed to the factory delegate to create the instace.Third argument that should be passed to the factory delegate to create the instace.Fourth argument that should be passed to the factory delegate to create the instace.Fifth argument that should be passed to the factory delegate to create the instace.The factory delegate to initialize new instances of the service when needed.The registration object to perform further configuration via its fluent interface. - - - - Registers the given service by providing a factory delegate that receives arguments to - instantiate it. - The service type to register.First argument that should be passed to the factory delegate to create the instace.Second argument that should be passed to the factory delegate to create the instace.Third argument that should be passed to the factory delegate to create the instace.Fourth argument that should be passed to the factory delegate to create the instace.Fifth argument that should be passed to the factory delegate to create the instace.Sixth argument that should be passed to the factory delegate to create the instace.The factory delegate to initialize new instances of the service when needed.The registration object to perform further configuration via its fluent interface. - - - - Registers the given named service by providing a factory delegate to - instantiate it. - The service type to register.A name used to differenciate this service registration.The factory delegate to initialize new instances of the service when needed.The registration object to perform further configuration via its fluent interface. - - - - Registers the given named service by providing a factory delegate that receives arguments to - instantiate it. - The service type to register.First argument that should be passed to the factory delegate to create the instace.A name used to differenciate this service registration.The factory delegate to initialize new instances of the service when needed.The registration object to perform further configuration via its fluent interface. - - - - Registers the given named service by providing a factory delegate that receives arguments to - instantiate it. - The service type to register.First argument that should be passed to the factory delegate to create the instace.Second argument that should be passed to the factory delegate to create the instace.A name used to differenciate this service registration.The factory delegate to initialize new instances of the service when needed.The registration object to perform further configuration via its fluent interface. - - - - Registers the given named service by providing a factory delegate that receives arguments to - instantiate it. - The service type to register.First argument that should be passed to the factory delegate to create the instace.Second argument that should be passed to the factory delegate to create the instace.Third argument that should be passed to the factory delegate to create the instace.A name used to differenciate this service registration.The factory delegate to initialize new instances of the service when needed.The registration object to perform further configuration via its fluent interface. - - - - Registers the given named service by providing a factory delegate that receives arguments to - instantiate it. - The service type to register.First argument that should be passed to the factory delegate to create the instace.Second argument that should be passed to the factory delegate to create the instace.Third argument that should be passed to the factory delegate to create the instace.Fourth argument that should be passed to the factory delegate to create the instace.A name used to differenciate this service registration.The factory delegate to initialize new instances of the service when needed.The registration object to perform further configuration via its fluent interface. - - - - Registers the given named service by providing a factory delegate that receives arguments to - instantiate it. - The service type to register.First argument that should be passed to the factory delegate to create the instace.Second argument that should be passed to the factory delegate to create the instace.Third argument that should be passed to the factory delegate to create the instace.Fourth argument that should be passed to the factory delegate to create the instace.Fifth argument that should be passed to the factory delegate to create the instace.A name used to differenciate this service registration.The factory delegate to initialize new instances of the service when needed.The registration object to perform further configuration via its fluent interface. - - - - Registers the given named service by providing a factory delegate that receives arguments to - instantiate it. - The service type to register.First argument that should be passed to the factory delegate to create the instace.Second argument that should be passed to the factory delegate to create the instace.Third argument that should be passed to the factory delegate to create the instace.Fourth argument that should be passed to the factory delegate to create the instace.Fifth argument that should be passed to the factory delegate to create the instace.Sixth argument that should be passed to the factory delegate to create the instace.A name used to differenciate this service registration.The factory delegate to initialize new instances of the service when needed.The registration object to perform further configuration via its fluent interface. - - - - Resolves the given service by type, without passing any arguments for - its construction. - Type of the service to retrieve.The resolved service instance.The given service could not be resolved. - - - - Resolves the given service by type, passing the given arguments - for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.The resolved service instance.The given service could not be resolved. - - - - Resolves the given service by type, passing the given arguments - for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.The resolved service instance.The given service could not be resolved. - - - - Resolves the given service by type, passing the given arguments - for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.Third argument to pass to the factory delegate that may create the instace.The resolved service instance.The given service could not be resolved. - - - - Resolves the given service by type, passing the given arguments - for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.Third argument to pass to the factory delegate that may create the instace.Fourth argument to pass to the factory delegate that may create the instace.The resolved service instance.The given service could not be resolved. - - - - Resolves the given service by type, passing the given arguments - for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.Third argument to pass to the factory delegate that may create the instace.Fourth argument to pass to the factory delegate that may create the instace.Fifth argument to pass to the factory delegate that may create the instace.The resolved service instance.The given service could not be resolved. - - - - Resolves the given service by type, passing the given arguments - for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.Third argument to pass to the factory delegate that may create the instace.Fourth argument to pass to the factory delegate that may create the instace.Fifth argument to pass to the factory delegate that may create the instace.Sixth argument to pass to the factory delegate that may create the instace.The resolved service instance.The given service could not be resolved. - - - - Resolves the given service by type and name, without passing arguments for its initialization. - Type of the service to retrieve.The resolved service instance.The given service could not be resolved. - - - - Resolves the given service by type and name, passing the given arguments - for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.The resolved service instance.The given service could not be resolved. - - - - Resolves the given service by type and name, passing the given arguments - for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.The resolved service instance.The given service could not be resolved. - - - - Resolves the given service by type and name, passing the given arguments - for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.Third argument to pass to the factory delegate that may create the instace.The resolved service instance.The given service could not be resolved. - - - - Resolves the given service by type and name, passing the given arguments - for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.Third argument to pass to the factory delegate that may create the instace.Fourth argument to pass to the factory delegate that may create the instace.The resolved service instance.The given service could not be resolved. - - - - Resolves the given service by type and name, passing the given arguments - for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.Third argument to pass to the factory delegate that may create the instace.Fourth argument to pass to the factory delegate that may create the instace.Fifth argument to pass to the factory delegate that may create the instace.The resolved service instance.The given service could not be resolved. - - - - Resolves the given service by type and name, passing the given arguments - for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.Third argument to pass to the factory delegate that may create the instace.Fourth argument to pass to the factory delegate that may create the instace.Fifth argument to pass to the factory delegate that may create the instace.Sixth argument to pass to the factory delegate that may create the instace.The resolved service instance.The given service could not be resolved. - - - - Attempts to resolve the given service by type, without passing arguments for its initialization. - Type of the service to retrieve. - The resolved service instance or if it cannot be resolved. - - - - - Attempts to resolve the given service by type, passing the - given arguments arguments for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace. - The resolved service instance or if it cannot be resolved. - - - - - Attempts to resolve the given service by type, passing the - given arguments arguments for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace. - The resolved service instance or if it cannot be resolved. - - - - - Attempts to resolve the given service by type, passing the - given arguments arguments for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.Third argument to pass to the factory delegate that may create the instace. - The resolved service instance or if it cannot be resolved. - - - - - Attempts to resolve the given service by type, passing the - given arguments arguments for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.Third argument to pass to the factory delegate that may create the instace.Fourth argument to pass to the factory delegate that may create the instace. - The resolved service instance or if it cannot be resolved. - - - - - Attempts to resolve the given service by type, passing the - given arguments arguments for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.Third argument to pass to the factory delegate that may create the instace.Fourth argument to pass to the factory delegate that may create the instace.Fifth argument to pass to the factory delegate that may create the instace. - The resolved service instance or if it cannot be resolved. - - - - - Attempts to resolve the given service by type, passing the - given arguments arguments for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.Third argument to pass to the factory delegate that may create the instace.Fourth argument to pass to the factory delegate that may create the instace.Fifth argument to pass to the factory delegate that may create the instace.Sixth argument to pass to the factory delegate that may create the instace. - The resolved service instance or if it cannot be resolved. - - - - - Attempts to resolve the given service by type and name, without passing - arguments arguments for its initialization. - Type of the service to retrieve. - The resolved service instance or if it cannot be resolved. - - - - - Attempts to resolve the given service by type and name, passing the - given arguments arguments for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace. - The resolved service instance or if it cannot be resolved. - - - - - Attempts to resolve the given service by type and name, passing the - given arguments arguments for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace. - The resolved service instance or if it cannot be resolved. - - - - - Attempts to resolve the given service by type and name, passing the - given arguments arguments for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.Third argument to pass to the factory delegate that may create the instace. - The resolved service instance or if it cannot be resolved. - - - - - Attempts to resolve the given service by type and name, passing the - given arguments arguments for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.Third argument to pass to the factory delegate that may create the instace.Fourth argument to pass to the factory delegate that may create the instace. - The resolved service instance or if it cannot be resolved. - - - - - Attempts to resolve the given service by type and name, passing the - given arguments arguments for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.Third argument to pass to the factory delegate that may create the instace.Fourth argument to pass to the factory delegate that may create the instace.Fifth argument to pass to the factory delegate that may create the instace. - The resolved service instance or if it cannot be resolved. - - - - - Attempts to resolve the given service by type and name, passing the - given arguments arguments for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.Third argument to pass to the factory delegate that may create the instace.Fourth argument to pass to the factory delegate that may create the instace.Fifth argument to pass to the factory delegate that may create the instace.Sixth argument to pass to the factory delegate that may create the instace. - The resolved service instance or if it cannot be resolved. - - - - - Encapsulates a method that has five parameters and returns a value of the - type specified by the parameter. - - - - - Encapsulates a method that has six parameters and returns a value of the - type specified by the parameter. - - - - - Encapsulates a method that has seven parameters and returns a value of the - type specified by the parameter. - - - - - Helper interface used to hide the base - members from the fluent API to make for much cleaner - Visual Studio intellisense experience. - - - - - - - - - - - - - - - - - Funqlets are a set of components provided as a package - to an existing container (like a module). - - - - - Configure the given container with the - registrations provided by the funqlet. - - Container to register. - - - - Interface used by plugins to contribute registrations - to an existing container. - - - - - Determines who is responsible for disposing instances - registered with a container. - - - - - Container should dispose provided instances when it is disposed. This is the - default. - - - - - Container does not dispose provided instances. - - - - - Default owner, which equals . - - - - - Exception thrown by the container when a service cannot be resolved. - - - - - Initializes the exception with the service that could not be resolved. - - - - - Initializes the exception with the service (and its name) that could not be resolved. - - - - - Initializes the exception with an arbitrary message. - - - - - Determines visibility and reuse of instances provided by the container. - - - - - Instances are reused within a container hierarchy. Instances - are created (if necessary) in the container where the registration - was performed, and are reused by all descendent containers. - - - - - Instances are reused only at the given container. Descendent - containers do not reuse parent container instances and get - a new instance at their level. - - - - - Each request to resolve the dependency will result in a new - instance being returned. - - - - - Instaces are reused within the given request - - - - - Default scope, which equals . - - - - - Ownership setting for the service. - - - - - Reuse scope setting for the service. - - - - - The container where the entry was registered. - - - - - Specifies the owner for instances, which determines how - they will be disposed. - - - - - Specifies the scope for instances, which determines - visibility of instances across containers and hierarchies. - - - - - The Func delegate that creates instances of the service. - - - - - The cached service instance if the scope is or - . - - - - - The Func delegate that initializes the object after creation. - - - - - Clones the service entry assigning the to the - . Does not copy the . - - - - - Fluent API for customizing the registration of a service. - - - - - Fluent API for customizing the registration of a service. - - - - - Fluent API that allows registering an initializer for the - service. - - - - - Specifies an initializer that should be invoked after - the service instance has been created by the factory. - - - - - Fluent API that exposes both - and owner (). - - - - - Fluent API that allows specifying the reuse instances. - - - - - Specifies how instances are reused within a container or hierarchy. Default - scope is . - - - - - Fluent API that allows specifying the owner of instances - created from a registration. - - - - - Specifies the owner of instances created from this registration. Default - owner is . - - - - diff --git a/lib/netstandard2.0/ServiceStack.Client.deps.json b/lib/netstandard2.0/ServiceStack.Client.deps.json deleted file mode 100644 index f7c11f3..0000000 --- a/lib/netstandard2.0/ServiceStack.Client.deps.json +++ /dev/null @@ -1,1238 +0,0 @@ -{ - "runtimeTarget": { - "name": ".NETStandard,Version=v2.0/", - "signature": "7462aec951f7071aadd3f8fe28be2f9f9fa90a04" - }, - "compilationOptions": {}, - "targets": { - ".NETStandard,Version=v2.0": {}, - ".NETStandard,Version=v2.0/": { - "ServiceStack.Client/1.0.0": { - "dependencies": { - "Microsoft.Extensions.Primitives": "2.0.0", - "NETStandard.Library": "2.0.1", - "ServiceStack.Interfaces": "1.0.0", - "System.Collections.Specialized": "4.3.0", - "System.Net.Requests": "4.3.0", - "System.ServiceModel.Primitives": "4.4.0", - "System.Xml.XmlSerializer": "4.3.0", - "ServiceStack.Text": "5.0.0.0" - }, - "runtime": { - "ServiceStack.Client.dll": {} - } - }, - "Microsoft.Extensions.Primitives/2.0.0": { - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "4.4.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll": {} - } - }, - "Microsoft.NETCore.Platforms/2.0.0": {}, - "Microsoft.NETCore.Targets/1.1.0": {}, - "NETStandard.Library/2.0.1": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0" - } - }, - "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.native.System/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.native.System.Net.Http/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.native.System.Security.Cryptography.Apple/4.3.0": { - "dependencies": { - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" - } - }, - "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "dependencies": { - "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {}, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "System.Buffers/4.4.0": { - "runtime": { - "lib/netstandard2.0/System.Buffers.dll": {} - } - }, - "System.Collections/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Collections.Concurrent/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.Reflection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Collections.Concurrent.dll": {} - } - }, - "System.Collections.NonGeneric/4.3.0": { - "dependencies": { - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Collections.NonGeneric.dll": {} - } - }, - "System.Collections.Specialized/4.3.0": { - "dependencies": { - "System.Collections.NonGeneric": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Extensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Collections.Specialized.dll": {} - } - }, - "System.Diagnostics.Debug/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Diagnostics.DiagnosticSource/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Diagnostics.DiagnosticSource.dll": {} - } - }, - "System.Diagnostics.Tracing/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Globalization/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Globalization.Calendars/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Globalization": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Globalization.Extensions/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.InteropServices": "4.3.0" - } - }, - "System.IO/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.IO.FileSystem/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.IO.FileSystem.Primitives/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.IO.FileSystem.Primitives.dll": {} - } - }, - "System.Linq/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0" - }, - "runtime": { - "lib/netstandard1.6/System.Linq.dll": {} - } - }, - "System.Net.Http/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.DiagnosticSource": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Extensions": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.OpenSsl": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Security.Cryptography.X509Certificates": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "runtime.native.System": "4.3.0", - "runtime.native.System.Net.Http": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Net.Http.WinHttpHandler/4.4.0": { - "dependencies": { - "System.Buffers": "4.4.0" - }, - "runtime": { - "lib/netstandard2.0/System.Net.Http.WinHttpHandler.dll": {} - } - }, - "System.Net.Primitives/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0" - } - }, - "System.Net.Requests/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Net.Http": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Net.WebHeaderCollection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Net.WebHeaderCollection/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Net.WebHeaderCollection.dll": {} - } - }, - "System.Private.ServiceModel/4.4.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "System.Net.Http.WinHttpHandler": "4.4.0", - "System.Reflection.DispatchProxy": "4.4.0", - "System.Security.Principal.Windows": "4.4.0" - } - }, - "System.Reflection/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.DispatchProxy/4.4.0": { - "runtime": { - "lib/netstandard2.0/System.Reflection.DispatchProxy.dll": {} - } - }, - "System.Reflection.Emit/4.3.0": { - "dependencies": { - "System.IO": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Reflection.Emit.dll": {} - } - }, - "System.Reflection.Emit.ILGeneration/4.3.0": { - "dependencies": { - "System.Reflection": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Reflection.Emit.ILGeneration.dll": {} - } - }, - "System.Reflection.Extensions/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.Primitives/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.TypeExtensions/4.3.0": { - "dependencies": { - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.5/System.Reflection.TypeExtensions.dll": {} - } - }, - "System.Resources.ResourceManager/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Globalization": "4.3.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "System.Runtime.CompilerServices.Unsafe/4.4.0": { - "runtime": { - "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll": {} - } - }, - "System.Runtime.Extensions/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime.Handles/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime.InteropServices/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Reflection": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0" - } - }, - "System.Runtime.Numerics/4.3.0": { - "dependencies": { - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Runtime.Numerics.dll": {} - } - }, - "System.Runtime.Serialization.Primitives/4.3.0": { - "dependencies": { - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Runtime.Serialization.Primitives.dll": {} - } - }, - "System.Security.Cryptography.Algorithms/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "System.Collections": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.Apple": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Security.Cryptography.Cng/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0" - } - }, - "System.Security.Cryptography.Csp/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "System.IO": "4.3.0", - "System.Reflection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.Security.Cryptography.Encoding/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "System.Collections": "4.3.0", - "System.Collections.Concurrent": "4.3.0", - "System.Linq": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Security.Cryptography.OpenSsl/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - }, - "runtime": { - "lib/netstandard1.6/System.Security.Cryptography.OpenSsl.dll": {} - } - }, - "System.Security.Cryptography.Primitives/4.3.0": { - "dependencies": { - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Security.Cryptography.Primitives.dll": {} - } - }, - "System.Security.Cryptography.X509Certificates/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Calendars": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Cng": "4.3.0", - "System.Security.Cryptography.Csp": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.OpenSsl": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "runtime.native.System": "4.3.0", - "runtime.native.System.Net.Http": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Security.Principal.Windows/4.4.0": { - "runtime": { - "lib/netstandard2.0/System.Security.Principal.Windows.dll": {} - } - }, - "System.ServiceModel.Primitives/4.4.0": { - "dependencies": { - "System.Private.ServiceModel": "4.4.0" - }, - "runtime": { - "lib/netstandard2.0/System.ServiceModel.Primitives.dll": {} - } - }, - "System.Text.Encoding/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Text.Encoding.Extensions/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Text.Encoding": "4.3.0" - } - }, - "System.Text.RegularExpressions/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - }, - "runtime": { - "lib/netstandard1.6/System.Text.RegularExpressions.dll": {} - } - }, - "System.Threading/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.0", - "System.Threading.Tasks": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Threading.dll": {} - } - }, - "System.Threading.Tasks/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Threading.Tasks.Extensions/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading.Tasks": "4.3.0" - }, - "runtime": { - "lib/netstandard1.0/System.Threading.Tasks.Extensions.dll": {} - } - }, - "System.Xml.ReaderWriter/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Text.Encoding.Extensions": "4.3.0", - "System.Text.RegularExpressions": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "System.Threading.Tasks.Extensions": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Xml.ReaderWriter.dll": {} - } - }, - "System.Xml.XmlDocument/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "System.Xml.ReaderWriter": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Xml.XmlDocument.dll": {} - } - }, - "System.Xml.XmlSerializer/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Linq": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Emit": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Reflection.TypeExtensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Text.RegularExpressions": "4.3.0", - "System.Threading": "4.3.0", - "System.Xml.ReaderWriter": "4.3.0", - "System.Xml.XmlDocument": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Xml.XmlSerializer.dll": {} - } - }, - "ServiceStack.Interfaces/1.0.0": { - "dependencies": { - "System.Runtime.Serialization.Primitives": "4.3.0" - }, - "runtime": { - "ServiceStack.Interfaces.dll": {} - } - }, - "ServiceStack.Text/5.0.0.0": { - "runtime": { - "ServiceStack.Text.dll": {} - } - } - } - }, - "libraries": { - "ServiceStack.Client/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "Microsoft.Extensions.Primitives/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ukg53qNlqTrK38WA30b5qhw0GD7y3jdI9PHHASjdKyTcBHTevFM2o23tyk3pWCgAV27Bbkm+CPQ2zUe1ZOuYSA==", - "path": "microsoft.extensions.primitives/2.0.0", - "hashPath": "microsoft.extensions.primitives.2.0.0.nupkg.sha512" - }, - "Microsoft.NETCore.Platforms/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-VdLJOCXhZaEMY7Hm2GKiULmn7IEPFE4XC5LPSfBVCUIA8YLZVh846gtfBJalsPQF2PlzdD7ecX7DZEulJ402ZQ==", - "path": "microsoft.netcore.platforms/2.0.0", - "hashPath": "microsoft.netcore.platforms.2.0.0.nupkg.sha512" - }, - "Microsoft.NETCore.Targets/1.1.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-vs9c3q7errTVkO1Yh7FoI0eSNvkAIffVpnkygE76Vz8Eo9YtqycOEefrm4iOLMOyMvQIv0Nlw684nt2CDdlzig==", - "path": "microsoft.netcore.targets/1.1.0", - "hashPath": "microsoft.netcore.targets.1.1.0.nupkg.sha512" - }, - "NETStandard.Library/2.0.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-oA6nwv9MhEKYvLpjZ0ggSpb1g4CQViDVQjLUcDWg598jtvJbpfeP2reqwI1GLW2TbxC/Ml7xL6BBR1HmKPXlTg==", - "path": "netstandard.library/2.0.1", - "hashPath": "netstandard.library.2.0.1.nupkg.sha512" - }, - "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-XrmXcVFIyqVN6VRAC8NSVkQJ+c87MzDmb6b9+TgzXDmjJrlz5zx0v3RyrLy1Cs3CAWMk5bKQejtd1T0QKnEJUw==", - "path": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-r15mfA0DanSK+3Z3FyVJxjbTeDnSI8TvXofwii/3dqxHYTAv9Ke7duxTjq8Bo/HUoMOJ0eDbRXjIQ5RvUsJ+Jw==", - "path": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-LtkpYGXuZ9olCJH/Z7nWBa5nImH9EnRyloaZeHBeyhDRxoTNe4pZBhwR4ta7nHO9UI/82iWlriOL4fdWNNk4wA==", - "path": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.native.System/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-RfctibzVgLyVGPMn6bT7ntJhkDsdOsYHa76NX7OZdw4t56p2QvBKMhfmrqcM1gBS12GwAyPpAbyHxs7jLyy5jw==", - "path": "runtime.native.system/4.3.0", - "hashPath": "runtime.native.system.4.3.0.nupkg.sha512" - }, - "runtime.native.System.Net.Http/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-cXMbIx57z6+9g3qaJthM9Rb7ImPTk+lKqgMiuVL1l9I2KLrjJCccITWLb4hX3k0FU1lZiY/FVOjAbloPL2918w==", - "path": "runtime.native.system.net.http/4.3.0", - "hashPath": "runtime.native.system.net.http.4.3.0.nupkg.sha512" - }, - "runtime.native.System.Security.Cryptography.Apple/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-LvF+rcfPC4GFk10wlPPbkqQ2/vExtSoQCMFxFDSbqcMsg6qXUt7CDaaDrvtiOe6v+HWoZeP49pxLclcBRCPDKg==", - "path": "runtime.native.system.security.cryptography.apple/4.3.0", - "hashPath": "runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" - }, - "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-rrVECcoOWyR74djO91XRlxJ+juh/vZsliR6iARqjAFaBKlyPwLJd4aQ5M8tdBJoHLTNTj9QHJfqsSc4Wml3zSQ==", - "path": "runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-7f8At1xCDhxJuQ1LcLUAa2dK2XZ+HCoEPhIPh9u9pSDO897XA5NP7RnvXYZOEgL+U+hBNvcbefo7OVQluyTLgw==", - "path": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-qHNQLPqgKifKEOIARxjZUowkJ40aEoSH9VpjDjSFzHRnXH8T+P8zu/FoYFOamn9dqkBzOt4JPAfZaQZQJtxBNA==", - "path": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-HaIkYf5IXzbo85aTpIAe3ZDsyj+gsLYFPZQysinyeR+7NBtNB2wTGGwxkcqQSjpCAwTFtBJTaGiyo79hpB1CBA==", - "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0", - "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" - }, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-irmuaiZdNhZu/i6tDDUiZpPrOect9uK0MR4xDkjjY4zWoz4SDXskVPlsD85x1MCxJP5rCAq4wUOWIEeprl2whw==", - "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-gahlletBLrXsMaGBytw1e2whFg+fd9TR0vzR244htAOfp2UHy1XuEdpjqZuUknG8X0r6C8Akk024KYhj9ddmTQ==", - "path": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-7HajMzjMVtd0+P5HX+Chdnr505E2hKYAq/oTccnEqMRhGzcpWJN0KhPVBRmU7Qy69jdAViFRtyZqUxoBHLkgzw==", - "path": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-LyZBQqsZ/F4g5itL7TCSotirRSk5hHwrQJomIoasWQnAwCPGGw2p8n/s5Hes8HhjVcypK01k9wMmPw9N+uv+5g==", - "path": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ACfI7jQqtQYeO9vJdj+QYGWyoqrNTkFz33GVXPuQvM94/2gwiHkigyA9LZxsqNBHJQ8yPV7xiIQ8ac1SEOLqKQ==", - "path": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "System.Buffers/4.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-AwarXzzoDwX6BgrhjoJsk6tUezZEozOT5Y9QKF94Gl4JK91I4PIIBkBco9068Y9/Dra8Dkbie99kXB8+1BaYKw==", - "path": "system.buffers/4.4.0", - "hashPath": "system.buffers.4.4.0.nupkg.sha512" - }, - "System.Collections/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-1AJbSB9pKc+qhGKTawxCUTAg9lUA8onQMST9tNrIpFit1H2T9Yk1nkW3Gp/lncSQIJ5+ZBlOoL9xjQMPcEmmYw==", - "path": "system.collections/4.3.0", - "hashPath": "system.collections.4.3.0.nupkg.sha512" - }, - "System.Collections.Concurrent/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-09xY/+b7p5ioslTtGcRxjnzSa06YPihNU6qOE/hWIQkqUV7c/Qs6M/URGkIEbCCALkaaHOI/4ONkoG6jmc9HLg==", - "path": "system.collections.concurrent/4.3.0", - "hashPath": "system.collections.concurrent.4.3.0.nupkg.sha512" - }, - "System.Collections.NonGeneric/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ASiGTKJqauqU1YQgHzEo4NL6DJKADvjsTZrNVkTVP9slb5BeMH5F74nIczdJu70jXScELJpQYMhXX+gNVKIlew==", - "path": "system.collections.nongeneric/4.3.0", - "hashPath": "system.collections.nongeneric.4.3.0.nupkg.sha512" - }, - "System.Collections.Specialized/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-jQOfOX7848z8dPZEQHPyYwlP5975iTTQ1VczInTpUOe75atEwaoPYDAowLd/OuwFOX2LDLNw0xpLS5enCOXdug==", - "path": "system.collections.specialized/4.3.0", - "hashPath": "system.collections.specialized.4.3.0.nupkg.sha512" - }, - "System.Diagnostics.Debug/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-RPkucWK4gQRmV0XUMxXhUir6sJGy9LSDIKm7pBM2c1hBFFFCvwFhFJcLZd81NCpbcHfwXksO/kMzSXUXM2joDQ==", - "path": "system.diagnostics.debug/4.3.0", - "hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512" - }, - "System.Diagnostics.DiagnosticSource/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-XjgqzlOJE8H1HhdhVCiK3vu4fen2xwbbe7lEnohBP+xoBN85mFAo78xi5cxkzjlZ1Jup0WLoZc7XpxMnjfbMBQ==", - "path": "system.diagnostics.diagnosticsource/4.3.0", - "hashPath": "system.diagnostics.diagnosticsource.4.3.0.nupkg.sha512" - }, - "System.Diagnostics.Tracing/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-6r8Ez0r0tyGFBheTZYjkU4qpLJZnhVwAFDDF6GVkyge9jeMFVK6Uu7JXrGTeE2m09GcRNS5STJvsX1vb+Omacg==", - "path": "system.diagnostics.tracing/4.3.0", - "hashPath": "system.diagnostics.tracing.4.3.0.nupkg.sha512" - }, - "System.Globalization/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-EppWk5+tMzaEzhZkUfaOKuqnC2ECFzQVadE9yBRQtVSWtGOsu9QhfovAhb1Q7FV6X6G9g/a7/8W6ORUjuKxOjQ==", - "path": "system.globalization/4.3.0", - "hashPath": "system.globalization.4.3.0.nupkg.sha512" - }, - "System.Globalization.Calendars/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-31GxAA4aEL8efY3LcrAbaL52/x5eMREK/uH+QTB62bLG9IeydmvXECS4BYHiyCnTco97YhGkO9CsHJynwPtNUA==", - "path": "system.globalization.calendars/4.3.0", - "hashPath": "system.globalization.calendars.4.3.0.nupkg.sha512" - }, - "System.Globalization.Extensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Pj6LfslnZNSSZm/8X03IlxU1zA9Zintjviv4GStB0WUxYu2puDwm7qvlwzGy7/FW6Qa9xzmF/IVN0wpvmYN9Lg==", - "path": "system.globalization.extensions/4.3.0", - "hashPath": "system.globalization.extensions.4.3.0.nupkg.sha512" - }, - "System.IO/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-/wTullO3iTZcj0tbuz1xIcmk+O0/JmkuxcqwAsTfadEEni+sQUQ36JYlSE5D2mSArRtaE1M3bzB75HgcGCJ+tQ==", - "path": "system.io/4.3.0", - "hashPath": "system.io.4.3.0.nupkg.sha512" - }, - "System.IO.FileSystem/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-bDwE6iQKXXWl0/xvCInd5ao9TCz10XprzDLprOWR+6I3stD082KpbAK5goMsEbM4gXWfT0Im5THeAsZaU8bBlQ==", - "path": "system.io.filesystem/4.3.0", - "hashPath": "system.io.filesystem.4.3.0.nupkg.sha512" - }, - "System.IO.FileSystem.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-fYutRsdDDthwR0+LP7gSrwz50TJFAbQNtQYPXfdjvvVVdJWqW+sGANq338ytNkYjR3eFN4w04hEj5hovZjZQ2Q==", - "path": "system.io.filesystem.primitives/4.3.0", - "hashPath": "system.io.filesystem.primitives.4.3.0.nupkg.sha512" - }, - "System.Linq/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-JPPJ2d6FK9Z+HcWp8oXjd6ZcLk94OIq+Jgoi5hq62lz+VOLIaE7MXSBO1YVi1w+3RJJYEMDqtIJwQ1BgpuKKsA==", - "path": "system.linq/4.3.0", - "hashPath": "system.linq.4.3.0.nupkg.sha512" - }, - "System.Net.Http/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-iz1MgqiwRi9uIZGrj7TYWTM6RSiC/6qp3lBMs05Ko1pXQ3fmpZK67Iqj0Vj60YjqYLggDLIkhpo4qV7B/Ms4HQ==", - "path": "system.net.http/4.3.0", - "hashPath": "system.net.http.4.3.0.nupkg.sha512" - }, - "System.Net.Http.WinHttpHandler/4.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ZmsFZIZ4PL2UfUlfj4KCzzAGGE2SF39ENIqtvfgu0bwMEAe3J3CqZr765E2W6eQQtNK08/8DpHcsA0sAKZdEtA==", - "path": "system.net.http.winhttphandler/4.4.0", - "hashPath": "system.net.http.winhttphandler.4.4.0.nupkg.sha512" - }, - "System.Net.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-AaMayOmbnglWGOkaNbza9FhBNtYRn4zNG8Nnu7Hit+KYA06noogYjz6asLXmF3PpfHjFsMORlyG7nKyGJPW96A==", - "path": "system.net.primitives/4.3.0", - "hashPath": "system.net.primitives.4.3.0.nupkg.sha512" - }, - "System.Net.Requests/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-OZNUuAs0kDXUzm7U5NZ1ojVta5YFZmgT2yxBqsQ7Eseq5Ahz88LInGRuNLJ/NP2F8W1q7tse1pKDthj3reF5QA==", - "path": "system.net.requests/4.3.0", - "hashPath": "system.net.requests.4.3.0.nupkg.sha512" - }, - "System.Net.WebHeaderCollection/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-XZrXYG3c7QV/GpWeoaRC02rM6LH2JJetfVYskf35wdC/w2fFDFMphec4gmVH2dkll6abtW14u9Rt96pxd9YH2A==", - "path": "system.net.webheadercollection/4.3.0", - "hashPath": "system.net.webheadercollection.4.3.0.nupkg.sha512" - }, - "System.Private.ServiceModel/4.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lED0s9Lfo2TdniGlFY2rdK1wygFJ7dPRaTHR2Z409nGWfFG1YMuAlrfMhSeYFJ5pbffAlOBxb8hvoYxP3LJ6mg==", - "path": "system.private.servicemodel/4.4.0", - "hashPath": "system.private.servicemodel.4.4.0.nupkg.sha512" - }, - "System.Reflection/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-3uYB1Y9PY+4B/XtCMGiLfnNP9SJU5vovOLiEGabFqBOtBML8PurmWr0OzPKebsrGviYB1acTKrhE1NAIb+P3mQ==", - "path": "system.reflection/4.3.0", - "hashPath": "system.reflection.4.3.0.nupkg.sha512" - }, - "System.Reflection.DispatchProxy/4.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-xK6JE0mpsBD+T0qu3V6dmVRa06PxAvIIM/zSjouqP7Sk6X+FQj+9XFRz9GmZk9aJGMU1LX6AgTZIlsYZ64QKsw==", - "path": "system.reflection.dispatchproxy/4.4.0", - "hashPath": "system.reflection.dispatchproxy.4.4.0.nupkg.sha512" - }, - "System.Reflection.Emit/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-GHctkl5J3qRgAvXxc+cQXbYfrw0S7kZswbTbbFgSjvGU/KhTRmH+ZpMNToI8NA/nLCMl0EAgbWpIfp74EnYOJw==", - "path": "system.reflection.emit/4.3.0", - "hashPath": "system.reflection.emit.4.3.0.nupkg.sha512" - }, - "System.Reflection.Emit.ILGeneration/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lqTxoVZbRVP84GyXyxOUeB2PdOzrTLAMluaxIkp94WURhQMAKQKlQd5YATL+UnTDtxDzd9HZDKjF7xl2jjQEnA==", - "path": "system.reflection.emit.ilgeneration/4.3.0", - "hashPath": "system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512" - }, - "System.Reflection.Extensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-I2lC6UhAtrIm6D52Mn9dNys56s9Mus94e03FMU/RRqJvLyQ4AyRIPa+5oU73wyQ+pKMFUJU5PeS7nURr6DHG2A==", - "path": "system.reflection.extensions/4.3.0", - "hashPath": "system.reflection.extensions.4.3.0.nupkg.sha512" - }, - "System.Reflection.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-IWUmJcoqCpvsIn0Txobe+5idI096N+08jM3pnbVW1QWBDWQcSZqfQ7nNpMv/eKexrdlODAup0nd9dMRzbfPgSA==", - "path": "system.reflection.primitives/4.3.0", - "hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512" - }, - "System.Reflection.TypeExtensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-bddVPkbwJzLo0+FzvsoEunOBODGVEJ5JRFU1Xjo4MxhCUrpO7JJ5CJCFx7RXIrBtsAUH5Jh94v3pWEM/MLziJw==", - "path": "system.reflection.typeextensions/4.3.0", - "hashPath": "system.reflection.typeextensions.4.3.0.nupkg.sha512" - }, - "System.Resources.ResourceManager/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-H6KDV29RfZ623UnvI4goq8doHylg0GjNiHfSLuzLibGHmcdXiw1XgCq/gd/LwPvnVgJUcJ9tNKcDnYiDaWm7hA==", - "path": "system.resources.resourcemanager/4.3.0", - "hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512" - }, - "System.Runtime/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-iD01AV/eij/6iIa2UZHXayeOQoyjjP48pSIpP2bgxDVwTftELekKHJmsCTE7kD0BobeK6O2+RzQownNc9Yro9w==", - "path": "system.runtime/4.3.0", - "hashPath": "system.runtime.4.3.0.nupkg.sha512" - }, - "System.Runtime.CompilerServices.Unsafe/4.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-9dLLuBxr5GNmOfl2jSMcsHuteEg32BEfUotmmUkmZjpR3RpVHE8YQwt0ow3p6prwA1ME8WqDVZqrr8z6H8G+Kw==", - "path": "system.runtime.compilerservices.unsafe/4.4.0", - "hashPath": "system.runtime.compilerservices.unsafe.4.4.0.nupkg.sha512" - }, - "System.Runtime.Extensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-PZGJVsgBNSBnKUF4N9e36W+3ZO7tJ5OtUoZP7mqfKUFwplBShDaGEgehH6j6cuOmtbaZw+N/97cl+GgDSwt0YQ==", - "path": "system.runtime.extensions/4.3.0", - "hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512" - }, - "System.Runtime.Handles/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-4Psk9sl0VLSE9uPBSeZBJKlf8qQET8+cf8Y0DDyoCUiQ5jp93knJQWfuAJaRxb2Ryar8crjSlMzsUz/jp9aQ1w==", - "path": "system.runtime.handles/4.3.0", - "hashPath": "system.runtime.handles.4.3.0.nupkg.sha512" - }, - "System.Runtime.InteropServices/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-AFYM6PJsqZVtVWE6jlERrG65+LHOoaYGW6D/TFKvMIwZ4tXgs8qLtGY1jQXrgLABvJMKxfR8Y+WpKR2C9R4h3Q==", - "path": "system.runtime.interopservices/4.3.0", - "hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512" - }, - "System.Runtime.Numerics/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-wpA0s4R+cb/6dd6AxzwkQ8A9K9kc/A41DQdpbyNTrV2syqOJk/0LUInhOEgFaarcejrApCpTfvHP4QhaeUC2Uw==", - "path": "system.runtime.numerics/4.3.0", - "hashPath": "system.runtime.numerics.4.3.0.nupkg.sha512" - }, - "System.Runtime.Serialization.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-skc/xdfE6A4vKZL/992b0Jd+4iAye3CTmMitItDzOk6r8hpo+8bDLqMX9brgSg0NZyNE9UI/P8nHRWQUjvKYdQ==", - "path": "system.runtime.serialization.primitives/4.3.0", - "hashPath": "system.runtime.serialization.primitives.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.Algorithms/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-YQ5ql2EzgxUp6vI+jHxo9lmcH0Iy1RsmxtggtbJ1jy8rt+W3uc7t1iFQri0zNM3BJyCw3P31TF8jxWpxcc1aPQ==", - "path": "system.security.cryptography.algorithms/4.3.0", - "hashPath": "system.security.cryptography.algorithms.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.Cng/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-gmloRV7S66IH/jYbvnaUhaDwMSug1hWjuswsZuZPjmj94SMH/DRHQHU+4zSIQXEhCwRh9zMIQahY6nRfqXHrmA==", - "path": "system.security.cryptography.cng/4.3.0", - "hashPath": "system.security.cryptography.cng.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.Csp/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-5AZCwoueBVlYoL8pd3+8PVUa7CgXJhv4axJ2EJjSD899ddlkO1f5457nb8jOdhSxrf0VRDmRAABg5ulRO8COkA==", - "path": "system.security.cryptography.csp/4.3.0", - "hashPath": "system.security.cryptography.csp.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.Encoding/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-VUhXu1S0kQqHgjBIHmWE1jfgaSRGqH3rL/pmlQrrKzCg9iQanwNIvE5DQmjx0JXT+eUc+/Y0ARu9XxQKS1/rAQ==", - "path": "system.security.cryptography.encoding/4.3.0", - "hashPath": "system.security.cryptography.encoding.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Z21GQupB9XiBkVlupWOlGOCAYDJ1nlkrSrnezrY7bzebwvmtu0GyYen09e+GxfH+VJVMPYzchtUL8tywkkaYCw==", - "path": "system.security.cryptography.openssl/4.3.0", - "hashPath": "system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-MWGvviIh8HKFpphRZxg7chpN1FkeMBP2O+2+yMDc9/kgs72G7hSjOUlBqg4O/cvNahBRJZ0JtulS5jlpR/OREQ==", - "path": "system.security.cryptography.primitives/4.3.0", - "hashPath": "system.security.cryptography.primitives.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.X509Certificates/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-anCRBHYjC2PtfOm8tbs1x5KZ+2/JXuOj3oWNHt0U50YhLQxZv0hFB4NRNFTJt2i7wyJD/Ow2oJ/ti0nHJa6a6w==", - "path": "system.security.cryptography.x509certificates/4.3.0", - "hashPath": "system.security.cryptography.x509certificates.4.3.0.nupkg.sha512" - }, - "System.Security.Principal.Windows/4.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-pP+AOzt1o3jESOuLmf52YQTF7H3Ng9hTnrOESQiqsnl2IbBh1HInsAMHYtoh75iUYV0OIkHmjvveraYB6zM97w==", - "path": "system.security.principal.windows/4.4.0", - "hashPath": "system.security.principal.windows.4.4.0.nupkg.sha512" - }, - "System.ServiceModel.Primitives/4.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-6rATyMUeeOPVY7XzoneoyzGKVCc62gGl/A6SKrlY0dX0bnMprIrXZF1AXy9Y8ne49JU/2RGGeldFbATYONc/XQ==", - "path": "system.servicemodel.primitives/4.4.0", - "hashPath": "system.servicemodel.primitives.4.4.0.nupkg.sha512" - }, - "System.Text.Encoding/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-58DKIOFSEnQqFEogJ0lqgGFf1Gr9Zzc9/KmYvOR9uW9lf35DHzGNkki+HpPNsdEIHCjKmnQRJF9sBrovQhYhKw==", - "path": "system.text.encoding/4.3.0", - "hashPath": "system.text.encoding.4.3.0.nupkg.sha512" - }, - "System.Text.Encoding.Extensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-wSIplxLLihOx5TGFa8Nn98eWAmkZbBdslSviLvwfUiqiUEUEuqrsbrV2hE9haNf1BZbbvM4ClrcJ58KUQk96pw==", - "path": "system.text.encoding.extensions/4.3.0", - "hashPath": "system.text.encoding.extensions.4.3.0.nupkg.sha512" - }, - "System.Text.RegularExpressions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-M03moZwpMD9vtWFARtrB0QdKPsSxFqJ8oDrAi6s1jY7R4+2fQcu6chC/ULn6/da9MM93fNOMPGURQAay8N8H5Q==", - "path": "system.text.regularexpressions/4.3.0", - "hashPath": "system.text.regularexpressions.4.3.0.nupkg.sha512" - }, - "System.Threading/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-BYKL/G9muhpJ2TbkTPeaEUKrZ75oKDtoc7u0itkYqASIvRZijCRLYAPfOPOADxDlqsSAMRRCOP5rebN5Zl7p2g==", - "path": "system.threading/4.3.0", - "hashPath": "system.threading.4.3.0.nupkg.sha512" - }, - "System.Threading.Tasks/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-eYZRKpn/EpgiXlh8QGXI3qnAWmIdbmjZhqyKIuURD4awwTMBJL56b5ykdWRus9TLKRbvAPAdWiPxFc/VBJ+d9A==", - "path": "system.threading.tasks/4.3.0", - "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512" - }, - "System.Threading.Tasks.Extensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-kW7nIBjfW8DzVkmOcckgGMirxC2oDr0/v4ZIokUop6gFCudQVEGR9GoCGstVCSiuN1P9j+FlH9YX2OXxv2dV1A==", - "path": "system.threading.tasks.extensions/4.3.0", - "hashPath": "system.threading.tasks.extensions.4.3.0.nupkg.sha512" - }, - "System.Xml.ReaderWriter/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-4ghUccqnWLWIYzuYX84Vx6T7/1MSvdAmmqlyMK1DoRyvO2wYq1v5QMsAKjdY1h4iH5nkOh6a50cio/qY9VgRSw==", - "path": "system.xml.readerwriter/4.3.0", - "hashPath": "system.xml.readerwriter.4.3.0.nupkg.sha512" - }, - "System.Xml.XmlDocument/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ljbrPCAXEu5ijirKRxzH9eA3+/IhCpyv321JSepyUdM0fCPGo/910BXt/KwMVruLKN8dkIOUdYm2LlqBuIRn1Q==", - "path": "system.xml.xmldocument/4.3.0", - "hashPath": "system.xml.xmldocument.4.3.0.nupkg.sha512" - }, - "System.Xml.XmlSerializer/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-pXIz8nVP9y1uc3WCyTdl5LDesu2M6BDlMF7+JZS72oqKSZHXd2Q9PwepKFsFryWDMQEAjkjmyDEFu4FISdYfCw==", - "path": "system.xml.xmlserializer/4.3.0", - "hashPath": "system.xml.xmlserializer.4.3.0.nupkg.sha512" - }, - "ServiceStack.Interfaces/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "ServiceStack.Text/5.0.0.0": { - "type": "reference", - "serviceable": false, - "sha512": "" - } - } -} \ No newline at end of file diff --git a/lib/netstandard2.0/ServiceStack.Client.dll b/lib/netstandard2.0/ServiceStack.Client.dll deleted file mode 100644 index d4e7456..0000000 Binary files a/lib/netstandard2.0/ServiceStack.Client.dll and /dev/null differ diff --git a/lib/netstandard2.0/ServiceStack.Client.xml b/lib/netstandard2.0/ServiceStack.Client.xml deleted file mode 100644 index ec5c5b0..0000000 --- a/lib/netstandard2.0/ServiceStack.Client.xml +++ /dev/null @@ -1,430 +0,0 @@ - - - - ServiceStack.Client - - - - Need to provide async request options - http://msdn.microsoft.com/en-us/library/86wf6409(VS.71).aspx - - - - The request filter is called before any request. - This request filter is executed globally. - - - - - The response action is called once the server response is available. - It will allow you to access raw response information. - This response action is executed globally. - Note that you should NOT consume the response stream as this is handled by ServiceStack - - - - - Called before request resend, when the initial request required authentication - - - - - The request filter is called before any request. - This request filter only works with the instance where it was set (not global). - - - - - The response action is called once the server response is available. - It will allow you to access raw response information. - Note that you should NOT consume the response stream as this is handled by ServiceStack - - - - - The ResultsFilter is called before the Request is sent allowing you to return a cached response. - - - - - The ResultsFilterResponse is called before returning the response allowing responses to be cached. - - - - - Called with requestUri, ResponseType when server returns 304 NotModified - - - - - Useful .NET Encryption Utils from: - https://msdn.microsoft.com/en-us/library/system.security.cryptography.rsacryptoserviceprovider(v=vs.110).aspx - - - - - Returns the next message from queueName or null if no message - - - - - - - Creates the error response from the values provided. - - If the errorCode is empty it will use the first validation error code, - if there is none it will throw an error. - - The error code. - The error message. - The validation errors. - - - - - Default MaxStringContentLength is 8k, and throws an exception when reached - - - - - Serializer cache of delegates required to create a type from a string map (e.g. for REST urls) - - - - - Gets the namespace from an attribute marked on the type's definition - - - Namespace of type - - - - Removes all registered Handlers, Named Receivers and Listeners - - - - Need to provide async request options - http://msdn.microsoft.com/en-us/library/86wf6409(VS.71).aspx - - - - The request filter is called before any request. - This request filter is executed globally. - - - - - The response action is called once the server response is available. - It will allow you to access raw response information. - This response action is executed globally. - Note that you should NOT consume the response stream as this is handled by ServiceStack - - - - - Gets the collection of headers to be added to outgoing requests. - - - - - Sets all baseUri properties, using the Format property for the SyncReplyBaseUri and AsyncOneWayBaseUri - - Base URI of the service - - - - Whether to Accept Gzip,Deflate Content-Encoding and to auto decompress responses - - - - - The user name for basic authentication - - - - - The password for basic authentication - - - - - Sets the username and the password for basic authentication. - - - - - The Authorization Bearer Token to send with this request - - - - - Gets or sets authentication information for the request. - Warning: It's recommened to use and for basic auth. - This property is only used for IIS level authentication. - - - - - Determines if the basic auth header should be sent with every request. - By default, the basic auth header is only sent when "401 Unauthorized" is returned. - - - - - Specifies if cookies should be stored - - - - - Called before request resend, when the initial request required authentication - - - - - If a request fails with a 401 Unauthorized and a BearerToken is present the client - will automatically fetch a new AccessToken using this RefreshToken and retry the request - - - - - Send the Request to get the AccessToken with the RefreshToken at a non-default location - - - - - The request filter is called before any request. - This request filter only works with the instance where it was set (not global). - - - - - The ResultsFilter is called before the Request is sent allowing you to return a cached response. - - - - - The ResultsFilterResponse is called before returning the response allowing responses to be cached. - - - - - Called with requestUri, ResponseType when server returns 304 NotModified - - - - - The response action is called once the server response is available. - It will allow you to access raw response information. - Note that you should NOT consume the response stream as this is handled by ServiceStack - - - - - Called by Send method if an exception occurs, for instance a System.Net.WebException because the server - returned an HTTP error code. Override if you want to handle specific exceptions or always want to parse the - response to a custom ErrorResponse DTO type instead of ServiceStack's ErrorResponse class. In case ex is a - System.Net.WebException, do not use - createWebRequest/getResponse/HandleResponse<TResponse> to parse the response - because that will result in the same exception again. Use - ThrowWebServiceException<YourErrorResponseType> to parse the response and to throw a - WebServiceException containing the parsed DTO. Then override Send to handle that exception. - - - - - APIs returning HttpWebResponse must be explicitly Disposed, e.g using (var res = client.Get(url)) { ... } - - - - - APIs returning HttpWebResponse must be explicitly Disposed, e.g using (var res = client.Get(url)) { ... } - - - - - APIs returning HttpWebResponse must be explicitly Disposed, e.g using (var res = client.Delete(url)) { ... } - - - - - APIs returning HttpWebResponse must be explicitly Disposed, e.g using (var res = client.Delete(url)) { ... } - - - - - APIs returning HttpWebResponse must be explicitly Disposed, e.g using (var res = client.Post(url)) { ... } - - - - - APIs returning HttpWebResponse must be explicitly Disposed, e.g using (var res = client.Put(url)) { ... } - - - - - APIs returning HttpWebResponse must be explicitly Disposed, e.g using (var res = client.CustomMethod(method,dto)) { ... } - - - - - APIs returning HttpWebResponse must be explicitly Disposed, e.g using (var res = client.CustomMethod(method,dto)) { ... } - - - - - APIs returning HttpWebResponse must be explicitly Disposed, e.g using (var res = client.Head(request)) { ... } - - - - - APIs returning HttpWebResponse must be explicitly Disposed, e.g using (var res = client.Head(request)) { ... } - - - - - APIs returning HttpWebResponse must be explicitly Disposed, e.g using (var res = client.Head(request)) { ... } - - - - - Compresses the specified text using the default compression method: Deflate - - The text. - Type of the compression. - - - - - Compresses the specified text using the default compression method: Deflate - - - - - Decompresses the specified gz buffer using the default compression method: Inflate - - The gz buffer. - Type of the compression. - - - - - Decompresses the specified gz buffer using inflate or gzip method - - Compressed stream - Type of the compression. Can be "gzip" or "deflate" - Decompressed stream - - - - Decompresses the specified gz buffer using the default compression method: Inflate - - - - - Donated by Ivan Korneliuk from his post: - http://korneliuk.blogspot.com/2012/08/servicestack-reusing-dtos.html - - Modified to only allow using routes matching the supplied HTTP Verb - - - - - Generate a url from a Request DTO. Pretty URL generation require Routes to be defined using `[Route]` on the Request DTO - - - - - The exception which is thrown when a validation error occurred. - This validation is serialized in a extra clean and human-readable way by ServiceStack. - - - - - Returns the first error code - - The error code. - - - - Used if we need to serialize this exception to XML - - - - - - Encapsulates a validation result. - - - - - Gets or sets the success code. - - The success code. - - - - Gets or sets the error code. - - The error code. - - - - Gets or sets the success message. - - The success message. - - - - Gets or sets the error message. - - The error message. - - - - The errors generated by the validation. - - - - - Returns True if the validation was successful (errors list is empty). - - - - - Constructs a new ValidationResult - - - - - Constructs a new ValidationResult - - A list of validation results - - - - Initializes a new instance of the class. - - The errors. - The success code. - The error code. - - - - Merge errors from another - - - - - - Naming convention for the request's Response DTO - - - - - Shortcut to get the ResponseStatus whether it's bare or inside a IHttpResult - - - - - - diff --git a/lib/netstandard2.0/ServiceStack.Common.deps.json b/lib/netstandard2.0/ServiceStack.Common.deps.json deleted file mode 100644 index 36933ed..0000000 --- a/lib/netstandard2.0/ServiceStack.Common.deps.json +++ /dev/null @@ -1,1325 +0,0 @@ -{ - "runtimeTarget": { - "name": ".NETStandard,Version=v2.0/", - "signature": "304ceac106e5bbc5b95a2fbf1a6c65db3389f9cf" - }, - "compilationOptions": {}, - "targets": { - ".NETStandard,Version=v2.0": {}, - ".NETStandard,Version=v2.0/": { - "ServiceStack.Common/1.0.0": { - "dependencies": { - "Microsoft.Extensions.Primitives": "2.0.0", - "NETStandard.Library": "2.0.1", - "ServiceStack.Interfaces": "1.0.0", - "System.ComponentModel.Primitives": "4.3.0", - "System.Data.Common": "4.3.0", - "System.Dynamic.Runtime": "4.3.0", - "System.Net.NetworkInformation": "4.3.0", - "System.Net.Requests": "4.3.0", - "System.Reflection.TypeExtensions": "4.3.0", - "System.Runtime.Serialization.Primitives": "4.3.0", - "ServiceStack.Text": "5.0.0.0" - }, - "runtime": { - "ServiceStack.Common.dll": {} - } - }, - "Microsoft.Extensions.Primitives/2.0.0": { - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "4.4.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll": {} - } - }, - "Microsoft.NETCore.Platforms/1.1.0": {}, - "Microsoft.NETCore.Targets/1.1.0": {}, - "Microsoft.Win32.Primitives/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "NETStandard.Library/2.0.1": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0" - } - }, - "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.native.System/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.native.System.Net.Http/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.native.System.Security.Cryptography.Apple/4.3.0": { - "dependencies": { - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" - } - }, - "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "dependencies": { - "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {}, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "System.Collections/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Collections.Concurrent/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.Reflection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Collections.Concurrent.dll": {} - } - }, - "System.ComponentModel/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.ComponentModel.dll": {} - } - }, - "System.ComponentModel.Primitives/4.3.0": { - "dependencies": { - "System.ComponentModel": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.0/System.ComponentModel.Primitives.dll": {} - } - }, - "System.Data.Common/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Text.RegularExpressions": "4.3.0", - "System.Threading.Tasks": "4.3.0" - }, - "runtime": { - "lib/netstandard1.2/System.Data.Common.dll": {} - } - }, - "System.Diagnostics.Debug/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Diagnostics.DiagnosticSource/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Diagnostics.DiagnosticSource.dll": {} - } - }, - "System.Diagnostics.Tracing/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Dynamic.Runtime/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Linq": "4.3.0", - "System.Linq.Expressions": "4.3.0", - "System.ObjectModel": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Emit": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Reflection.TypeExtensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Dynamic.Runtime.dll": {} - } - }, - "System.Globalization/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Globalization.Calendars/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Globalization": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Globalization.Extensions/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.InteropServices": "4.3.0" - } - }, - "System.IO/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.IO.FileSystem/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.IO.FileSystem.Primitives/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.IO.FileSystem.Primitives.dll": {} - } - }, - "System.Linq/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0" - }, - "runtime": { - "lib/netstandard1.6/System.Linq.dll": {} - } - }, - "System.Linq.Expressions/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Linq": "4.3.0", - "System.ObjectModel": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Emit": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Emit.Lightweight": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Reflection.TypeExtensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - }, - "runtime": { - "lib/netstandard1.6/System.Linq.Expressions.dll": {} - } - }, - "System.Net.Http/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.DiagnosticSource": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Extensions": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.OpenSsl": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Security.Cryptography.X509Certificates": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "runtime.native.System": "4.3.0", - "runtime.native.System.Net.Http": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Net.NetworkInformation/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.Win32.Primitives": "4.3.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Linq": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Net.Sockets": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Principal.Windows": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Overlapped": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "System.Threading.Thread": "4.3.0", - "System.Threading.ThreadPool": "4.3.0", - "runtime.native.System": "4.3.0" - } - }, - "System.Net.Primitives/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0" - } - }, - "System.Net.Requests/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Net.Http": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Net.WebHeaderCollection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Net.Sockets/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Net.WebHeaderCollection/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Net.WebHeaderCollection.dll": {} - } - }, - "System.ObjectModel/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.ObjectModel.dll": {} - } - }, - "System.Reflection/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.Emit/4.3.0": { - "dependencies": { - "System.IO": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Reflection.Emit.dll": {} - } - }, - "System.Reflection.Emit.ILGeneration/4.3.0": { - "dependencies": { - "System.Reflection": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Reflection.Emit.ILGeneration.dll": {} - } - }, - "System.Reflection.Emit.Lightweight/4.3.0": { - "dependencies": { - "System.Reflection": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Reflection.Emit.Lightweight.dll": {} - } - }, - "System.Reflection.Extensions/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.Primitives/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.TypeExtensions/4.3.0": { - "dependencies": { - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.5/System.Reflection.TypeExtensions.dll": {} - } - }, - "System.Resources.ResourceManager/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Globalization": "4.3.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "System.Runtime.CompilerServices.Unsafe/4.4.0": { - "runtime": { - "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll": {} - } - }, - "System.Runtime.Extensions/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime.Handles/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime.InteropServices/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Reflection": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0" - } - }, - "System.Runtime.Numerics/4.3.0": { - "dependencies": { - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Runtime.Numerics.dll": {} - } - }, - "System.Runtime.Serialization.Primitives/4.3.0": { - "dependencies": { - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Runtime.Serialization.Primitives.dll": {} - } - }, - "System.Security.Claims/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Security.Principal": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Security.Claims.dll": {} - } - }, - "System.Security.Cryptography.Algorithms/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Collections": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.Apple": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Security.Cryptography.Cng/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0" - } - }, - "System.Security.Cryptography.Csp/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.IO": "4.3.0", - "System.Reflection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.Security.Cryptography.Encoding/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Collections": "4.3.0", - "System.Collections.Concurrent": "4.3.0", - "System.Linq": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Security.Cryptography.OpenSsl/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - }, - "runtime": { - "lib/netstandard1.6/System.Security.Cryptography.OpenSsl.dll": {} - } - }, - "System.Security.Cryptography.Primitives/4.3.0": { - "dependencies": { - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Security.Cryptography.Primitives.dll": {} - } - }, - "System.Security.Cryptography.X509Certificates/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Calendars": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Cng": "4.3.0", - "System.Security.Cryptography.Csp": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.OpenSsl": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "runtime.native.System": "4.3.0", - "runtime.native.System.Net.Http": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Security.Principal/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.0/System.Security.Principal.dll": {} - } - }, - "System.Security.Principal.Windows/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.Win32.Primitives": "4.3.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Reflection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Claims": "4.3.0", - "System.Security.Principal": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.Text.Encoding/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Text.RegularExpressions/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - }, - "runtime": { - "lib/netstandard1.6/System.Text.RegularExpressions.dll": {} - } - }, - "System.Threading/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.0", - "System.Threading.Tasks": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Threading.dll": {} - } - }, - "System.Threading.Overlapped/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0" - } - }, - "System.Threading.Tasks/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Threading.Thread/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Threading.Thread.dll": {} - } - }, - "System.Threading.ThreadPool/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Threading.ThreadPool.dll": {} - } - }, - "ServiceStack.Interfaces/1.0.0": { - "dependencies": { - "System.Runtime.Serialization.Primitives": "4.3.0" - }, - "runtime": { - "ServiceStack.Interfaces.dll": {} - } - }, - "ServiceStack.Text/5.0.0.0": { - "runtime": { - "ServiceStack.Text.dll": {} - } - } - } - }, - "libraries": { - "ServiceStack.Common/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "Microsoft.Extensions.Primitives/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ukg53qNlqTrK38WA30b5qhw0GD7y3jdI9PHHASjdKyTcBHTevFM2o23tyk3pWCgAV27Bbkm+CPQ2zUe1ZOuYSA==", - "path": "microsoft.extensions.primitives/2.0.0", - "hashPath": "microsoft.extensions.primitives.2.0.0.nupkg.sha512" - }, - "Microsoft.NETCore.Platforms/1.1.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-n2QVe1U/8yMdyowo8Z0C4fWPGTJlkvGnqYBw2DFMMPs9uA6mgVDq/xaklZiUl57FVfJm2WcEu1ybdodsRx/gDQ==", - "path": "microsoft.netcore.platforms/1.1.0", - "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512" - }, - "Microsoft.NETCore.Targets/1.1.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-vs9c3q7errTVkO1Yh7FoI0eSNvkAIffVpnkygE76Vz8Eo9YtqycOEefrm4iOLMOyMvQIv0Nlw684nt2CDdlzig==", - "path": "microsoft.netcore.targets/1.1.0", - "hashPath": "microsoft.netcore.targets.1.1.0.nupkg.sha512" - }, - "Microsoft.Win32.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-SQ8c0zlY8aw8GZnA8pkKxpE5yDoQ0f123v6Aci8hSrrk9pJWtPgDcdn3KeHZlBtX6YefOUGzJ6Kb+WdwFrooFQ==", - "path": "microsoft.win32.primitives/4.3.0", - "hashPath": "microsoft.win32.primitives.4.3.0.nupkg.sha512" - }, - "NETStandard.Library/2.0.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-oA6nwv9MhEKYvLpjZ0ggSpb1g4CQViDVQjLUcDWg598jtvJbpfeP2reqwI1GLW2TbxC/Ml7xL6BBR1HmKPXlTg==", - "path": "netstandard.library/2.0.1", - "hashPath": "netstandard.library.2.0.1.nupkg.sha512" - }, - "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-XrmXcVFIyqVN6VRAC8NSVkQJ+c87MzDmb6b9+TgzXDmjJrlz5zx0v3RyrLy1Cs3CAWMk5bKQejtd1T0QKnEJUw==", - "path": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-r15mfA0DanSK+3Z3FyVJxjbTeDnSI8TvXofwii/3dqxHYTAv9Ke7duxTjq8Bo/HUoMOJ0eDbRXjIQ5RvUsJ+Jw==", - "path": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-LtkpYGXuZ9olCJH/Z7nWBa5nImH9EnRyloaZeHBeyhDRxoTNe4pZBhwR4ta7nHO9UI/82iWlriOL4fdWNNk4wA==", - "path": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.native.System/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-RfctibzVgLyVGPMn6bT7ntJhkDsdOsYHa76NX7OZdw4t56p2QvBKMhfmrqcM1gBS12GwAyPpAbyHxs7jLyy5jw==", - "path": "runtime.native.system/4.3.0", - "hashPath": "runtime.native.system.4.3.0.nupkg.sha512" - }, - "runtime.native.System.Net.Http/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-cXMbIx57z6+9g3qaJthM9Rb7ImPTk+lKqgMiuVL1l9I2KLrjJCccITWLb4hX3k0FU1lZiY/FVOjAbloPL2918w==", - "path": "runtime.native.system.net.http/4.3.0", - "hashPath": "runtime.native.system.net.http.4.3.0.nupkg.sha512" - }, - "runtime.native.System.Security.Cryptography.Apple/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-LvF+rcfPC4GFk10wlPPbkqQ2/vExtSoQCMFxFDSbqcMsg6qXUt7CDaaDrvtiOe6v+HWoZeP49pxLclcBRCPDKg==", - "path": "runtime.native.system.security.cryptography.apple/4.3.0", - "hashPath": "runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" - }, - "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-rrVECcoOWyR74djO91XRlxJ+juh/vZsliR6iARqjAFaBKlyPwLJd4aQ5M8tdBJoHLTNTj9QHJfqsSc4Wml3zSQ==", - "path": "runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-7f8At1xCDhxJuQ1LcLUAa2dK2XZ+HCoEPhIPh9u9pSDO897XA5NP7RnvXYZOEgL+U+hBNvcbefo7OVQluyTLgw==", - "path": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-qHNQLPqgKifKEOIARxjZUowkJ40aEoSH9VpjDjSFzHRnXH8T+P8zu/FoYFOamn9dqkBzOt4JPAfZaQZQJtxBNA==", - "path": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-HaIkYf5IXzbo85aTpIAe3ZDsyj+gsLYFPZQysinyeR+7NBtNB2wTGGwxkcqQSjpCAwTFtBJTaGiyo79hpB1CBA==", - "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0", - "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" - }, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-irmuaiZdNhZu/i6tDDUiZpPrOect9uK0MR4xDkjjY4zWoz4SDXskVPlsD85x1MCxJP5rCAq4wUOWIEeprl2whw==", - "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-gahlletBLrXsMaGBytw1e2whFg+fd9TR0vzR244htAOfp2UHy1XuEdpjqZuUknG8X0r6C8Akk024KYhj9ddmTQ==", - "path": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-7HajMzjMVtd0+P5HX+Chdnr505E2hKYAq/oTccnEqMRhGzcpWJN0KhPVBRmU7Qy69jdAViFRtyZqUxoBHLkgzw==", - "path": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-LyZBQqsZ/F4g5itL7TCSotirRSk5hHwrQJomIoasWQnAwCPGGw2p8n/s5Hes8HhjVcypK01k9wMmPw9N+uv+5g==", - "path": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ACfI7jQqtQYeO9vJdj+QYGWyoqrNTkFz33GVXPuQvM94/2gwiHkigyA9LZxsqNBHJQ8yPV7xiIQ8ac1SEOLqKQ==", - "path": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "System.Collections/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-1AJbSB9pKc+qhGKTawxCUTAg9lUA8onQMST9tNrIpFit1H2T9Yk1nkW3Gp/lncSQIJ5+ZBlOoL9xjQMPcEmmYw==", - "path": "system.collections/4.3.0", - "hashPath": "system.collections.4.3.0.nupkg.sha512" - }, - "System.Collections.Concurrent/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-09xY/+b7p5ioslTtGcRxjnzSa06YPihNU6qOE/hWIQkqUV7c/Qs6M/URGkIEbCCALkaaHOI/4ONkoG6jmc9HLg==", - "path": "system.collections.concurrent/4.3.0", - "hashPath": "system.collections.concurrent.4.3.0.nupkg.sha512" - }, - "System.ComponentModel/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-LnBbfSfOA/4rgrHbGaf6ETPdOUtJLnGjoJon49ZFu4MAE7+gA2o0NiD19mK8CoJ2Ep8dlg6+nqRVZlWPoc4Y4A==", - "path": "system.componentmodel/4.3.0", - "hashPath": "system.componentmodel.4.3.0.nupkg.sha512" - }, - "System.ComponentModel.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-58rrdVPosSjHAsx5QjatUZ0oPp1MqYcRubaAjudg0Iq5FnSIXEzj6pcb3PjqlgstV7XAI/j5sQbxlzbstk4Ugw==", - "path": "system.componentmodel.primitives/4.3.0", - "hashPath": "system.componentmodel.primitives.4.3.0.nupkg.sha512" - }, - "System.Data.Common/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lm6E3T5u7BOuEH0u18JpbJHxBfOJPuCyl4Kg1RH10ktYLp5uEEE1xKrHW56/We4SnZpGAuCc9N0MJpSDhTHZGQ==", - "path": "system.data.common/4.3.0", - "hashPath": "system.data.common.4.3.0.nupkg.sha512" - }, - "System.Diagnostics.Debug/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-RPkucWK4gQRmV0XUMxXhUir6sJGy9LSDIKm7pBM2c1hBFFFCvwFhFJcLZd81NCpbcHfwXksO/kMzSXUXM2joDQ==", - "path": "system.diagnostics.debug/4.3.0", - "hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512" - }, - "System.Diagnostics.DiagnosticSource/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-XjgqzlOJE8H1HhdhVCiK3vu4fen2xwbbe7lEnohBP+xoBN85mFAo78xi5cxkzjlZ1Jup0WLoZc7XpxMnjfbMBQ==", - "path": "system.diagnostics.diagnosticsource/4.3.0", - "hashPath": "system.diagnostics.diagnosticsource.4.3.0.nupkg.sha512" - }, - "System.Diagnostics.Tracing/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-6r8Ez0r0tyGFBheTZYjkU4qpLJZnhVwAFDDF6GVkyge9jeMFVK6Uu7JXrGTeE2m09GcRNS5STJvsX1vb+Omacg==", - "path": "system.diagnostics.tracing/4.3.0", - "hashPath": "system.diagnostics.tracing.4.3.0.nupkg.sha512" - }, - "System.Dynamic.Runtime/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Kiu80W6wgVYPLJz6R8kh8GacUuPIDmvew2GaWmKsQVi6DaYKDneg9R1vmAcXDf5hKj1qPzgmFloRzFbUl9jHeg==", - "path": "system.dynamic.runtime/4.3.0", - "hashPath": "system.dynamic.runtime.4.3.0.nupkg.sha512" - }, - "System.Globalization/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-EppWk5+tMzaEzhZkUfaOKuqnC2ECFzQVadE9yBRQtVSWtGOsu9QhfovAhb1Q7FV6X6G9g/a7/8W6ORUjuKxOjQ==", - "path": "system.globalization/4.3.0", - "hashPath": "system.globalization.4.3.0.nupkg.sha512" - }, - "System.Globalization.Calendars/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-31GxAA4aEL8efY3LcrAbaL52/x5eMREK/uH+QTB62bLG9IeydmvXECS4BYHiyCnTco97YhGkO9CsHJynwPtNUA==", - "path": "system.globalization.calendars/4.3.0", - "hashPath": "system.globalization.calendars.4.3.0.nupkg.sha512" - }, - "System.Globalization.Extensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Pj6LfslnZNSSZm/8X03IlxU1zA9Zintjviv4GStB0WUxYu2puDwm7qvlwzGy7/FW6Qa9xzmF/IVN0wpvmYN9Lg==", - "path": "system.globalization.extensions/4.3.0", - "hashPath": "system.globalization.extensions.4.3.0.nupkg.sha512" - }, - "System.IO/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-/wTullO3iTZcj0tbuz1xIcmk+O0/JmkuxcqwAsTfadEEni+sQUQ36JYlSE5D2mSArRtaE1M3bzB75HgcGCJ+tQ==", - "path": "system.io/4.3.0", - "hashPath": "system.io.4.3.0.nupkg.sha512" - }, - "System.IO.FileSystem/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-bDwE6iQKXXWl0/xvCInd5ao9TCz10XprzDLprOWR+6I3stD082KpbAK5goMsEbM4gXWfT0Im5THeAsZaU8bBlQ==", - "path": "system.io.filesystem/4.3.0", - "hashPath": "system.io.filesystem.4.3.0.nupkg.sha512" - }, - "System.IO.FileSystem.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-fYutRsdDDthwR0+LP7gSrwz50TJFAbQNtQYPXfdjvvVVdJWqW+sGANq338ytNkYjR3eFN4w04hEj5hovZjZQ2Q==", - "path": "system.io.filesystem.primitives/4.3.0", - "hashPath": "system.io.filesystem.primitives.4.3.0.nupkg.sha512" - }, - "System.Linq/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-JPPJ2d6FK9Z+HcWp8oXjd6ZcLk94OIq+Jgoi5hq62lz+VOLIaE7MXSBO1YVi1w+3RJJYEMDqtIJwQ1BgpuKKsA==", - "path": "system.linq/4.3.0", - "hashPath": "system.linq.4.3.0.nupkg.sha512" - }, - "System.Linq.Expressions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-mvEeo9a4GGe/UdvjLumBajn21DRjZkpcm/HMeLAq5b0E00DKn/f7NoY4nDBdgh6E2o88YTMVtKSbcANvV6QZGg==", - "path": "system.linq.expressions/4.3.0", - "hashPath": "system.linq.expressions.4.3.0.nupkg.sha512" - }, - "System.Net.Http/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-iz1MgqiwRi9uIZGrj7TYWTM6RSiC/6qp3lBMs05Ko1pXQ3fmpZK67Iqj0Vj60YjqYLggDLIkhpo4qV7B/Ms4HQ==", - "path": "system.net.http/4.3.0", - "hashPath": "system.net.http.4.3.0.nupkg.sha512" - }, - "System.Net.NetworkInformation/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-zNVmWVry0pAu7lcrRBhwwU96WUdbsrGL3azyzsbXmVNptae1+Za+UgOe9Z6s8iaWhPn7/l4wQqhC56HZWq7tkg==", - "path": "system.net.networkinformation/4.3.0", - "hashPath": "system.net.networkinformation.4.3.0.nupkg.sha512" - }, - "System.Net.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-AaMayOmbnglWGOkaNbza9FhBNtYRn4zNG8Nnu7Hit+KYA06noogYjz6asLXmF3PpfHjFsMORlyG7nKyGJPW96A==", - "path": "system.net.primitives/4.3.0", - "hashPath": "system.net.primitives.4.3.0.nupkg.sha512" - }, - "System.Net.Requests/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-OZNUuAs0kDXUzm7U5NZ1ojVta5YFZmgT2yxBqsQ7Eseq5Ahz88LInGRuNLJ/NP2F8W1q7tse1pKDthj3reF5QA==", - "path": "system.net.requests/4.3.0", - "hashPath": "system.net.requests.4.3.0.nupkg.sha512" - }, - "System.Net.Sockets/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-IBP4eAQFdjvJfw+SwegrabtbiHSkGf18N9Nt5YVgT5lKUfulv/HhO3jTVbq14ofQYmIbkBwKzeDkUKb3tRzHKg==", - "path": "system.net.sockets/4.3.0", - "hashPath": "system.net.sockets.4.3.0.nupkg.sha512" - }, - "System.Net.WebHeaderCollection/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-XZrXYG3c7QV/GpWeoaRC02rM6LH2JJetfVYskf35wdC/w2fFDFMphec4gmVH2dkll6abtW14u9Rt96pxd9YH2A==", - "path": "system.net.webheadercollection/4.3.0", - "hashPath": "system.net.webheadercollection.4.3.0.nupkg.sha512" - }, - "System.ObjectModel/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-f9SGFzGsZekQyy3dfgrODqmEB8crsCJTvsUa6pnMnjRwXaQXz0OG3l20iu7SsPFC6mQLWydA5NA5BzeRYlacdw==", - "path": "system.objectmodel/4.3.0", - "hashPath": "system.objectmodel.4.3.0.nupkg.sha512" - }, - "System.Reflection/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-3uYB1Y9PY+4B/XtCMGiLfnNP9SJU5vovOLiEGabFqBOtBML8PurmWr0OzPKebsrGviYB1acTKrhE1NAIb+P3mQ==", - "path": "system.reflection/4.3.0", - "hashPath": "system.reflection.4.3.0.nupkg.sha512" - }, - "System.Reflection.Emit/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-GHctkl5J3qRgAvXxc+cQXbYfrw0S7kZswbTbbFgSjvGU/KhTRmH+ZpMNToI8NA/nLCMl0EAgbWpIfp74EnYOJw==", - "path": "system.reflection.emit/4.3.0", - "hashPath": "system.reflection.emit.4.3.0.nupkg.sha512" - }, - "System.Reflection.Emit.ILGeneration/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lqTxoVZbRVP84GyXyxOUeB2PdOzrTLAMluaxIkp94WURhQMAKQKlQd5YATL+UnTDtxDzd9HZDKjF7xl2jjQEnA==", - "path": "system.reflection.emit.ilgeneration/4.3.0", - "hashPath": "system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512" - }, - "System.Reflection.Emit.Lightweight/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-LvX8HS0d2l8lNam0RpJgH3gQM6nSSP3crcE6XlMYCBvhTv41HkZbroA3YsCyC21Eu3hsZu1jJRTxmgsD7dww2g==", - "path": "system.reflection.emit.lightweight/4.3.0", - "hashPath": "system.reflection.emit.lightweight.4.3.0.nupkg.sha512" - }, - "System.Reflection.Extensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-I2lC6UhAtrIm6D52Mn9dNys56s9Mus94e03FMU/RRqJvLyQ4AyRIPa+5oU73wyQ+pKMFUJU5PeS7nURr6DHG2A==", - "path": "system.reflection.extensions/4.3.0", - "hashPath": "system.reflection.extensions.4.3.0.nupkg.sha512" - }, - "System.Reflection.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-IWUmJcoqCpvsIn0Txobe+5idI096N+08jM3pnbVW1QWBDWQcSZqfQ7nNpMv/eKexrdlODAup0nd9dMRzbfPgSA==", - "path": "system.reflection.primitives/4.3.0", - "hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512" - }, - "System.Reflection.TypeExtensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-bddVPkbwJzLo0+FzvsoEunOBODGVEJ5JRFU1Xjo4MxhCUrpO7JJ5CJCFx7RXIrBtsAUH5Jh94v3pWEM/MLziJw==", - "path": "system.reflection.typeextensions/4.3.0", - "hashPath": "system.reflection.typeextensions.4.3.0.nupkg.sha512" - }, - "System.Resources.ResourceManager/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-H6KDV29RfZ623UnvI4goq8doHylg0GjNiHfSLuzLibGHmcdXiw1XgCq/gd/LwPvnVgJUcJ9tNKcDnYiDaWm7hA==", - "path": "system.resources.resourcemanager/4.3.0", - "hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512" - }, - "System.Runtime/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-iD01AV/eij/6iIa2UZHXayeOQoyjjP48pSIpP2bgxDVwTftELekKHJmsCTE7kD0BobeK6O2+RzQownNc9Yro9w==", - "path": "system.runtime/4.3.0", - "hashPath": "system.runtime.4.3.0.nupkg.sha512" - }, - "System.Runtime.CompilerServices.Unsafe/4.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-9dLLuBxr5GNmOfl2jSMcsHuteEg32BEfUotmmUkmZjpR3RpVHE8YQwt0ow3p6prwA1ME8WqDVZqrr8z6H8G+Kw==", - "path": "system.runtime.compilerservices.unsafe/4.4.0", - "hashPath": "system.runtime.compilerservices.unsafe.4.4.0.nupkg.sha512" - }, - "System.Runtime.Extensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-PZGJVsgBNSBnKUF4N9e36W+3ZO7tJ5OtUoZP7mqfKUFwplBShDaGEgehH6j6cuOmtbaZw+N/97cl+GgDSwt0YQ==", - "path": "system.runtime.extensions/4.3.0", - "hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512" - }, - "System.Runtime.Handles/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-4Psk9sl0VLSE9uPBSeZBJKlf8qQET8+cf8Y0DDyoCUiQ5jp93knJQWfuAJaRxb2Ryar8crjSlMzsUz/jp9aQ1w==", - "path": "system.runtime.handles/4.3.0", - "hashPath": "system.runtime.handles.4.3.0.nupkg.sha512" - }, - "System.Runtime.InteropServices/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-AFYM6PJsqZVtVWE6jlERrG65+LHOoaYGW6D/TFKvMIwZ4tXgs8qLtGY1jQXrgLABvJMKxfR8Y+WpKR2C9R4h3Q==", - "path": "system.runtime.interopservices/4.3.0", - "hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512" - }, - "System.Runtime.Numerics/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-wpA0s4R+cb/6dd6AxzwkQ8A9K9kc/A41DQdpbyNTrV2syqOJk/0LUInhOEgFaarcejrApCpTfvHP4QhaeUC2Uw==", - "path": "system.runtime.numerics/4.3.0", - "hashPath": "system.runtime.numerics.4.3.0.nupkg.sha512" - }, - "System.Runtime.Serialization.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-skc/xdfE6A4vKZL/992b0Jd+4iAye3CTmMitItDzOk6r8hpo+8bDLqMX9brgSg0NZyNE9UI/P8nHRWQUjvKYdQ==", - "path": "system.runtime.serialization.primitives/4.3.0", - "hashPath": "system.runtime.serialization.primitives.4.3.0.nupkg.sha512" - }, - "System.Security.Claims/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-A4WF5fZ8epDZsBXNe6BkB+weMXPpTHgPLxcb8U9VUjddtmaFA/BH1lV+2ATN5WY1Ex1bSxyO1KnGsX3yvTV0UA==", - "path": "system.security.claims/4.3.0", - "hashPath": "system.security.claims.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.Algorithms/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-YQ5ql2EzgxUp6vI+jHxo9lmcH0Iy1RsmxtggtbJ1jy8rt+W3uc7t1iFQri0zNM3BJyCw3P31TF8jxWpxcc1aPQ==", - "path": "system.security.cryptography.algorithms/4.3.0", - "hashPath": "system.security.cryptography.algorithms.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.Cng/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-gmloRV7S66IH/jYbvnaUhaDwMSug1hWjuswsZuZPjmj94SMH/DRHQHU+4zSIQXEhCwRh9zMIQahY6nRfqXHrmA==", - "path": "system.security.cryptography.cng/4.3.0", - "hashPath": "system.security.cryptography.cng.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.Csp/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-5AZCwoueBVlYoL8pd3+8PVUa7CgXJhv4axJ2EJjSD899ddlkO1f5457nb8jOdhSxrf0VRDmRAABg5ulRO8COkA==", - "path": "system.security.cryptography.csp/4.3.0", - "hashPath": "system.security.cryptography.csp.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.Encoding/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-VUhXu1S0kQqHgjBIHmWE1jfgaSRGqH3rL/pmlQrrKzCg9iQanwNIvE5DQmjx0JXT+eUc+/Y0ARu9XxQKS1/rAQ==", - "path": "system.security.cryptography.encoding/4.3.0", - "hashPath": "system.security.cryptography.encoding.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Z21GQupB9XiBkVlupWOlGOCAYDJ1nlkrSrnezrY7bzebwvmtu0GyYen09e+GxfH+VJVMPYzchtUL8tywkkaYCw==", - "path": "system.security.cryptography.openssl/4.3.0", - "hashPath": "system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-MWGvviIh8HKFpphRZxg7chpN1FkeMBP2O+2+yMDc9/kgs72G7hSjOUlBqg4O/cvNahBRJZ0JtulS5jlpR/OREQ==", - "path": "system.security.cryptography.primitives/4.3.0", - "hashPath": "system.security.cryptography.primitives.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.X509Certificates/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-anCRBHYjC2PtfOm8tbs1x5KZ+2/JXuOj3oWNHt0U50YhLQxZv0hFB4NRNFTJt2i7wyJD/Ow2oJ/ti0nHJa6a6w==", - "path": "system.security.cryptography.x509certificates/4.3.0", - "hashPath": "system.security.cryptography.x509certificates.4.3.0.nupkg.sha512" - }, - "System.Security.Principal/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-5X8KoaOCAwdojiiJx4/nKiQnEekIIYYSLR62hbtjkTwsX2dnagMlXral0WZ0Bga8f8/m1qaRJkHjCeS/xuUpfw==", - "path": "system.security.principal/4.3.0", - "hashPath": "system.security.principal.4.3.0.nupkg.sha512" - }, - "System.Security.Principal.Windows/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lCLYTCjXwLbLpUV2Hx0n+S5CxaW/E9M0+3dAvvDekNBT0Cs6kDiHTDJyxAVjVTNvtQIhk6hD8OCd2YyhbOXKiQ==", - "path": "system.security.principal.windows/4.3.0", - "hashPath": "system.security.principal.windows.4.3.0.nupkg.sha512" - }, - "System.Text.Encoding/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-58DKIOFSEnQqFEogJ0lqgGFf1Gr9Zzc9/KmYvOR9uW9lf35DHzGNkki+HpPNsdEIHCjKmnQRJF9sBrovQhYhKw==", - "path": "system.text.encoding/4.3.0", - "hashPath": "system.text.encoding.4.3.0.nupkg.sha512" - }, - "System.Text.RegularExpressions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-M03moZwpMD9vtWFARtrB0QdKPsSxFqJ8oDrAi6s1jY7R4+2fQcu6chC/ULn6/da9MM93fNOMPGURQAay8N8H5Q==", - "path": "system.text.regularexpressions/4.3.0", - "hashPath": "system.text.regularexpressions.4.3.0.nupkg.sha512" - }, - "System.Threading/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-BYKL/G9muhpJ2TbkTPeaEUKrZ75oKDtoc7u0itkYqASIvRZijCRLYAPfOPOADxDlqsSAMRRCOP5rebN5Zl7p2g==", - "path": "system.threading/4.3.0", - "hashPath": "system.threading.4.3.0.nupkg.sha512" - }, - "System.Threading.Overlapped/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-LRcp7Ir4HQ3I7uIhUb8ypaMDw23W1t3GMCA2+yUxTL3HG9ZrVJtLufoK/mF9zfCG2bxuRBf1Bj8FC9mOPddhIg==", - "path": "system.threading.overlapped/4.3.0", - "hashPath": "system.threading.overlapped.4.3.0.nupkg.sha512" - }, - "System.Threading.Tasks/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-eYZRKpn/EpgiXlh8QGXI3qnAWmIdbmjZhqyKIuURD4awwTMBJL56b5ykdWRus9TLKRbvAPAdWiPxFc/VBJ+d9A==", - "path": "system.threading.tasks/4.3.0", - "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512" - }, - "System.Threading.Thread/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-fBrzOXZbwvFK+QQkW5WB64bgMQ34cVohOxjQo6xVhPqHqCWydYfDdSbNL7yqb1C3ajXtWfGKD9cBQDae0KibRA==", - "path": "system.threading.thread/4.3.0", - "hashPath": "system.threading.thread.4.3.0.nupkg.sha512" - }, - "System.Threading.ThreadPool/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-0fzgv/sOiS1UKAg6bwGIg/ufEwRp9a1rTstlmS7hPrwg0ohWI9jAiEvmB4atdYtRrdH27ilVkbfAmgBlEwuEOg==", - "path": "system.threading.threadpool/4.3.0", - "hashPath": "system.threading.threadpool.4.3.0.nupkg.sha512" - }, - "ServiceStack.Interfaces/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "ServiceStack.Text/5.0.0.0": { - "type": "reference", - "serviceable": false, - "sha512": "" - } - } -} \ No newline at end of file diff --git a/lib/netstandard2.0/ServiceStack.Common.dll b/lib/netstandard2.0/ServiceStack.Common.dll deleted file mode 100644 index 10e83ab..0000000 Binary files a/lib/netstandard2.0/ServiceStack.Common.dll and /dev/null differ diff --git a/lib/netstandard2.0/ServiceStack.Common.xml b/lib/netstandard2.0/ServiceStack.Common.xml deleted file mode 100644 index 341c287..0000000 --- a/lib/netstandard2.0/ServiceStack.Common.xml +++ /dev/null @@ -1,522 +0,0 @@ - - - - ServiceStack.Common - - - - - - Provide the an option for the callee to block until all commands are executed - - - - - - - Return T[0] when enumerable is null, safe to use in enumerations like foreach - - - - - Gets the textual description of the enum if it has one. e.g. - - - enum UserColors - { - [Description("Bright Red")] - BrightRed - } - UserColors.BrightRed.ToDescription(); - - - - - - - - Default base sleep time (milliseconds). - - - - - Default maximum back-off time before retrying a request - - - - - Maximum retry limit. Avoids integer overflow issues. - - - - - How long to sleep before next retry using Exponential BackOff delay with Full Jitter. - - - - - - Exponential BackOff Delay with Full Jitter - - - - - - - Exponential BackOff Delay with Full Jitter from: - https://github.com/aws/aws-sdk-java/blob/master/aws-java-sdk-core/src/main/java/com/amazonaws/retry/PredefinedBackoffStrategies.java - - - - - - - - - Calculate exponential retry back-off. - - - - - - - Calculate exponential retry back-off. - - - - - - - - - Invokes the action provided and returns true if no excpetion was thrown. - Otherwise logs the exception and returns false if an exception was thrown. - - The action. - - - - - Useful IPAddressExtensions from: - http://blogs.msdn.com/knom/archive/2008/12/31/ip-address-calculations-with-c-subnetmasks-networks.aspx - - - - - - Gets the ipv4 addresses from all Network Interfaces that have Subnet masks. - - - - - - Gets the ipv6 addresses from all Network Interfaces. - - - - - - Configure ServiceStack.Text JSON Serializer to use Templates JS parsing - - - - - Creates a Console Logger, that logs all messages to: System.Console - - Made public so its testable - - - - - Default logger is to Console.WriteLine - - Made public so its testable - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - - - Logs the specified message. - - - - - Logs the format. - - - - - Logs the specified message. - - - - - Creates a Debug Logger, that logs all messages to: System.Diagnostics.Debug - - Made public so its testable - - - - - Default logger is to System.Diagnostics.Debug.WriteLine - - Made public so its testable - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - - - Logs the specified message. - - - - - Logs the format. - - - - - Logs the specified message. - - - - - Categories of sql statements. - - - - - Unknown - - - - - DML statements that alter database state, e.g. INSERT, UPDATE - - - - - Statements that return a single record - - - - - Statements that iterate over a result set - - - - - A callback for ProfiledDbConnection and family - - - - - Called when a command starts executing - - - - - - - Called when a reader finishes executing - - - - - - - - Called when a reader is done iterating through the data - - - - - - Called when an error happens during execution of a command - - - - - - - - True if the profiler instance is active - - - - - Wraps a database connection, allowing sql execution timings to be collected when a session is started. - - - - - Returns a new that wraps , - providing query execution profiling. If profiler is null, no profiling will occur. - - Your provider-specific flavor of connection, e.g. SqlConnection, OracleConnection - The currently started or null. - Determines whether the ProfiledDbConnection will dispose the underlying connection. - - - - The underlying, real database connection to your db provider. - - - - - The current profiler instance; could be null. - - - - - The raw connection this is wrapping - - - - - Wrapper for a db provider factory to enable profiling - - - - - Every provider factory must have an Instance public field - - - - - Allow to re-init the provider factory. - - - - - - - proxy - - - - - - - proxy - - - - - proxy - - - - - proxy - - - - - proxy - - - - - Runs an action for a minimum of runForMs - - What to run - Minimum ms to run for - time elapsed in micro seconds - - - - Returns average microseconds an action takes when run for the specified runForMs - - What to run - How many times to run for each iteration - Minimum ms to run for - - - - - - - - Protect against XSS by cleaning non-standared User Input - - - - - Common functionality when creating adapters - - - - - Executes the specified expression. - - - The action. - - - - - Executes the specified action (for void methods). - - The action. - - - - Note: InMemoryLog keeps all logs in memory, so don't use it long running exceptions - - Returns a thread-safe InMemoryLog which you can use while *TESTING* - to provide a detailed analysis of your logs. - - - - - Use specified Layout - - - - - Use Layout with specified name - - - - - Render without any Layout - - - - - - - - - - Add additional Args available to all pages - - - - - Add additional template filters available to all pages - - - - - Return additional HTTP Headers in HTTP Requests - - - - - Specify the Content-Type of the Response - - - - - Transform the Page output using a chain of stream transformers - - - - - Transform the entire output using a chain of stream transformers - - - - - Available transformers that can transform context filter stream outputs - - - - - Don't allow access to specified filters - - - - - The last error thrown by a filter - - - - - The StackTrace where the Last Error Occured - - - - - What argument errors should be binded to - - - - - Whether to skip execution of all page filters and just write template string fragments - - - - - Overrides Context to specify whether to Ignore or Continue executing filters on error - - - - - Whether to always rethrow Exceptions - - - - - Immediately halt execution of the page - - - - - Rethrow fatal exceptions thrown on incorrect API usage - - - - - Available transformers that can transform context filter stream outputs - - - - How long in between checking for modified pages - - - - Render render filter exceptions in-line where filter is located - - - - - What argument to assign Fitler Exceptions to - - - - - Whether to - - - - - Creates a Unified Resource Name (URN) with the following formats: - - - urn:{TypeName}:{IdFieldValue} e.g. urn:UserSession:1 - - urn:{TypeName}:{IdFieldName}:{IdFieldValue} e.g. urn:UserSession:UserId:1 - - - - - diff --git a/lib/netstandard2.0/ServiceStack.Interfaces.deps.json b/lib/netstandard2.0/ServiceStack.Interfaces.deps.json deleted file mode 100644 index 4fca138..0000000 --- a/lib/netstandard2.0/ServiceStack.Interfaces.deps.json +++ /dev/null @@ -1,189 +0,0 @@ -{ - "runtimeTarget": { - "name": ".NETStandard,Version=v2.0/", - "signature": "d1fe0fd0fac6ef438cfee812c9047bfaadd0b53a" - }, - "compilationOptions": {}, - "targets": { - ".NETStandard,Version=v2.0": {}, - ".NETStandard,Version=v2.0/": { - "ServiceStack.Interfaces/1.0.0": { - "dependencies": { - "NETStandard.Library": "2.0.1", - "System.Runtime.Serialization.Primitives": "4.3.0" - }, - "runtime": { - "ServiceStack.Interfaces.dll": {} - } - }, - "Microsoft.NETCore.Platforms/1.1.0": {}, - "Microsoft.NETCore.Targets/1.1.0": {}, - "NETStandard.Library/2.0.1": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0" - } - }, - "System.Globalization/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.IO/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Reflection/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.Primitives/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Resources.ResourceManager/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Globalization": "4.3.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "System.Runtime.Serialization.Primitives/4.3.0": { - "dependencies": { - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Runtime.Serialization.Primitives.dll": {} - } - }, - "System.Text.Encoding/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Threading.Tasks/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - } - } - }, - "libraries": { - "ServiceStack.Interfaces/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "Microsoft.NETCore.Platforms/1.1.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-n2QVe1U/8yMdyowo8Z0C4fWPGTJlkvGnqYBw2DFMMPs9uA6mgVDq/xaklZiUl57FVfJm2WcEu1ybdodsRx/gDQ==", - "path": "microsoft.netcore.platforms/1.1.0", - "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512" - }, - "Microsoft.NETCore.Targets/1.1.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-vs9c3q7errTVkO1Yh7FoI0eSNvkAIffVpnkygE76Vz8Eo9YtqycOEefrm4iOLMOyMvQIv0Nlw684nt2CDdlzig==", - "path": "microsoft.netcore.targets/1.1.0", - "hashPath": "microsoft.netcore.targets.1.1.0.nupkg.sha512" - }, - "NETStandard.Library/2.0.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-oA6nwv9MhEKYvLpjZ0ggSpb1g4CQViDVQjLUcDWg598jtvJbpfeP2reqwI1GLW2TbxC/Ml7xL6BBR1HmKPXlTg==", - "path": "netstandard.library/2.0.1", - "hashPath": "netstandard.library.2.0.1.nupkg.sha512" - }, - "System.Globalization/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-EppWk5+tMzaEzhZkUfaOKuqnC2ECFzQVadE9yBRQtVSWtGOsu9QhfovAhb1Q7FV6X6G9g/a7/8W6ORUjuKxOjQ==", - "path": "system.globalization/4.3.0", - "hashPath": "system.globalization.4.3.0.nupkg.sha512" - }, - "System.IO/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-/wTullO3iTZcj0tbuz1xIcmk+O0/JmkuxcqwAsTfadEEni+sQUQ36JYlSE5D2mSArRtaE1M3bzB75HgcGCJ+tQ==", - "path": "system.io/4.3.0", - "hashPath": "system.io.4.3.0.nupkg.sha512" - }, - "System.Reflection/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-3uYB1Y9PY+4B/XtCMGiLfnNP9SJU5vovOLiEGabFqBOtBML8PurmWr0OzPKebsrGviYB1acTKrhE1NAIb+P3mQ==", - "path": "system.reflection/4.3.0", - "hashPath": "system.reflection.4.3.0.nupkg.sha512" - }, - "System.Reflection.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-IWUmJcoqCpvsIn0Txobe+5idI096N+08jM3pnbVW1QWBDWQcSZqfQ7nNpMv/eKexrdlODAup0nd9dMRzbfPgSA==", - "path": "system.reflection.primitives/4.3.0", - "hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512" - }, - "System.Resources.ResourceManager/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-H6KDV29RfZ623UnvI4goq8doHylg0GjNiHfSLuzLibGHmcdXiw1XgCq/gd/LwPvnVgJUcJ9tNKcDnYiDaWm7hA==", - "path": "system.resources.resourcemanager/4.3.0", - "hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512" - }, - "System.Runtime/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-iD01AV/eij/6iIa2UZHXayeOQoyjjP48pSIpP2bgxDVwTftELekKHJmsCTE7kD0BobeK6O2+RzQownNc9Yro9w==", - "path": "system.runtime/4.3.0", - "hashPath": "system.runtime.4.3.0.nupkg.sha512" - }, - "System.Runtime.Serialization.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-skc/xdfE6A4vKZL/992b0Jd+4iAye3CTmMitItDzOk6r8hpo+8bDLqMX9brgSg0NZyNE9UI/P8nHRWQUjvKYdQ==", - "path": "system.runtime.serialization.primitives/4.3.0", - "hashPath": "system.runtime.serialization.primitives.4.3.0.nupkg.sha512" - }, - "System.Text.Encoding/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-58DKIOFSEnQqFEogJ0lqgGFf1Gr9Zzc9/KmYvOR9uW9lf35DHzGNkki+HpPNsdEIHCjKmnQRJF9sBrovQhYhKw==", - "path": "system.text.encoding/4.3.0", - "hashPath": "system.text.encoding.4.3.0.nupkg.sha512" - }, - "System.Threading.Tasks/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-eYZRKpn/EpgiXlh8QGXI3qnAWmIdbmjZhqyKIuURD4awwTMBJL56b5ykdWRus9TLKRbvAPAdWiPxFc/VBJ+d9A==", - "path": "system.threading.tasks/4.3.0", - "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512" - } - } -} \ No newline at end of file diff --git a/lib/netstandard2.0/ServiceStack.Interfaces.dll b/lib/netstandard2.0/ServiceStack.Interfaces.dll deleted file mode 100644 index 4385529..0000000 Binary files a/lib/netstandard2.0/ServiceStack.Interfaces.dll and /dev/null differ diff --git a/lib/netstandard2.0/ServiceStack.Interfaces.xml b/lib/netstandard2.0/ServiceStack.Interfaces.xml deleted file mode 100644 index b8dec9e..0000000 --- a/lib/netstandard2.0/ServiceStack.Interfaces.xml +++ /dev/null @@ -1,2416 +0,0 @@ - - - - ServiceStack.Interfaces - - - - - Gets or sets parameter name with which allowable values will be associated. - - - - - Generates body DTO parameter only if `DisableAutoDtoInBodyParam = false` - - - - - Always generate body DTO for request - - - - - Never generate body DTO for request - - - - - The overall description of an API. Used by Swagger. - - - - - Create or not body param for request type when verb is POST or PUT. - Value can be one of the constants of `GenerateBodyParam` class: - `GenerateBodyParam.IfNotDisabled` (default value), `GenerateBodyParam.Always`, `GenerateBodyParam.Never` - - - - - Tells if body param is required - - - - - Gets or sets verb to which applies attribute. By default applies to all verbs. - - - - - Gets or sets parameter type: It can be only one of the following: path, query, body, form, or header. - - - - - Gets or sets unique name for the parameter. Each name must be unique, even if they are associated with different paramType values. - - - - Other notes on the name field: - If paramType is body, the name is used only for UI and codegeneration. - If paramType is path, the name field must correspond to the associated path segment from the path field in the api object. - If paramType is query, the name field corresponds to the query param name. - - - - - - Gets or sets the human-readable description for the parameter. - - - - - For path, query, and header paramTypes, this field must be a primitive. For body, this can be a complex or container datatype. - - - - - Fine-tuned primitive type definition. - - - - - For path, this is always true. Otherwise, this field tells the client whether or not the field must be supplied. - - - - - For query params, this specifies that a comma-separated list of values can be passed to the API. For path and body types, this field cannot be true. - - - - - Gets or sets route to which applies attribute, matches using StartsWith. By default applies to all routes. - - - - - Whether to exclude this property from being included in the ModelSchema - - - - - The status code of a response - - - - - The description of a response status code - - - - - HTTP status code of response - - - - - End-user description of the data which is returned by response - - - - - If set to true, the response is default for all non-explicity defined status codes - - - - - Open API schema definition type for response - - - - - The Password Hasher provider used to hash users passwords, by default uses the same algorithm used by ASP.NET Identity v3: - PBKDF2 with HMAC-SHA256, 128-bit salt, 256-bit subkey, 10000 iterations. - - - - - The first byte marker used to specify the format used. The default implementation uses the following format: - { 0x01, prf (UInt32), iter count (UInt32), salt length (UInt32), salt, subkey } - - - - - Returns a boolean indicating whether the matches the . - The out parameter indicates whether the password should be re-hashed. - - The hash value for a user's stored password. - The password supplied for comparison. - Implementations of this method should be time consistent. - - - - Returns a hashed representation of the supplied . - - The password to hash. - A hashed representation of the supplied . - - - - A common interface implementation that is implemented by most cache providers - - - - - Removes the specified item from the cache. - - The identifier for the item to delete. - - true if the item was successfully removed from the cache; false otherwise. - - - - - Removes the cache for all the keys provided. - - The keys. - - - - Retrieves the specified item from the cache. - - - The identifier for the item to retrieve. - - The retrieved item, or null if the key was not found. - - - - - Increments the value of the specified key by the given amount. - The operation is atomic and happens on the server. - A non existent value at key starts at 0 - - The identifier for the item to increment. - The amount by which the client wants to increase the item. - - The new value of the item or -1 if not found. - - The item must be inserted into the cache before it can be changed. The item must be inserted as a . The operation only works with values, so -1 always indicates that the item was not found. - - - - Increments the value of the specified key by the given amount. - The operation is atomic and happens on the server. - A non existent value at key starts at 0 - - The identifier for the item to increment. - The amount by which the client wants to decrease the item. - - The new value of the item or -1 if not found. - - The item must be inserted into the cache before it can be changed. The item must be inserted as a . The operation only works with values, so -1 always indicates that the item was not found. - - - - Adds a new item into the cache at the specified cache key only if the cache is empty. - - The key used to reference the item. - The object to be inserted into the cache. - - true if the item was successfully stored in the cache; false otherwise. - - The item does not expire unless it is removed due memory pressure. - - - - Sets an item into the cache at the cache key specified regardless if it already exists or not. - - - - - Replaces the item at the cachekey specified only if an items exists at the location already. - - - - - Invalidates all data on the cache. - - - - - Retrieves multiple items from the cache. - The default value of T is set for all keys that do not exist. - - The list of identifiers for the items to retrieve. - - a Dictionary holding all items indexed by their key. - - - - - Sets multiple items to the cache. - - - The values. - - - - Extend ICacheClient API with shared, non-core features - - - - - A light interface over a cache client. - This interface was inspired by Enyim.Caching.MemcachedClient - - Only the methods that are intended to be used are required, if you require - extra functionality you can uncomment the unused methods below as they have been - implemented in DdnMemcachedClient - - - - - Removes the specified item from the cache. - - The identifier for the item to delete. - - true if the item was successfully removed from the cache; false otherwise. - - - - - Removes the cache for all the keys provided. - - The keys. - - - - Retrieves the specified item from the cache. - - The identifier for the item to retrieve. - - The retrieved item, or null if the key was not found. - - - - - Increments the value of the specified key by the given amount. The operation is atomic and happens on the server. - - The identifier for the item to increment. - The amount by which the client wants to increase the item. - - The new value of the item or -1 if not found. - - The item must be inserted into the cache before it can be changed. The item must be inserted as a . The operation only works with values, so -1 always indicates that the item was not found. - - - - Increments the value of the specified key by the given amount. The operation is atomic and happens on the server. - - The identifier for the item to increment. - The amount by which the client wants to decrease the item. - - The new value of the item or -1 if not found. - - The item must be inserted into the cache before it can be changed. The item must be inserted as a . The operation only works with values, so -1 always indicates that the item was not found. - - - - Inserts an item into the cache with a cache key to reference its location. - - The key used to reference the item. - The object to be inserted into the cache. - - true if the item was successfully stored in the cache; false otherwise. - - The item does not expire unless it is removed due memory pressure. - - - - Inserts an item into the cache with a cache key to reference its location. - - The key used to reference the item. - The object to be inserted into the cache. - The time when the item is invalidated in the cache. - true if the item was successfully stored in the cache; false otherwise. - - - - Removes all data from the cache. - - - - - Retrieves multiple items from the cache. - - The list of identifiers for the items to retrieve. - - a Dictionary holding all items indexed by their key. - - - - - Removes items from cache that have keys matching the specified wildcard pattern - - The wildcard, where "*" means any sequence of characters and "?" means any single character. - - - - Removes items from the cache based on the specified regular expression pattern - - Regular expression pattern to search cache keys - - - - A Users Session - - - - - Store any object at key - - - - - - - Set a typed value at key - - - - - - - - Get a typed value at key - - - - - - - - Remove the value at key - - - - - - - Delete all Cache Entries (requires ICacheClient that implements IRemoveByPattern) - - - - - Retrieves a User Session - - - - - Gets the Session Bag for this request, creates one if it doesn't exist. - - - - - - - - Gets the Session Bag for this request, creates one if it doesn't exist. - Only for ASP.NET apps. Uses the HttpContext.Current singleton. - - - - - Create a Session Bag using a custom sessionId - - - - - - - Allow delegation of dependencies to other IOC's - - - - - Resolve Constructor Dependency - - - - - - - Resolve a dependency from the AppHost's IOC - - - - - - - BelongToAttribute - Use to indicate that a join column belongs to another table. - - - - - Compute attribute. - Use to indicate that a property is a Calculated Field - - - - - Decimal length attribute. - - - - - Mark types that are to be excluded from specified features - - - - - Explicit foreign key name. If it's null, or empty, the FK name will be autogenerated as before. - - - - - Hash Key Attribute used to specify which property is the HashKey, e.g. in DynamoDb. - - - - - IgnoreAttribute - Use to indicate that a property is not a field in the table - properties with this attribute are ignored when building sql sentences - - - - - Ignore this property in SELECT statements - - - - - Ignore this property in UPDATE statements - - - - - Ignore this property in INSERT statements - - - - - Decorate any type or property with adhoc info - - - - - Primary key attribute. - use to indicate that property is part of the pk - - - - - Range Key Attribute used to specify which property is the RangeKey, e.g. in DynamoDb. - - - - - ReturnAttribute - Use to indicate that a property should be included in the - returning/output clause of INSERT sql sentences - - - - - Used to indicate that property is a row version incremented automatically by the database - - - - - Used to annotate an Entity with its DB schema - - - - - - For providers that want a cleaner API with a little more perf - - - - - - Generic ResponseStatus for when Response Type can't be inferred. - In schemaless formats like JSON, JSV it has the same shape as a typed Response DTO - - - - - Contract indication that the Response DTO has a ResponseStatus - - - - - Refresh file stats for this node if supported - - - - - How many results to skip - - - - - How many results to return - - - - - List of fields to sort by, can order by multiple fields and inverse order, e.g: Id,-Amount - - - - - List of fields to sort by descending, can order by multiple fields and inverse order, e.g: -Id,Amount - - - - - Include aggregate data like Total, COUNT(*), COUNT(DISTINCT Field), Sum(Amount), etc - - - - - The fields to return - - - - - Populate with Include=Total or if registered with: AutoQueryFeature { IncludeTotal = true } - - - - - Unifed API to create any missing Tables, Data Structure Schema - or perform any other tasks dependencies require to run at Startup. - - - - - Provide unique, incrementing sequences. Used in PocoDynamo. - - - - - Marker interfaces - - - - - The minimal API Surface to capture the most common SYNC requests. - Convenience extensions over these core API's available in ServiceGatewayExtensions - - - - - Normal Request/Reply Services - - - - - Auto Batched Request/Reply Requests - - - - - OneWay Service - - - - - Auto Batched OneWay Requests - - - - - The minimal API Surface to capture the most common ASYNC requests. - Convenience extensions over these core API's available in ServiceGatewayExtensions - - - - - Normal Request/Reply Services - - - - - Auto Batched Request/Reply Requests - - - - - OneWay Service - - - - - Auto Batched OneWay Requests - - - - - Helper ILog implementation that reduces effort to extend or use without needing to impl each API - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - - - Logs the specified message. - - - - - Logs the format. - - - - - Logs the specified message. - - - - - Logs a message in a running application - - - - - Gets or sets a value indicating whether this instance is debug enabled. - - - true if this instance is debug enabled; otherwise, false. - - - - - Logs a Debug message. - - The message. - - - - Logs a Debug message and exception. - - The message. - The exception. - - - - Logs a Debug format message. - - The format. - The args. - - - - Logs a Error message. - - The message. - - - - Logs a Error message and exception. - - The message. - The exception. - - - - Logs a Error format message. - - The format. - The args. - - - - Logs a Fatal message. - - The message. - - - - Logs a Fatal message and exception. - - The message. - The exception. - - - - Logs a Error format message. - - The format. - The args. - - - - Logs an Info message and exception. - - The message. - - - - Logs an Info message and exception. - - The message. - The exception. - - - - Logs an Info format message. - - The format. - The args. - - - - Logs a Warning message. - - The message. - - - - Logs a Warning message and exception. - - The message. - The exception. - - - - Logs a Warning format message. - - The format. - The args. - - - - Factory to create ILog instances - - - - - Gets the logger. - - - - - Gets the logger. - - - - - Pushes a property on the current log context, returning an - to remove the property again from the async context. - - Property Name - Property Value - Interface for popping the property off the stack - - - - Pushes a property on the current log context, returning an - to remove the property again from the async context. - - The logger - Property Name - Property Value - Interface for popping the property off the stack - - - - Logs a Debug format message and exception. - - Exception related to the event. - The format. - The args. - - - - Logs an Info format message and exception. - - Exception related to the event. - The format. - The args. - - - - Logs a Warn format message and exception. - - Exception related to the event. - The format. - The args. - - - - Logs an Error format message and exception. - - Exception related to the event. - The format. - The args. - - - - Logs a Fatal format message and exception. - - Exception related to the event. - The format. - The args. - - - - Logs a Debug format message and exception. - - The logger - Exception related to the event. - The format. - The args. - - - - Logs an Info format message and exception. - - The logger - Exception related to the event. - The format. - The args. - - - - Logs a Warn format message and exception. - - The logger - Exception related to the event. - The format. - The args. - - - - Logs an Error format message and exception. - - The logger - Exception related to the event. - The format. - The args. - - - - Logs a Fatal format message and exception. - - The logger - Exception related to the event. - The format. - The args. - - - - Logging API for this library. You can inject your own implementation otherwise - will use the DebugLogFactory to write to System.Diagnostics.Debug - - - - - Gets or sets the log factory. - Use this to override the factory that is used to create loggers - - - - - Gets the logger. - - - - - Gets the logger. - - - - - Default logger is to System.Diagnostics.Debug.Print - - Made public so its testable - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - - - Logs the specified message. - - - - - Logs the format. - - - - - Logs the specified message. - - - - - Creates a Debug Logger, that logs all messages to: System.Diagnostics.Debug - - Made public so its testable - - - - - StringBuilderLog writes to shared StringBuffer. - Made public so its testable - - - - - Logs the specified message. - - - - - Logs the format. - - - - - Logs the specified message. - - The message. - - - - Creates a test Logger, that stores all log messages in a member list - - - - - Tests logger which stores all log messages in a member list which can be examined later - - Made public so its testable - - - - - Initializes a new instance of the class. - - The type. - - - - Initializes a new instance of the class. - - The type. - - - - Logs the specified message. - - The message. - The exception. - - - - Logs the format. - - The message. - The args. - - - - Logs the specified message. - - The message. - - - - Single threaded message handler that can process all messages - of a particular message type. - - - - - The type of the message this handler processes - - - - - The MqClient processing the message - - - - - Process all messages pending - - - - - - Process messages from a single queue. - - - The queue to process - A predicate on whether to continue processing the next message if any - - - - - Process a single message - - - - - Get Current Stats for this Message Handler - - - - - - Publish the specified message into the durable queue @queueName - - - - - Publish the specified message into the transient queue @queueName - - - - - Synchronous blocking get. - - - - - Non blocking get message - - - - - Acknowledge the message has been successfully received or processed - - - - - Negative acknowledgement the message was not processed correctly - - - - - Create a typed message from a raw MQ Response artefact - - - - - Create a temporary Queue for Request / Reply - - - - - - Simple definition of an MQ Host - - - - - Factory to create consumers and producers that work with this service - - - - - Register DTOs and hanlders the MQ Server will process - - - - - - - Register DTOs and hanlders the MQ Server will process using specified number of threads - - - - - - - - Register DTOs and hanlders the MQ Server will process - - - - - - - - Register DTOs and hanlders the MQ Server will process using specified number of threads - - - - - - - - - Get Total Current Stats for all Message Handlers - - - - - - Get a list of all message types registered on this MQ Host - - - - - Get the status of the service. Potential Statuses: Disposed, Stopped, Stopping, Starting, Started - - - - - - Get a Stats dump - - - - - - Start the MQ Host if not already started. - - - - - Stop the MQ Host if not already stopped. - - - - - Basic implementation of IMessage[T] - - - - - - Util static generic class to create unique queue names for types - - - - - - Util class to create unique queue names for runtime types - - - - - For messaging exceptions that should by-pass the messaging service's configured - retry attempts and store the message straight into the DLQ - - - - - Specify a VirtualPath or Layout for a Code Page - - - - - Specify static page arguments - - - - - Wrap the common redis list operations under a IList[string] interface. - - - - - Redis transaction for typed client - - - - - - Interface to redis typed pipeline - - - - - interface to queueable operation using typed redis client - - - - - - Returns a high-level typed client API - - - - - - Returns a Read/Write client (The default) using the hosts defined in ReadWriteHosts - - - - - - Returns a ReadOnly client using the hosts defined in ReadOnlyHosts. - - - - - - Returns a Read/Write ICacheClient (The default) using the hosts defined in ReadWriteHosts - - - - - - Returns a ReadOnly ICacheClient using the hosts defined in ReadOnlyHosts. - - - - - - Returns a Read/Write client (The default) using the hosts defined in ReadWriteHosts - - - - - - Returns a ReadOnly client using the hosts defined in ReadOnlyHosts. - - - - - - Returns a Read/Write ICacheClient (The default) using the hosts defined in ReadWriteHosts - - - - - - Returns a ReadOnly ICacheClient using the hosts defined in ReadOnlyHosts. - - - - - - The number of active subscriptions this client has - - - - - Registered handler called after client *Subscribes* to each new channel - - - - - Registered handler called when each message is received - - - - - Registered handler called when each channel is unsubscribed - - - - - Subscribe to channels by name - - - - - - Subscribe to channels matching the supplied patterns - - - - - - Interface to redis transaction - - - - - Base transaction interface, shared by typed and non-typed transactions - - - - - Interface to redis pipeline - - - - - Pipeline interface shared by typed and non-typed pipelines - - - - - interface to operation that can queue commands - - - - - Interface to operations that allow queued commands to be completed - - - - - A log entry added by the IRequestLogger - - - - - Error information pertaining to a particular named field. - Used for returning multiple field validation errors.s - - - - - Common ResponseStatus class that should be present on all response DTO's - - - - - Initializes a new instance of the class. - - A response status without an errorcode == success - - - - - Initializes a new instance of the class. - A response status with an errorcode == failure - - - - - Initializes a new instance of the class. - A response status with an errorcode == failure - - - - - Holds the custom ErrorCode enum if provided in ValidationException - otherwise will hold the name of the Exception type, e.g. typeof(Exception).Name - - A value of non-null means the service encountered an error while processing the request. - - - - - A human friendly error message - - - - - The Server StackTrace when DebugMode is enabled - - - - - For multiple detailed validation errors. - Can hold a specific error message for each named field. - - - - - For additional custom metadata about the error - - - - - Decorate on Request DTO's to alter the accessibility of a service and its visibility on /metadata pages - - - - - Allow access but hide from metadata to requests from Localhost only - - - - - Allow access but hide from metadata to requests from Localhost and Local Intranet only - - - - - Restrict access and hide from metadata to requests from Localhost only - - - - - Restrict access and hide from metadata to requests from Localhost and Local Intranet only - - - - - Restrict access and hide from metadata to requests from External only - - - - - Sets a single access restriction - - Restrict Access to. - - - - Restrict access to any of the specified access scenarios - - Access restrictions - - - - Sets a single metadata Visibility restriction - - Restrict metadata Visibility to. - - - - Restrict metadata visibility to any of the specified access scenarios - - Visibility restrictions - - - - Restrict access and metadata visibility to any of the specified access scenarios - - The restrict access to scenarios. - - - - Restrict access and metadata visibility to any of the specified access scenarios - - The restrict access to scenarios. - - - - Returns the allowed set of scenarios based on the user-specified restrictions - - - - - - - Converts from a User intended restriction to a flag with all the allowed attribute flags set, e.g: - - If No Network restrictions were specified all Network access types are allowed, e.g: - restrict EndpointAttributes.None => ... 111 - - If a Network restriction was specified, only it will be allowed, e.g: - restrict EndpointAttributes.LocalSubnet => ... 010 - - The returned Enum will have a flag with all the allowed attributes set - - - - - - - Used to decorate Request DTO's to associate a RESTful request - path mapping with a service. Multiple attributes can be applied to - each request DTO, to map multiple paths to the service. - - - - - Initializes an instance of the class. - - - The path template to map to the request. See - RouteAttribute.Path - for details on the correct format. - - - - - Initializes an instance of the class. - - - The path template to map to the request. See - RouteAttribute.Path - for details on the correct format. - - A comma-delimited list of HTTP verbs supported by the - service. If unspecified, all verbs are assumed to be supported. - - - - Gets or sets the path template to be mapped to the request. - - - A value providing the path mapped to - the request. Never . - - - Some examples of valid paths are: - - - "/Inventory" - "/Inventory/{Category}/{ItemId}" - "/Inventory/{ItemPath*}" - - - Variables are specified within "{}" - brackets. Each variable in the path is mapped to the same-named property - on the request DTO. At runtime, ServiceStack will parse the - request URL, extract the variable values, instantiate the request DTO, - and assign the variable values into the corresponding request properties, - prior to passing the request DTO to the service object for processing. - - It is not necessary to specify all request properties as - variables in the path. For unspecified properties, callers may provide - values in the query string. For example: the URL - "http://services/Inventory?Category=Books&ItemId=12345" causes the same - request DTO to be processed as "http://services/Inventory/Books/12345", - provided that the paths "/Inventory" (which supports the first URL) and - "/Inventory/{Category}/{ItemId}" (which supports the second URL) - are both mapped to the request DTO. - - Please note that while it is possible to specify property values - in the query string, it is generally considered to be less RESTful and - less desirable than to specify them as variables in the path. Using the - query string to specify property values may also interfere with HTTP - caching. - - The final variable in the path may contain a "*" suffix - to grab all remaining segments in the path portion of the request URL and assign - them to a single property on the request DTO. - For example, if the path "/Inventory/{ItemPath*}" is mapped to the request DTO, - then the request URL "http://services/Inventory/Books/12345" will result - in a request DTO whose ItemPath property contains "Books/12345". - You may only specify one such variable in the path, and it must be positioned at - the end of the path. - - - - - Gets or sets short summary of what the route does. - - - - - Gets or sets longer text to explain the behaviour of the route. - - - - - Gets or sets a comma-delimited list of HTTP verbs supported by the service, such as - "GET,PUT,POST,DELETE". - - - A providing a comma-delimited list of HTTP verbs supported - by the service, or empty if all verbs are supported. - - - - - Used to rank the precedences of route definitions in reverse routing. - i.e. Priorities below 0 are auto-generated have less precedence. - - - - - Must match rule defined in Config.RequestRules or Regex expression with format: - "{IHttpRequest.Field} =~ {pattern}", e.g "PathInfo =~ \/[0-9]+$" - - - - - Fallback routes have the lowest precedence, i.e. after normal Routes, static files or any matching Catch All Handlers. - - - - - Additional checks to notify of invalid state, configuration or use of ServiceStack libraries. - Can disable StrictMode checks with Config.StrictMode = false; - - - - - Get or sets tag name - - - - - Get or sets operation verbs for which the attribute be applied - - - - - Adds an expired Set-Cookie instruction for clients to delete this Cookie - - - - - Adds a new Set-Cookie instruction for ss-pid - - - - - Adds a new Set-Cookie instruction for ss-id - - - - - Order in which Request Filters are executed. - <0 Executed before global request filters - >0 Executed after global request filters - - - - - A new shallow copy of this filter is used on every request. - - - - - - This interface can be implemented by an attribute - which adds an request filter for the specific request DTO the attribute marked. - - - - - The request filter is executed before the service. - - The http request wrapper - The http response wrapper - The request DTO - - - - This interface can be implemented by an attribute - which adds an request filter for the specific request DTO the attribute marked. - - - - - The request filter is executed before the service. - - The http request wrapper - The http response wrapper - The request DTO - - - - Order in which Response Filters are executed. - <0 Executed before global response filters - >0 Executed after global response filters - - - - - A new shallow copy of this filter is used on every request. - - - - - - This interface can be implemented by an attribute - which adds an response filter for the specific response DTO the attribute marked. - - - - - The response filter is executed after the service - - The http request wrapper - The http response wrapper - - - - This interface can be implemented by an attribute - which adds an response filter for the specific response DTO the attribute marked. - - - - - The response filter is executed after the service - - The http request wrapper - The http response wrapper - - - - A thin wrapper around ASP.NET or HttpListener's HttpRequest - - - - - The HttpResponse - - - - - The HTTP Verb - - - - - The IP Address of the X-Forwarded-For header, null if null or empty - - - - - The Port number of the X-Forwarded-Port header, null if null or empty - - - - - The http or https scheme of the X-Forwarded-Proto header, null if null or empty - - - - - The value of the X-Real-IP header, null if null or empty - - - - - The value of the Accept HTTP Request Header - - - - - A thin wrapper around ASP.NET or HttpListener's HttpResponse - - - - - Adds a new Set-Cookie instruction to Response - - - - - - Removes all pending Set-Cookie instructions - - - - - The HTTP Response Status - - - - - The HTTP Response Status Code - - - - - The HTTP Status Description - - - - - The HTTP Response ContentType - - - - - Additional HTTP Headers - - - - - Additional HTTP Cookies - - - - - Response DTO - - - - - if not provided, get's injected by ServiceStack - - - - - Holds the request call context - - - - - The padding length written with the body, to be added to ContentLength of body - - - - - Serialize the Response within the specified scope - - - - - Whether this HttpResult allows Partial Response - - - - - Write a partial content result - - - - - Whether this HttpResult allows Partial Response - - - - - Write a partial content result - - - - - A thin wrapper around each host's Request e.g: ASP.NET, HttpListener, MQ, etc - - - - - The underlying ASP.NET or HttpListener HttpRequest - - - - - The Response API for this Request - - - - - The name of the service being called (e.g. Request DTO Name) - - - - - The Verb / HttpMethod or Action for this request - - - - - Different Attribute Enum flags classifying this Request - - - - - Optional preferences for the processing of this Request - - - - - The Request DTO, after it has been deserialized. - - - - - The request ContentType - - - - - Whether this was an Internal Request - - - - - The UserAgent for the request - - - - - A Dictionary of HTTP Cookies sent with this Request - - - - - The expected Response ContentType for this request - - - - - Whether the ResponseContentType has been explicitly overrided or whether it was just the default - - - - - Attach any data to this request that all filters and services can access. - - - - - The HTTP Headers in a NameValueCollection - - - - - The ?query=string in a NameValueCollection - - - - - The HTTP POST'ed Form Data in a NameValueCollection - - - - - Buffer the Request InputStream so it can be re-read - - - - - The entire string contents of Request.InputStream - - - - - - Relative URL containing /path/info?query=string - - - - - The Absolute URL for the request - - - - - The Remote IP as reported by Request.UserHostAddress - - - - - The Remote Ip as reported by X-Forwarded-For, X-Real-IP or Request.UserHostAddress - - - - - The value of the Authorization Header used to send the Api Key, null if not available - - - - - e.g. is https or not - - - - - Array of different Content-Types accepted by the client - - - - - The normalized /path/info for the request - - - - - The original /path/info as sent - - - - - The Request Body Input Stream - - - - - The size of the Request Body if provided - - - - - Access to the multi-part/formdata files posted on this request - - - - - The value of the Referrer, null if not available - - - - - Log every service request - - - - - Turn On/Off Session Tracking - - - - - Turn On/Off Raw Request Body Tracking - - - - - Turn On/Off Tracking of Responses - - - - - Turn On/Off Tracking of Exceptions - - - - - Limit logging to only Service Requests - - - - - Limit access to /requestlogs service to role - - - - - Don't log matching requests - - - - - Don't log requests of these types. - - - - - Don't log request bodys for services with sensitive information. - By default Auth and Registration requests are hidden. - - - - - Log a request - - The RequestContext - Request DTO - Response DTO or Exception - How long did the Request take - - - - View the most recent logs - - - - - - - Implement on services that need access to the RequestContext - - - - - Implement on Request DTOs that need access to the raw Request Stream - - - - - The raw Http Request Input Stream - - - - - A thin wrapper around each host's Response e.g: ASP.NET, HttpListener, MQ, etc - - - - - The underlying ASP.NET, .NET Core or HttpListener HttpResponse - - - - - The corresponding IRequest API for this Response - - - - - The Response Status Code - - - - - The Response Status Description - - - - - The Content-Type for this Response - - - - - Add a Header to this Response - - - - - - - Remove an existing Header added on this Response - - - - - - Get an existing Header added to this Response - - - - - - - Return a Redirect Response to the URL specified - - - - - - The Response Body Output Stream - - - - - The Response DTO - - - - - Buffer the Response OutputStream so it can be written in 1 batch - - - - - Signal that this response has been handled and no more processing should be done. - When used in a request or response filter, no more filters or processing is done on this request. - - - - - Calls Response.End() on ASP.NET HttpResponse otherwise is an alias for Close(). - Useful when you want to prevent ASP.NET to provide it's own custom error page. - - - - - Response.Flush() and OutputStream.Flush() seem to have different behaviour in ASP.NET - - - - - Flush this Response Output Stream Async - - - - - - - Gets a value indicating whether this instance is closed. - - - - - Set the Content Length in Bytes for this Response - - - - - - Whether the underlying TCP Connection for this Response should remain open - - - - - Whether the HTTP Response Headers have already been written. - - - - - Responsible for executing the operation within the specified context. - - The operation types. - - - - Returns the first matching RestPath - - - - - Executes the MQ DTO request. - - - - - Executes the MQ DTO request with the supplied requestContext - - - - - Executes the DTO request under the supplied requestContext. - - - - - Executes the DTO request under supplied context and option to Execute Request/Response Filters. - - - - - Executes the DTO request with an empty RequestContext. - - - - - Executes the DTO request with the current HttpRequest and option to Execute Request/Response Filters. - - - - - Allow the registration of user-defined routes for services - - - - - Maps the specified REST path to the specified request DTO. - - The type of request DTO to map - the path to. - The path to map the request DTO to. - See RouteAttribute.Path - for details on the correct format. - The same instance; - never . - - - - Maps the specified REST path to the specified request DTO, and - specifies the HTTP verbs supported by the path. - - The type of request DTO to map - the path to. - The path to map the request DTO to. - See RouteAttribute.Path - for details on the correct format. - - The comma-delimited list of HTTP verbs supported by the path, - such as "GET,PUT,DELETE". Specify empty or - to indicate that all verbs are supported. - - The same instance; - never . - - - - Maps the specified REST path to the specified request DTO, - specifies the HTTP verbs supported by the path, and indicates - the default MIME type of the returned response. - - - The type of request DTO to map the path to. - - The path to map the request DTO to. - See RouteAttribute.Path - for details on the correct format. - - The comma-delimited list of HTTP verbs supported by the path, - such as "GET,PUT,DELETE". - - The same instance; - never . - - - - Maps the specified REST path to the specified request DTO, - specifies the HTTP verbs supported by the path, and indicates - the default MIME type of the returned response. - - - Used to rank the precedences of route definitions in reverse routing. - i.e. Priorities below 0 are auto-generated have less precedence. - - - - - Maps the specified REST path to the specified request DTO, - specifies the HTTP verbs supported by the path, and indicates - the default MIME type of the returned response. - - - The type of request DTO to map the path to. - - The path to map the request DTO to. - See RouteAttribute.Path - for details on the correct format. - - The comma-delimited list of HTTP verbs supported by the path, - such as "GET,PUT,DELETE". - - - The short summary of what the REST does. - - - The longer text to explain the behaviour of the REST. - - The same instance; - never . - - - - Maps the specified REST path to the specified request DTO, - specifies the HTTP verbs supported by the path, and indicates - the default MIME type of the returned response. - - - The type of request DTO to map the path to. - - The path to map the request DTO to. - See RouteAttribute.Path - for details on the correct format. - - The comma-delimited list of HTTP verbs supported by the path, - such as "GET,PUT,DELETE". - - - The short summary of what the REST does. - - - The longer text to explain the behaviour of the REST. - - - Must match rule defined in Config.RequestRules or Regex expression with format: - "{IHttpRequest.Field} =~ {pattern}", e.g "PathInfo =~ \/[0-9]+$" - - The same instance; - never . - - - diff --git a/lib/netstandard2.0/ServiceStack.Kestrel.deps.json b/lib/netstandard2.0/ServiceStack.Kestrel.deps.json deleted file mode 100644 index dfde70f..0000000 --- a/lib/netstandard2.0/ServiceStack.Kestrel.deps.json +++ /dev/null @@ -1,2133 +0,0 @@ -{ - "runtimeTarget": { - "name": ".NETStandard,Version=v2.0/", - "signature": "4aca47d72c2187cb1c01eb3ebd28b6aae42076a3" - }, - "compilationOptions": {}, - "targets": { - ".NETStandard,Version=v2.0": {}, - ".NETStandard,Version=v2.0/": { - "ServiceStack.Kestrel/1.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Hosting.Abstractions": "2.0.0", - "Microsoft.AspNetCore.Http": "2.0.0", - "Microsoft.AspNetCore.Http.Abstractions": "2.0.0", - "Microsoft.AspNetCore.Http.Extensions": "2.0.0", - "Microsoft.AspNetCore.Server.Kestrel": "2.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "2.0.0", - "Microsoft.Extensions.Logging.Abstractions": "2.0.0", - "Microsoft.Extensions.Primitives": "2.0.0", - "NETStandard.Library": "2.0.1", - "ServiceStack": "1.0.0", - "ServiceStack.Client": "1.0.0", - "ServiceStack.Common": "1.0.0", - "ServiceStack.Interfaces": "1.0.0", - "ServiceStack.Text": "5.0.0.0" - }, - "runtime": { - "ServiceStack.Kestrel.dll": {} - } - }, - "Libuv/1.10.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0" - } - }, - "Microsoft.AspNetCore.Cryptography.Internal/2.0.0": { - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Cryptography.Internal.dll": {} - } - }, - "Microsoft.AspNetCore.Cryptography.KeyDerivation/2.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Cryptography.Internal": "2.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Cryptography.KeyDerivation.dll": {} - } - }, - "Microsoft.AspNetCore.Hosting/2.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Hosting.Abstractions": "2.0.0", - "Microsoft.AspNetCore.Hosting.Server.Abstractions": "2.0.0", - "Microsoft.AspNetCore.Http": "2.0.0", - "Microsoft.AspNetCore.Http.Extensions": "2.0.0", - "Microsoft.Extensions.Configuration": "2.0.0", - "Microsoft.Extensions.Configuration.EnvironmentVariables": "2.0.0", - "Microsoft.Extensions.Configuration.FileExtensions": "2.0.0", - "Microsoft.Extensions.DependencyInjection": "2.0.0", - "Microsoft.Extensions.FileProviders.Physical": "2.0.0", - "Microsoft.Extensions.Logging": "2.0.0", - "Microsoft.Extensions.Options": "2.0.0", - "System.Diagnostics.DiagnosticSource": "4.4.1", - "System.Reflection.Metadata": "1.5.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Hosting.dll": {} - } - }, - "Microsoft.AspNetCore.Hosting.Abstractions/2.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Hosting.Server.Abstractions": "2.0.0", - "Microsoft.AspNetCore.Http.Abstractions": "2.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "2.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "2.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "2.0.0", - "Microsoft.Extensions.Hosting.Abstractions": "2.0.0", - "Microsoft.Extensions.Logging.Abstractions": "2.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Hosting.Abstractions.dll": {} - } - }, - "Microsoft.AspNetCore.Hosting.Server.Abstractions/2.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Features": "2.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "2.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Hosting.Server.Abstractions.dll": {} - } - }, - "Microsoft.AspNetCore.Http/2.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Abstractions": "2.0.0", - "Microsoft.AspNetCore.WebUtilities": "2.0.0", - "Microsoft.Extensions.ObjectPool": "2.0.0", - "Microsoft.Extensions.Options": "2.0.0", - "Microsoft.Net.Http.Headers": "2.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Http.dll": {} - } - }, - "Microsoft.AspNetCore.Http.Abstractions/2.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Features": "2.0.0", - "System.Text.Encodings.Web": "4.4.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Abstractions.dll": {} - } - }, - "Microsoft.AspNetCore.Http.Extensions/2.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Abstractions": "2.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "2.0.0", - "Microsoft.Net.Http.Headers": "2.0.0", - "System.Buffers": "4.4.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Extensions.dll": {} - } - }, - "Microsoft.AspNetCore.Http.Features/2.0.0": { - "dependencies": { - "Microsoft.Extensions.Primitives": "2.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Features.dll": {} - } - }, - "Microsoft.AspNetCore.Server.Kestrel/2.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Hosting": "2.0.0", - "Microsoft.AspNetCore.Server.Kestrel.Core": "2.0.0", - "Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv": "2.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Server.Kestrel.dll": {} - } - }, - "Microsoft.AspNetCore.Server.Kestrel.Core/2.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Hosting.Abstractions": "2.0.0", - "Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions": "2.0.0", - "Microsoft.AspNetCore.WebUtilities": "2.0.0", - "Microsoft.Extensions.Logging.Abstractions": "2.0.0", - "Microsoft.Extensions.Options": "2.0.0", - "Microsoft.Net.Http.Headers": "2.0.0", - "System.Threading.Tasks.Extensions": "4.4.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Server.Kestrel.Core.dll": {} - } - }, - "Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions/2.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Features": "2.0.0", - "System.Buffers": "4.4.0", - "System.Numerics.Vectors": "4.4.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.dll": {} - } - }, - "Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv/2.0.0": { - "dependencies": { - "Libuv": "1.10.0", - "Microsoft.AspNetCore.Hosting.Abstractions": "2.0.0", - "Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions": "2.0.0", - "Microsoft.Extensions.Logging.Abstractions": "2.0.0", - "Microsoft.Extensions.Options": "2.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.dll": {} - } - }, - "Microsoft.AspNetCore.WebUtilities/2.0.0": { - "dependencies": { - "Microsoft.Net.Http.Headers": "2.0.0", - "System.Text.Encodings.Web": "4.4.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.WebUtilities.dll": {} - } - }, - "Microsoft.Extensions.Configuration/2.0.0": { - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "2.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Configuration.dll": {} - } - }, - "Microsoft.Extensions.Configuration.Abstractions/2.0.0": { - "dependencies": { - "Microsoft.Extensions.Primitives": "2.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll": {} - } - }, - "Microsoft.Extensions.Configuration.Binder/2.0.0": { - "dependencies": { - "Microsoft.Extensions.Configuration": "2.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Configuration.Binder.dll": {} - } - }, - "Microsoft.Extensions.Configuration.EnvironmentVariables/2.0.0": { - "dependencies": { - "Microsoft.Extensions.Configuration": "2.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Configuration.EnvironmentVariables.dll": {} - } - }, - "Microsoft.Extensions.Configuration.FileExtensions/2.0.0": { - "dependencies": { - "Microsoft.Extensions.Configuration": "2.0.0", - "Microsoft.Extensions.FileProviders.Physical": "2.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Configuration.FileExtensions.dll": {} - } - }, - "Microsoft.Extensions.DependencyInjection/2.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "2.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.dll": {} - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/2.0.0": { - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {} - } - }, - "Microsoft.Extensions.FileProviders.Abstractions/2.0.0": { - "dependencies": { - "Microsoft.Extensions.Primitives": "2.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Abstractions.dll": {} - } - }, - "Microsoft.Extensions.FileProviders.Physical/2.0.0": { - "dependencies": { - "Microsoft.Extensions.FileProviders.Abstractions": "2.0.0", - "Microsoft.Extensions.FileSystemGlobbing": "2.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Physical.dll": {} - } - }, - "Microsoft.Extensions.FileSystemGlobbing/2.0.0": { - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.FileSystemGlobbing.dll": {} - } - }, - "Microsoft.Extensions.Hosting.Abstractions/2.0.0": { - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Hosting.Abstractions.dll": {} - } - }, - "Microsoft.Extensions.Logging/2.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "2.0.0", - "Microsoft.Extensions.Logging.Abstractions": "2.0.0", - "Microsoft.Extensions.Options": "2.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Logging.dll": {} - } - }, - "Microsoft.Extensions.Logging.Abstractions/2.0.0": { - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll": {} - } - }, - "Microsoft.Extensions.ObjectPool/2.0.0": { - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.ObjectPool.dll": {} - } - }, - "Microsoft.Extensions.Options/2.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "2.0.0", - "Microsoft.Extensions.Primitives": "2.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Options.dll": {} - } - }, - "Microsoft.Extensions.Primitives/2.0.0": { - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "4.4.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll": {} - } - }, - "Microsoft.Net.Http.Headers/2.0.0": { - "dependencies": { - "Microsoft.Extensions.Primitives": "2.0.0", - "System.Buffers": "4.4.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Net.Http.Headers.dll": {} - } - }, - "Microsoft.NETCore.Platforms/2.0.0": {}, - "Microsoft.NETCore.Targets/1.1.0": {}, - "Microsoft.Win32.Primitives/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "NETStandard.Library/2.0.1": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0" - } - }, - "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.native.System/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.native.System.Net.Http/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.native.System.Security.Cryptography.Apple/4.3.0": { - "dependencies": { - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" - } - }, - "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "dependencies": { - "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {}, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "System.Buffers/4.4.0": { - "runtime": { - "lib/netstandard2.0/System.Buffers.dll": {} - } - }, - "System.Collections/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Collections.Concurrent/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.Reflection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Collections.Concurrent.dll": {} - } - }, - "System.Collections.Immutable/1.4.0": { - "runtime": { - "lib/netstandard2.0/System.Collections.Immutable.dll": {} - } - }, - "System.Collections.NonGeneric/4.3.0": { - "dependencies": { - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Collections.NonGeneric.dll": {} - } - }, - "System.Collections.Specialized/4.3.0": { - "dependencies": { - "System.Collections.NonGeneric": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Extensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Collections.Specialized.dll": {} - } - }, - "System.ComponentModel/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.ComponentModel.dll": {} - } - }, - "System.ComponentModel.Primitives/4.3.0": { - "dependencies": { - "System.ComponentModel": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.0/System.ComponentModel.Primitives.dll": {} - } - }, - "System.Data.Common/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Text.RegularExpressions": "4.3.0", - "System.Threading.Tasks": "4.3.0" - }, - "runtime": { - "lib/netstandard1.2/System.Data.Common.dll": {} - } - }, - "System.Diagnostics.Debug/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Diagnostics.DiagnosticSource/4.4.1": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Diagnostics.DiagnosticSource.dll": {} - } - }, - "System.Diagnostics.Tracing/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Dynamic.Runtime/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Linq": "4.3.0", - "System.Linq.Expressions": "4.3.0", - "System.ObjectModel": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Emit": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Reflection.TypeExtensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Dynamic.Runtime.dll": {} - } - }, - "System.Globalization/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Globalization.Calendars/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Globalization": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Globalization.Extensions/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.InteropServices": "4.3.0" - } - }, - "System.IO/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.IO.FileSystem/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.IO.FileSystem.Primitives/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.IO.FileSystem.Primitives.dll": {} - } - }, - "System.Linq/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0" - }, - "runtime": { - "lib/netstandard1.6/System.Linq.dll": {} - } - }, - "System.Linq.Expressions/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Linq": "4.3.0", - "System.ObjectModel": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Emit": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Emit.Lightweight": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Reflection.TypeExtensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - }, - "runtime": { - "lib/netstandard1.6/System.Linq.Expressions.dll": {} - } - }, - "System.Linq.Queryable/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Linq": "4.3.0", - "System.Linq.Expressions": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Linq.Queryable.dll": {} - } - }, - "System.Net.Http/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.DiagnosticSource": "4.4.1", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Extensions": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.OpenSsl": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Security.Cryptography.X509Certificates": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "runtime.native.System": "4.3.0", - "runtime.native.System.Net.Http": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Net.Http.WinHttpHandler/4.4.0": { - "dependencies": { - "System.Buffers": "4.4.0" - }, - "runtime": { - "lib/netstandard2.0/System.Net.Http.WinHttpHandler.dll": {} - } - }, - "System.Net.NetworkInformation/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.Win32.Primitives": "4.3.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Linq": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Net.Sockets": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Principal.Windows": "4.4.0", - "System.Threading": "4.3.0", - "System.Threading.Overlapped": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "System.Threading.Thread": "4.3.0", - "System.Threading.ThreadPool": "4.3.0", - "runtime.native.System": "4.3.0" - } - }, - "System.Net.Primitives/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0" - } - }, - "System.Net.Requests/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Net.Http": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Net.WebHeaderCollection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Net.Sockets/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Net.WebHeaderCollection/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Net.WebHeaderCollection.dll": {} - } - }, - "System.Numerics.Vectors/4.4.0": { - "runtime": { - "lib/netstandard2.0/System.Numerics.Vectors.dll": {} - } - }, - "System.ObjectModel/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.ObjectModel.dll": {} - } - }, - "System.Private.ServiceModel/4.4.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "System.Net.Http.WinHttpHandler": "4.4.0", - "System.Reflection.DispatchProxy": "4.4.0", - "System.Security.Principal.Windows": "4.4.0" - } - }, - "System.Reflection/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.DispatchProxy/4.4.0": { - "runtime": { - "lib/netstandard2.0/System.Reflection.DispatchProxy.dll": {} - } - }, - "System.Reflection.Emit/4.3.0": { - "dependencies": { - "System.IO": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Reflection.Emit.dll": {} - } - }, - "System.Reflection.Emit.ILGeneration/4.3.0": { - "dependencies": { - "System.Reflection": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Reflection.Emit.ILGeneration.dll": {} - } - }, - "System.Reflection.Emit.Lightweight/4.3.0": { - "dependencies": { - "System.Reflection": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Reflection.Emit.Lightweight.dll": {} - } - }, - "System.Reflection.Extensions/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.Metadata/1.5.0": { - "dependencies": { - "System.Collections.Immutable": "1.4.0" - }, - "runtime": { - "lib/netstandard2.0/System.Reflection.Metadata.dll": {} - } - }, - "System.Reflection.Primitives/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.TypeExtensions/4.3.0": { - "dependencies": { - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.5/System.Reflection.TypeExtensions.dll": {} - } - }, - "System.Resources.ResourceManager/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Globalization": "4.3.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "System.Runtime.CompilerServices.Unsafe/4.4.0": { - "runtime": { - "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll": {} - } - }, - "System.Runtime.Extensions/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime.Handles/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime.InteropServices/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Reflection": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0" - } - }, - "System.Runtime.Numerics/4.3.0": { - "dependencies": { - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Runtime.Numerics.dll": {} - } - }, - "System.Runtime.Serialization.Primitives/4.3.0": { - "dependencies": { - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Runtime.Serialization.Primitives.dll": {} - } - }, - "System.Security.Cryptography.Algorithms/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "System.Collections": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.Apple": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Security.Cryptography.Cng/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0" - } - }, - "System.Security.Cryptography.Csp/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "System.IO": "4.3.0", - "System.Reflection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.Security.Cryptography.Encoding/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "System.Collections": "4.3.0", - "System.Collections.Concurrent": "4.3.0", - "System.Linq": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Security.Cryptography.OpenSsl/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - }, - "runtime": { - "lib/netstandard1.6/System.Security.Cryptography.OpenSsl.dll": {} - } - }, - "System.Security.Cryptography.Primitives/4.3.0": { - "dependencies": { - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Security.Cryptography.Primitives.dll": {} - } - }, - "System.Security.Cryptography.X509Certificates/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Calendars": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Cng": "4.3.0", - "System.Security.Cryptography.Csp": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.OpenSsl": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "runtime.native.System": "4.3.0", - "runtime.native.System.Net.Http": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Security.Principal.Windows/4.4.0": { - "runtime": { - "lib/netstandard2.0/System.Security.Principal.Windows.dll": {} - } - }, - "System.ServiceModel.Primitives/4.4.0": { - "dependencies": { - "System.Private.ServiceModel": "4.4.0" - }, - "runtime": { - "lib/netstandard2.0/System.ServiceModel.Primitives.dll": {} - } - }, - "System.Text.Encoding/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Text.Encoding.Extensions/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Text.Encoding": "4.3.0" - } - }, - "System.Text.Encodings.Web/4.4.0": { - "runtime": { - "lib/netstandard2.0/System.Text.Encodings.Web.dll": {} - } - }, - "System.Text.RegularExpressions/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - }, - "runtime": { - "lib/netstandard1.6/System.Text.RegularExpressions.dll": {} - } - }, - "System.Threading/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.0", - "System.Threading.Tasks": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Threading.dll": {} - } - }, - "System.Threading.Overlapped/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0" - } - }, - "System.Threading.Tasks/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Threading.Tasks.Extensions/4.4.0": { - "runtime": { - "lib/netstandard2.0/System.Threading.Tasks.Extensions.dll": {} - } - }, - "System.Threading.Thread/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Threading.Thread.dll": {} - } - }, - "System.Threading.ThreadPool/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Threading.ThreadPool.dll": {} - } - }, - "System.Xml.ReaderWriter/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Text.Encoding.Extensions": "4.3.0", - "System.Text.RegularExpressions": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "System.Threading.Tasks.Extensions": "4.4.0" - }, - "runtime": { - "lib/netstandard1.3/System.Xml.ReaderWriter.dll": {} - } - }, - "System.Xml.XmlDocument/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "System.Xml.ReaderWriter": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Xml.XmlDocument.dll": {} - } - }, - "System.Xml.XmlSerializer/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Linq": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Emit": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Reflection.TypeExtensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Text.RegularExpressions": "4.3.0", - "System.Threading": "4.3.0", - "System.Xml.ReaderWriter": "4.3.0", - "System.Xml.XmlDocument": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Xml.XmlSerializer.dll": {} - } - }, - "ServiceStack/1.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Cryptography.KeyDerivation": "2.0.0", - "Microsoft.AspNetCore.Hosting.Abstractions": "2.0.0", - "Microsoft.AspNetCore.Http": "2.0.0", - "Microsoft.AspNetCore.Http.Abstractions": "2.0.0", - "Microsoft.AspNetCore.Http.Extensions": "2.0.0", - "Microsoft.Extensions.Configuration.Binder": "2.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "2.0.0", - "Microsoft.Extensions.Logging.Abstractions": "2.0.0", - "Microsoft.Extensions.Primitives": "2.0.0", - "ServiceStack.Client": "1.0.0", - "ServiceStack.Common": "1.0.0", - "ServiceStack.Interfaces": "1.0.0", - "System.Linq.Queryable": "4.3.0", - "System.Reflection.Emit": "4.3.0", - "System.Threading.Thread": "4.3.0" - }, - "runtime": { - "ServiceStack.dll": {} - } - }, - "ServiceStack.Client/1.0.0": { - "dependencies": { - "Microsoft.Extensions.Primitives": "2.0.0", - "ServiceStack.Interfaces": "1.0.0", - "System.Collections.Specialized": "4.3.0", - "System.Net.Requests": "4.3.0", - "System.ServiceModel.Primitives": "4.4.0", - "System.Xml.XmlSerializer": "4.3.0" - }, - "runtime": { - "ServiceStack.Client.dll": {} - } - }, - "ServiceStack.Common/1.0.0": { - "dependencies": { - "Microsoft.Extensions.Primitives": "2.0.0", - "ServiceStack.Interfaces": "1.0.0", - "System.ComponentModel.Primitives": "4.3.0", - "System.Data.Common": "4.3.0", - "System.Dynamic.Runtime": "4.3.0", - "System.Net.NetworkInformation": "4.3.0", - "System.Net.Requests": "4.3.0", - "System.Reflection.TypeExtensions": "4.3.0", - "System.Runtime.Serialization.Primitives": "4.3.0" - }, - "runtime": { - "ServiceStack.Common.dll": {} - } - }, - "ServiceStack.Interfaces/1.0.0": { - "dependencies": { - "System.Runtime.Serialization.Primitives": "4.3.0" - }, - "runtime": { - "ServiceStack.Interfaces.dll": {} - } - }, - "ServiceStack.Text/5.0.0.0": { - "runtime": { - "ServiceStack.Text.dll": {} - } - } - } - }, - "libraries": { - "ServiceStack.Kestrel/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "Libuv/1.10.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-GsCf4q+eyaI49rCPlgYxdxa1SQCysXFFdSJWdstrwxytg4+VPYLYrXD4AT2rjHVJ+UF7SSWX9CapWEYaU4ejVQ==", - "path": "libuv/1.10.0", - "hashPath": "libuv.1.10.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Cryptography.Internal/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-SY6GQyZZ5o09rqFmy3nhyJzx3lkFDBl0wO2Kb7EoLCPyH6dC7KB+QXysHfa9P5jHPiYB9VEkcQ9H7kQKcXQ1sw==", - "path": "microsoft.aspnetcore.cryptography.internal/2.0.0", - "hashPath": "microsoft.aspnetcore.cryptography.internal.2.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Cryptography.KeyDerivation/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-kXszvwovn6Xot8JvRVf5KL9HXHzVVirs9diPkzMDNoPWMvubXRisw1d3T2ETFCgx2MOOhfUu5+LXlybC1ITkOQ==", - "path": "microsoft.aspnetcore.cryptography.keyderivation/2.0.0", - "hashPath": "microsoft.aspnetcore.cryptography.keyderivation.2.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Hosting/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-pVy+1Thqq0f6cHrl1YQFVFNf0PdWY74xrLBCln3groRNlvycsbYc3yhUtSJ2MipjVYa6hi6tBVfqDnEgYoxUQQ==", - "path": "microsoft.aspnetcore.hosting/2.0.0", - "hashPath": "microsoft.aspnetcore.hosting.2.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Hosting.Abstractions/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-IR2zlm3d/CmYbkw+cMM7M6mUAi+xsFUPfWqGYqzZVC5o6jX3xD2Z4Uf44UBaWKMBf5Z7q9dodIdXxwFPF2Hxhg==", - "path": "microsoft.aspnetcore.hosting.abstractions/2.0.0", - "hashPath": "microsoft.aspnetcore.hosting.abstractions.2.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Hosting.Server.Abstractions/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-v2H65ix/O11HKoxhKQpljtozsD5/1tqeXr3TYnrLgfAPIsp6kTFxIcTSENoxtew7h9X14ENqUf2lBCkyCNRUuQ==", - "path": "microsoft.aspnetcore.hosting.server.abstractions/2.0.0", - "hashPath": "microsoft.aspnetcore.hosting.server.abstractions.2.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-2YNhcHrGxo2YufA8TYGyaEMIJwikyisZqEzHCRpIuI0D6ZXkA47U/3NJg2r/x5/gGHNM3TXO7DsqH88qRda+yg==", - "path": "microsoft.aspnetcore.http/2.0.0", - "hashPath": "microsoft.aspnetcore.http.2.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http.Abstractions/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-pblZLY7IfNqhQ5wwGQ0vNq2mG6W5YgZI1fk7suEuwZsGxGEADNBAyNlTALM9L8nMXdvbp6aHP/t4wHrFpcL3Sw==", - "path": "microsoft.aspnetcore.http.abstractions/2.0.0", - "hashPath": "microsoft.aspnetcore.http.abstractions.2.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http.Extensions/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lA7Bwvur19MhXrlW0w+WBXONJMSFYY5kNazflz4MNwMZMtzwHxNA6fC5sQsssYd/XvA0gMyKwp52s68uuKLR1w==", - "path": "microsoft.aspnetcore.http.extensions/2.0.0", - "hashPath": "microsoft.aspnetcore.http.extensions.2.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http.Features/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-yk62muzFTZTKCQuo3nmVPkPvGBlM2qbdSxbX62TufuONuKQrTGQ/SwhwBbYutk5/YY7u4HETu0n9BKOn7mMgmA==", - "path": "microsoft.aspnetcore.http.features/2.0.0", - "hashPath": "microsoft.aspnetcore.http.features.2.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Server.Kestrel/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-cDbsUQXVOlOCt9cWKsE9Ge9dH5Dwl50TJzU6HdSZV0vgvL/AFEn5U610C0oQQdblWn/GTHqL2uCXY1gFyN0DUw==", - "path": "microsoft.aspnetcore.server.kestrel/2.0.0", - "hashPath": "microsoft.aspnetcore.server.kestrel.2.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Server.Kestrel.Core/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-emXQQsdOmDwggQRRjdpdiVoDa2UluYM0WP7QkBcwAQDAfm0DDUOsiwVkVc2kiuKJ5QlINQpVqKIt9dZxLaeyaw==", - "path": "microsoft.aspnetcore.server.kestrel.core/2.0.0", - "hashPath": "microsoft.aspnetcore.server.kestrel.core.2.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-enxz76vpJqzrC32Xmbh7py9gN8SHXCOcEXLX5bMkVNoNNNsxiEjyEk2HZcrbhc9uwFLPtTv0dEMQ+CTCuFJRZQ==", - "path": "microsoft.aspnetcore.server.kestrel.transport.abstractions/2.0.0", - "hashPath": "microsoft.aspnetcore.server.kestrel.transport.abstractions.2.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-/wwgZY7C48FIeIkVU+/AT5cKUnMpE4++iuvduoLkcgAaXZgal/QeWW/P00DI/Bjvre+N6E+welWmIGO1LgEhbA==", - "path": "microsoft.aspnetcore.server.kestrel.transport.libuv/2.0.0", - "hashPath": "microsoft.aspnetcore.server.kestrel.transport.libuv.2.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.WebUtilities/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-RqDEwy7jdHJ0NunWydSzJrpODnsF7NPdB0KaRdG60H1bMEt4DbjcWkUb+XxjZ15uWCMi7clTQClpPuIFLwD1yQ==", - "path": "microsoft.aspnetcore.webutilities/2.0.0", - "hashPath": "microsoft.aspnetcore.webutilities.2.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Configuration/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-SsI4RqI8EH00+cYO96tbftlh87sNUv1eeyuBU1XZdQkG0RrHAOjWgl7P0FoLeTSMXJpOnfweeOWj2d1/5H3FxA==", - "path": "microsoft.extensions.configuration/2.0.0", - "hashPath": "microsoft.extensions.configuration.2.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Configuration.Abstractions/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-rHFrXqMIvQNq51H8RYTO4IWmDOYh8NUzyqGlh0xHWTP6XYnKk7Ryinys2uDs+Vu88b3AMlM3gBBSs78m6OQpYQ==", - "path": "microsoft.extensions.configuration.abstractions/2.0.0", - "hashPath": "microsoft.extensions.configuration.abstractions.2.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Configuration.Binder/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-IznHHzGUtrdpuQqIUdmzF6TYPcsYHONhHh3o9dGp39sX/9Zfmt476UnhvU0UhXgJnXXAikt/MpN6AuSLCCMdEQ==", - "path": "microsoft.extensions.configuration.binder/2.0.0", - "hashPath": "microsoft.extensions.configuration.binder.2.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Configuration.EnvironmentVariables/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-islcwe05LWFtAxGaJxoDbl4pj2nmG8nuW6dqYMZkPWIuHK7/46YELCbL+3Frl6X89qzDh5sj2PHgyWXTOAmwdA==", - "path": "microsoft.extensions.configuration.environmentvariables/2.0.0", - "hashPath": "microsoft.extensions.configuration.environmentvariables.2.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Configuration.FileExtensions/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ebFbu+vsz4rzeAICWavk9a0FutWVs7aNZap5k/IVxVhu2CnnhOp/H/gNtpzplrqjYDaNYdmv9a/DoUvH2ynVEQ==", - "path": "microsoft.extensions.configuration.fileextensions/2.0.0", - "hashPath": "microsoft.extensions.configuration.fileextensions.2.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.DependencyInjection/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-wakg18gHYiUL1pcjjyZuYk6OvDpbSw1E7IWxm78TMepsr+gQ8W0tWzuRm0q/9RFblngwPwo15rrgZSUV51W5Iw==", - "path": "microsoft.extensions.dependencyinjection/2.0.0", - "hashPath": "microsoft.extensions.dependencyinjection.2.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-eUdJ0Q/GfVyUJc0Jal5L1QZLceL78pvEM9wEKcHeI24KorqMDoVX+gWsMGLulQMfOwsUaPtkpQM2pFERTzSfSg==", - "path": "microsoft.extensions.dependencyinjection.abstractions/2.0.0", - "hashPath": "microsoft.extensions.dependencyinjection.abstractions.2.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.FileProviders.Abstractions/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Z0AK+hmLO33WAXQ5P1uPzhH7z5yjDHX/XnUefXxE//SyvCb9x4cVjND24dT5566t/yzGp8/WLD7EG9KQKZZklQ==", - "path": "microsoft.extensions.fileproviders.abstractions/2.0.0", - "hashPath": "microsoft.extensions.fileproviders.abstractions.2.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.FileProviders.Physical/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-DKO2j2socZbHNCCVEWsLVpB3AQIIzKYFNyITVeWdA1jQ829GJIQf4MUD04+1c+Q2kbK03pIKQZmEy4CGIfgDZw==", - "path": "microsoft.extensions.fileproviders.physical/2.0.0", - "hashPath": "microsoft.extensions.fileproviders.physical.2.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.FileSystemGlobbing/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-UC87vRDUB7/vSaNY/FVhbdAyRkfFBTkYmcUoglxk6TyTojhSqYaG5pZsoP4e1ZuXktFXJXJBTvK8U/QwCo0z3g==", - "path": "microsoft.extensions.filesystemglobbing/2.0.0", - "hashPath": "microsoft.extensions.filesystemglobbing.2.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Hosting.Abstractions/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-qPG6Ip/AdHxMJ7j3z8FkkpCbV8yjtiFpf/aOpN3TwfJWbtYpN+BKV8Q+pqPMgk7XZivcju9yARaEVCS++hWopA==", - "path": "microsoft.extensions.hosting.abstractions/2.0.0", - "hashPath": "microsoft.extensions.hosting.abstractions.2.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Logging/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-VP10syWV/vxYYMKgZ2eDESmUsz3gPxvBn5J6tkVN8lI4M+dF43RN8fWsEPbcAneDmZrHl3Pv23z05nmyGkJlpg==", - "path": "microsoft.extensions.logging/2.0.0", - "hashPath": "microsoft.extensions.logging.2.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Logging.Abstractions/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-6ZCllUYGFukkymSTx3Yr0G/ajRxoNJp7/FqSxSB4fGISST54ifBhgu4Nc0ItGi3i6DqwuNd8SUyObmiC++AO2Q==", - "path": "microsoft.extensions.logging.abstractions/2.0.0", - "hashPath": "microsoft.extensions.logging.abstractions.2.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.ObjectPool/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-drOmgNZCJiNEqFM/TvyqwtogS8wqoWGQCW5KB/CVGKL6VXHw8OOMdaHyspp8HPstP9UDnrnuq+8eaCaAcQg6tA==", - "path": "microsoft.extensions.objectpool/2.0.0", - "hashPath": "microsoft.extensions.objectpool.2.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Options/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-sAKBgjl2gWsECBLLR9K54T7/uZaP2n9GhMYHay/oOLfvpvX0+iNAlQ2NJgVE352C9Fs5CDV3VbNTK8T2aNKQFA==", - "path": "microsoft.extensions.options/2.0.0", - "hashPath": "microsoft.extensions.options.2.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Primitives/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ukg53qNlqTrK38WA30b5qhw0GD7y3jdI9PHHASjdKyTcBHTevFM2o23tyk3pWCgAV27Bbkm+CPQ2zUe1ZOuYSA==", - "path": "microsoft.extensions.primitives/2.0.0", - "hashPath": "microsoft.extensions.primitives.2.0.0.nupkg.sha512" - }, - "Microsoft.Net.Http.Headers/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Rm9zeNCWyNrGnysHdRXJpNfeDVlPzzFuidSuRLRNvOrnw71vgNPlR4H9wHo2hG/oSaruukqNjK06MDQqb+eXhA==", - "path": "microsoft.net.http.headers/2.0.0", - "hashPath": "microsoft.net.http.headers.2.0.0.nupkg.sha512" - }, - "Microsoft.NETCore.Platforms/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-VdLJOCXhZaEMY7Hm2GKiULmn7IEPFE4XC5LPSfBVCUIA8YLZVh846gtfBJalsPQF2PlzdD7ecX7DZEulJ402ZQ==", - "path": "microsoft.netcore.platforms/2.0.0", - "hashPath": "microsoft.netcore.platforms.2.0.0.nupkg.sha512" - }, - "Microsoft.NETCore.Targets/1.1.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-vs9c3q7errTVkO1Yh7FoI0eSNvkAIffVpnkygE76Vz8Eo9YtqycOEefrm4iOLMOyMvQIv0Nlw684nt2CDdlzig==", - "path": "microsoft.netcore.targets/1.1.0", - "hashPath": "microsoft.netcore.targets.1.1.0.nupkg.sha512" - }, - "Microsoft.Win32.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-SQ8c0zlY8aw8GZnA8pkKxpE5yDoQ0f123v6Aci8hSrrk9pJWtPgDcdn3KeHZlBtX6YefOUGzJ6Kb+WdwFrooFQ==", - "path": "microsoft.win32.primitives/4.3.0", - "hashPath": "microsoft.win32.primitives.4.3.0.nupkg.sha512" - }, - "NETStandard.Library/2.0.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-oA6nwv9MhEKYvLpjZ0ggSpb1g4CQViDVQjLUcDWg598jtvJbpfeP2reqwI1GLW2TbxC/Ml7xL6BBR1HmKPXlTg==", - "path": "netstandard.library/2.0.1", - "hashPath": "netstandard.library.2.0.1.nupkg.sha512" - }, - "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-XrmXcVFIyqVN6VRAC8NSVkQJ+c87MzDmb6b9+TgzXDmjJrlz5zx0v3RyrLy1Cs3CAWMk5bKQejtd1T0QKnEJUw==", - "path": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-r15mfA0DanSK+3Z3FyVJxjbTeDnSI8TvXofwii/3dqxHYTAv9Ke7duxTjq8Bo/HUoMOJ0eDbRXjIQ5RvUsJ+Jw==", - "path": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-LtkpYGXuZ9olCJH/Z7nWBa5nImH9EnRyloaZeHBeyhDRxoTNe4pZBhwR4ta7nHO9UI/82iWlriOL4fdWNNk4wA==", - "path": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.native.System/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-RfctibzVgLyVGPMn6bT7ntJhkDsdOsYHa76NX7OZdw4t56p2QvBKMhfmrqcM1gBS12GwAyPpAbyHxs7jLyy5jw==", - "path": "runtime.native.system/4.3.0", - "hashPath": "runtime.native.system.4.3.0.nupkg.sha512" - }, - "runtime.native.System.Net.Http/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-cXMbIx57z6+9g3qaJthM9Rb7ImPTk+lKqgMiuVL1l9I2KLrjJCccITWLb4hX3k0FU1lZiY/FVOjAbloPL2918w==", - "path": "runtime.native.system.net.http/4.3.0", - "hashPath": "runtime.native.system.net.http.4.3.0.nupkg.sha512" - }, - "runtime.native.System.Security.Cryptography.Apple/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-LvF+rcfPC4GFk10wlPPbkqQ2/vExtSoQCMFxFDSbqcMsg6qXUt7CDaaDrvtiOe6v+HWoZeP49pxLclcBRCPDKg==", - "path": "runtime.native.system.security.cryptography.apple/4.3.0", - "hashPath": "runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" - }, - "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-rrVECcoOWyR74djO91XRlxJ+juh/vZsliR6iARqjAFaBKlyPwLJd4aQ5M8tdBJoHLTNTj9QHJfqsSc4Wml3zSQ==", - "path": "runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-7f8At1xCDhxJuQ1LcLUAa2dK2XZ+HCoEPhIPh9u9pSDO897XA5NP7RnvXYZOEgL+U+hBNvcbefo7OVQluyTLgw==", - "path": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-qHNQLPqgKifKEOIARxjZUowkJ40aEoSH9VpjDjSFzHRnXH8T+P8zu/FoYFOamn9dqkBzOt4JPAfZaQZQJtxBNA==", - "path": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-HaIkYf5IXzbo85aTpIAe3ZDsyj+gsLYFPZQysinyeR+7NBtNB2wTGGwxkcqQSjpCAwTFtBJTaGiyo79hpB1CBA==", - "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0", - "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" - }, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-irmuaiZdNhZu/i6tDDUiZpPrOect9uK0MR4xDkjjY4zWoz4SDXskVPlsD85x1MCxJP5rCAq4wUOWIEeprl2whw==", - "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-gahlletBLrXsMaGBytw1e2whFg+fd9TR0vzR244htAOfp2UHy1XuEdpjqZuUknG8X0r6C8Akk024KYhj9ddmTQ==", - "path": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-7HajMzjMVtd0+P5HX+Chdnr505E2hKYAq/oTccnEqMRhGzcpWJN0KhPVBRmU7Qy69jdAViFRtyZqUxoBHLkgzw==", - "path": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-LyZBQqsZ/F4g5itL7TCSotirRSk5hHwrQJomIoasWQnAwCPGGw2p8n/s5Hes8HhjVcypK01k9wMmPw9N+uv+5g==", - "path": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ACfI7jQqtQYeO9vJdj+QYGWyoqrNTkFz33GVXPuQvM94/2gwiHkigyA9LZxsqNBHJQ8yPV7xiIQ8ac1SEOLqKQ==", - "path": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "System.Buffers/4.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-AwarXzzoDwX6BgrhjoJsk6tUezZEozOT5Y9QKF94Gl4JK91I4PIIBkBco9068Y9/Dra8Dkbie99kXB8+1BaYKw==", - "path": "system.buffers/4.4.0", - "hashPath": "system.buffers.4.4.0.nupkg.sha512" - }, - "System.Collections/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-1AJbSB9pKc+qhGKTawxCUTAg9lUA8onQMST9tNrIpFit1H2T9Yk1nkW3Gp/lncSQIJ5+ZBlOoL9xjQMPcEmmYw==", - "path": "system.collections/4.3.0", - "hashPath": "system.collections.4.3.0.nupkg.sha512" - }, - "System.Collections.Concurrent/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-09xY/+b7p5ioslTtGcRxjnzSa06YPihNU6qOE/hWIQkqUV7c/Qs6M/URGkIEbCCALkaaHOI/4ONkoG6jmc9HLg==", - "path": "system.collections.concurrent/4.3.0", - "hashPath": "system.collections.concurrent.4.3.0.nupkg.sha512" - }, - "System.Collections.Immutable/1.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-71hw5RUJRu5+q/geUY69gpXD8Upd12cH+F3MwpXV2zle7Bqqkrmc1JblOTuvUcgmdnUtQvBlV5e1d6RH+H2lvA==", - "path": "system.collections.immutable/1.4.0", - "hashPath": "system.collections.immutable.1.4.0.nupkg.sha512" - }, - "System.Collections.NonGeneric/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ASiGTKJqauqU1YQgHzEo4NL6DJKADvjsTZrNVkTVP9slb5BeMH5F74nIczdJu70jXScELJpQYMhXX+gNVKIlew==", - "path": "system.collections.nongeneric/4.3.0", - "hashPath": "system.collections.nongeneric.4.3.0.nupkg.sha512" - }, - "System.Collections.Specialized/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-jQOfOX7848z8dPZEQHPyYwlP5975iTTQ1VczInTpUOe75atEwaoPYDAowLd/OuwFOX2LDLNw0xpLS5enCOXdug==", - "path": "system.collections.specialized/4.3.0", - "hashPath": "system.collections.specialized.4.3.0.nupkg.sha512" - }, - "System.ComponentModel/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-LnBbfSfOA/4rgrHbGaf6ETPdOUtJLnGjoJon49ZFu4MAE7+gA2o0NiD19mK8CoJ2Ep8dlg6+nqRVZlWPoc4Y4A==", - "path": "system.componentmodel/4.3.0", - "hashPath": "system.componentmodel.4.3.0.nupkg.sha512" - }, - "System.ComponentModel.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-58rrdVPosSjHAsx5QjatUZ0oPp1MqYcRubaAjudg0Iq5FnSIXEzj6pcb3PjqlgstV7XAI/j5sQbxlzbstk4Ugw==", - "path": "system.componentmodel.primitives/4.3.0", - "hashPath": "system.componentmodel.primitives.4.3.0.nupkg.sha512" - }, - "System.Data.Common/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lm6E3T5u7BOuEH0u18JpbJHxBfOJPuCyl4Kg1RH10ktYLp5uEEE1xKrHW56/We4SnZpGAuCc9N0MJpSDhTHZGQ==", - "path": "system.data.common/4.3.0", - "hashPath": "system.data.common.4.3.0.nupkg.sha512" - }, - "System.Diagnostics.Debug/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-RPkucWK4gQRmV0XUMxXhUir6sJGy9LSDIKm7pBM2c1hBFFFCvwFhFJcLZd81NCpbcHfwXksO/kMzSXUXM2joDQ==", - "path": "system.diagnostics.debug/4.3.0", - "hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512" - }, - "System.Diagnostics.DiagnosticSource/4.4.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-U/KcC19fyLsPN1GLmeU2zQq15MMVcPwMOYPADVo1+WIoJpvMHxrzvl+BLLZwTEZSneGwaPFZ0aWr0nJ7B7LSdA==", - "path": "system.diagnostics.diagnosticsource/4.4.1", - "hashPath": "system.diagnostics.diagnosticsource.4.4.1.nupkg.sha512" - }, - "System.Diagnostics.Tracing/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-6r8Ez0r0tyGFBheTZYjkU4qpLJZnhVwAFDDF6GVkyge9jeMFVK6Uu7JXrGTeE2m09GcRNS5STJvsX1vb+Omacg==", - "path": "system.diagnostics.tracing/4.3.0", - "hashPath": "system.diagnostics.tracing.4.3.0.nupkg.sha512" - }, - "System.Dynamic.Runtime/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Kiu80W6wgVYPLJz6R8kh8GacUuPIDmvew2GaWmKsQVi6DaYKDneg9R1vmAcXDf5hKj1qPzgmFloRzFbUl9jHeg==", - "path": "system.dynamic.runtime/4.3.0", - "hashPath": "system.dynamic.runtime.4.3.0.nupkg.sha512" - }, - "System.Globalization/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-EppWk5+tMzaEzhZkUfaOKuqnC2ECFzQVadE9yBRQtVSWtGOsu9QhfovAhb1Q7FV6X6G9g/a7/8W6ORUjuKxOjQ==", - "path": "system.globalization/4.3.0", - "hashPath": "system.globalization.4.3.0.nupkg.sha512" - }, - "System.Globalization.Calendars/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-31GxAA4aEL8efY3LcrAbaL52/x5eMREK/uH+QTB62bLG9IeydmvXECS4BYHiyCnTco97YhGkO9CsHJynwPtNUA==", - "path": "system.globalization.calendars/4.3.0", - "hashPath": "system.globalization.calendars.4.3.0.nupkg.sha512" - }, - "System.Globalization.Extensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Pj6LfslnZNSSZm/8X03IlxU1zA9Zintjviv4GStB0WUxYu2puDwm7qvlwzGy7/FW6Qa9xzmF/IVN0wpvmYN9Lg==", - "path": "system.globalization.extensions/4.3.0", - "hashPath": "system.globalization.extensions.4.3.0.nupkg.sha512" - }, - "System.IO/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-/wTullO3iTZcj0tbuz1xIcmk+O0/JmkuxcqwAsTfadEEni+sQUQ36JYlSE5D2mSArRtaE1M3bzB75HgcGCJ+tQ==", - "path": "system.io/4.3.0", - "hashPath": "system.io.4.3.0.nupkg.sha512" - }, - "System.IO.FileSystem/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-bDwE6iQKXXWl0/xvCInd5ao9TCz10XprzDLprOWR+6I3stD082KpbAK5goMsEbM4gXWfT0Im5THeAsZaU8bBlQ==", - "path": "system.io.filesystem/4.3.0", - "hashPath": "system.io.filesystem.4.3.0.nupkg.sha512" - }, - "System.IO.FileSystem.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-fYutRsdDDthwR0+LP7gSrwz50TJFAbQNtQYPXfdjvvVVdJWqW+sGANq338ytNkYjR3eFN4w04hEj5hovZjZQ2Q==", - "path": "system.io.filesystem.primitives/4.3.0", - "hashPath": "system.io.filesystem.primitives.4.3.0.nupkg.sha512" - }, - "System.Linq/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-JPPJ2d6FK9Z+HcWp8oXjd6ZcLk94OIq+Jgoi5hq62lz+VOLIaE7MXSBO1YVi1w+3RJJYEMDqtIJwQ1BgpuKKsA==", - "path": "system.linq/4.3.0", - "hashPath": "system.linq.4.3.0.nupkg.sha512" - }, - "System.Linq.Expressions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-mvEeo9a4GGe/UdvjLumBajn21DRjZkpcm/HMeLAq5b0E00DKn/f7NoY4nDBdgh6E2o88YTMVtKSbcANvV6QZGg==", - "path": "system.linq.expressions/4.3.0", - "hashPath": "system.linq.expressions.4.3.0.nupkg.sha512" - }, - "System.Linq.Queryable/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-In1Bmmvl/j52yPu3xgakQSI0YIckPUr870w4K5+Lak3JCCa8hl+my65lABOuKfYs4ugmZy25ScFerC4nz8+b6g==", - "path": "system.linq.queryable/4.3.0", - "hashPath": "system.linq.queryable.4.3.0.nupkg.sha512" - }, - "System.Net.Http/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-iz1MgqiwRi9uIZGrj7TYWTM6RSiC/6qp3lBMs05Ko1pXQ3fmpZK67Iqj0Vj60YjqYLggDLIkhpo4qV7B/Ms4HQ==", - "path": "system.net.http/4.3.0", - "hashPath": "system.net.http.4.3.0.nupkg.sha512" - }, - "System.Net.Http.WinHttpHandler/4.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ZmsFZIZ4PL2UfUlfj4KCzzAGGE2SF39ENIqtvfgu0bwMEAe3J3CqZr765E2W6eQQtNK08/8DpHcsA0sAKZdEtA==", - "path": "system.net.http.winhttphandler/4.4.0", - "hashPath": "system.net.http.winhttphandler.4.4.0.nupkg.sha512" - }, - "System.Net.NetworkInformation/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-zNVmWVry0pAu7lcrRBhwwU96WUdbsrGL3azyzsbXmVNptae1+Za+UgOe9Z6s8iaWhPn7/l4wQqhC56HZWq7tkg==", - "path": "system.net.networkinformation/4.3.0", - "hashPath": "system.net.networkinformation.4.3.0.nupkg.sha512" - }, - "System.Net.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-AaMayOmbnglWGOkaNbza9FhBNtYRn4zNG8Nnu7Hit+KYA06noogYjz6asLXmF3PpfHjFsMORlyG7nKyGJPW96A==", - "path": "system.net.primitives/4.3.0", - "hashPath": "system.net.primitives.4.3.0.nupkg.sha512" - }, - "System.Net.Requests/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-OZNUuAs0kDXUzm7U5NZ1ojVta5YFZmgT2yxBqsQ7Eseq5Ahz88LInGRuNLJ/NP2F8W1q7tse1pKDthj3reF5QA==", - "path": "system.net.requests/4.3.0", - "hashPath": "system.net.requests.4.3.0.nupkg.sha512" - }, - "System.Net.Sockets/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-IBP4eAQFdjvJfw+SwegrabtbiHSkGf18N9Nt5YVgT5lKUfulv/HhO3jTVbq14ofQYmIbkBwKzeDkUKb3tRzHKg==", - "path": "system.net.sockets/4.3.0", - "hashPath": "system.net.sockets.4.3.0.nupkg.sha512" - }, - "System.Net.WebHeaderCollection/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-XZrXYG3c7QV/GpWeoaRC02rM6LH2JJetfVYskf35wdC/w2fFDFMphec4gmVH2dkll6abtW14u9Rt96pxd9YH2A==", - "path": "system.net.webheadercollection/4.3.0", - "hashPath": "system.net.webheadercollection.4.3.0.nupkg.sha512" - }, - "System.Numerics.Vectors/4.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-UiLzLW+Lw6HLed1Hcg+8jSRttrbuXv7DANVj0DkL9g6EnnzbL75EB7EWsw5uRbhxd/4YdG8li5XizGWepmG3PQ==", - "path": "system.numerics.vectors/4.4.0", - "hashPath": "system.numerics.vectors.4.4.0.nupkg.sha512" - }, - "System.ObjectModel/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-f9SGFzGsZekQyy3dfgrODqmEB8crsCJTvsUa6pnMnjRwXaQXz0OG3l20iu7SsPFC6mQLWydA5NA5BzeRYlacdw==", - "path": "system.objectmodel/4.3.0", - "hashPath": "system.objectmodel.4.3.0.nupkg.sha512" - }, - "System.Private.ServiceModel/4.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lED0s9Lfo2TdniGlFY2rdK1wygFJ7dPRaTHR2Z409nGWfFG1YMuAlrfMhSeYFJ5pbffAlOBxb8hvoYxP3LJ6mg==", - "path": "system.private.servicemodel/4.4.0", - "hashPath": "system.private.servicemodel.4.4.0.nupkg.sha512" - }, - "System.Reflection/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-3uYB1Y9PY+4B/XtCMGiLfnNP9SJU5vovOLiEGabFqBOtBML8PurmWr0OzPKebsrGviYB1acTKrhE1NAIb+P3mQ==", - "path": "system.reflection/4.3.0", - "hashPath": "system.reflection.4.3.0.nupkg.sha512" - }, - "System.Reflection.DispatchProxy/4.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-xK6JE0mpsBD+T0qu3V6dmVRa06PxAvIIM/zSjouqP7Sk6X+FQj+9XFRz9GmZk9aJGMU1LX6AgTZIlsYZ64QKsw==", - "path": "system.reflection.dispatchproxy/4.4.0", - "hashPath": "system.reflection.dispatchproxy.4.4.0.nupkg.sha512" - }, - "System.Reflection.Emit/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-GHctkl5J3qRgAvXxc+cQXbYfrw0S7kZswbTbbFgSjvGU/KhTRmH+ZpMNToI8NA/nLCMl0EAgbWpIfp74EnYOJw==", - "path": "system.reflection.emit/4.3.0", - "hashPath": "system.reflection.emit.4.3.0.nupkg.sha512" - }, - "System.Reflection.Emit.ILGeneration/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lqTxoVZbRVP84GyXyxOUeB2PdOzrTLAMluaxIkp94WURhQMAKQKlQd5YATL+UnTDtxDzd9HZDKjF7xl2jjQEnA==", - "path": "system.reflection.emit.ilgeneration/4.3.0", - "hashPath": "system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512" - }, - "System.Reflection.Emit.Lightweight/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-LvX8HS0d2l8lNam0RpJgH3gQM6nSSP3crcE6XlMYCBvhTv41HkZbroA3YsCyC21Eu3hsZu1jJRTxmgsD7dww2g==", - "path": "system.reflection.emit.lightweight/4.3.0", - "hashPath": "system.reflection.emit.lightweight.4.3.0.nupkg.sha512" - }, - "System.Reflection.Extensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-I2lC6UhAtrIm6D52Mn9dNys56s9Mus94e03FMU/RRqJvLyQ4AyRIPa+5oU73wyQ+pKMFUJU5PeS7nURr6DHG2A==", - "path": "system.reflection.extensions/4.3.0", - "hashPath": "system.reflection.extensions.4.3.0.nupkg.sha512" - }, - "System.Reflection.Metadata/1.5.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-423hF/x1/1/aBT6hjgrp8RH2zdKOd1iTujlHisSesTW/cgv1ixUitfk23ZknVzItMm6jnwp9CBwI2P3r9jpitw==", - "path": "system.reflection.metadata/1.5.0", - "hashPath": "system.reflection.metadata.1.5.0.nupkg.sha512" - }, - "System.Reflection.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-IWUmJcoqCpvsIn0Txobe+5idI096N+08jM3pnbVW1QWBDWQcSZqfQ7nNpMv/eKexrdlODAup0nd9dMRzbfPgSA==", - "path": "system.reflection.primitives/4.3.0", - "hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512" - }, - "System.Reflection.TypeExtensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-bddVPkbwJzLo0+FzvsoEunOBODGVEJ5JRFU1Xjo4MxhCUrpO7JJ5CJCFx7RXIrBtsAUH5Jh94v3pWEM/MLziJw==", - "path": "system.reflection.typeextensions/4.3.0", - "hashPath": "system.reflection.typeextensions.4.3.0.nupkg.sha512" - }, - "System.Resources.ResourceManager/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-H6KDV29RfZ623UnvI4goq8doHylg0GjNiHfSLuzLibGHmcdXiw1XgCq/gd/LwPvnVgJUcJ9tNKcDnYiDaWm7hA==", - "path": "system.resources.resourcemanager/4.3.0", - "hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512" - }, - "System.Runtime/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-iD01AV/eij/6iIa2UZHXayeOQoyjjP48pSIpP2bgxDVwTftELekKHJmsCTE7kD0BobeK6O2+RzQownNc9Yro9w==", - "path": "system.runtime/4.3.0", - "hashPath": "system.runtime.4.3.0.nupkg.sha512" - }, - "System.Runtime.CompilerServices.Unsafe/4.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-9dLLuBxr5GNmOfl2jSMcsHuteEg32BEfUotmmUkmZjpR3RpVHE8YQwt0ow3p6prwA1ME8WqDVZqrr8z6H8G+Kw==", - "path": "system.runtime.compilerservices.unsafe/4.4.0", - "hashPath": "system.runtime.compilerservices.unsafe.4.4.0.nupkg.sha512" - }, - "System.Runtime.Extensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-PZGJVsgBNSBnKUF4N9e36W+3ZO7tJ5OtUoZP7mqfKUFwplBShDaGEgehH6j6cuOmtbaZw+N/97cl+GgDSwt0YQ==", - "path": "system.runtime.extensions/4.3.0", - "hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512" - }, - "System.Runtime.Handles/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-4Psk9sl0VLSE9uPBSeZBJKlf8qQET8+cf8Y0DDyoCUiQ5jp93knJQWfuAJaRxb2Ryar8crjSlMzsUz/jp9aQ1w==", - "path": "system.runtime.handles/4.3.0", - "hashPath": "system.runtime.handles.4.3.0.nupkg.sha512" - }, - "System.Runtime.InteropServices/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-AFYM6PJsqZVtVWE6jlERrG65+LHOoaYGW6D/TFKvMIwZ4tXgs8qLtGY1jQXrgLABvJMKxfR8Y+WpKR2C9R4h3Q==", - "path": "system.runtime.interopservices/4.3.0", - "hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512" - }, - "System.Runtime.Numerics/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-wpA0s4R+cb/6dd6AxzwkQ8A9K9kc/A41DQdpbyNTrV2syqOJk/0LUInhOEgFaarcejrApCpTfvHP4QhaeUC2Uw==", - "path": "system.runtime.numerics/4.3.0", - "hashPath": "system.runtime.numerics.4.3.0.nupkg.sha512" - }, - "System.Runtime.Serialization.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-skc/xdfE6A4vKZL/992b0Jd+4iAye3CTmMitItDzOk6r8hpo+8bDLqMX9brgSg0NZyNE9UI/P8nHRWQUjvKYdQ==", - "path": "system.runtime.serialization.primitives/4.3.0", - "hashPath": "system.runtime.serialization.primitives.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.Algorithms/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-YQ5ql2EzgxUp6vI+jHxo9lmcH0Iy1RsmxtggtbJ1jy8rt+W3uc7t1iFQri0zNM3BJyCw3P31TF8jxWpxcc1aPQ==", - "path": "system.security.cryptography.algorithms/4.3.0", - "hashPath": "system.security.cryptography.algorithms.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.Cng/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-gmloRV7S66IH/jYbvnaUhaDwMSug1hWjuswsZuZPjmj94SMH/DRHQHU+4zSIQXEhCwRh9zMIQahY6nRfqXHrmA==", - "path": "system.security.cryptography.cng/4.3.0", - "hashPath": "system.security.cryptography.cng.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.Csp/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-5AZCwoueBVlYoL8pd3+8PVUa7CgXJhv4axJ2EJjSD899ddlkO1f5457nb8jOdhSxrf0VRDmRAABg5ulRO8COkA==", - "path": "system.security.cryptography.csp/4.3.0", - "hashPath": "system.security.cryptography.csp.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.Encoding/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-VUhXu1S0kQqHgjBIHmWE1jfgaSRGqH3rL/pmlQrrKzCg9iQanwNIvE5DQmjx0JXT+eUc+/Y0ARu9XxQKS1/rAQ==", - "path": "system.security.cryptography.encoding/4.3.0", - "hashPath": "system.security.cryptography.encoding.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Z21GQupB9XiBkVlupWOlGOCAYDJ1nlkrSrnezrY7bzebwvmtu0GyYen09e+GxfH+VJVMPYzchtUL8tywkkaYCw==", - "path": "system.security.cryptography.openssl/4.3.0", - "hashPath": "system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-MWGvviIh8HKFpphRZxg7chpN1FkeMBP2O+2+yMDc9/kgs72G7hSjOUlBqg4O/cvNahBRJZ0JtulS5jlpR/OREQ==", - "path": "system.security.cryptography.primitives/4.3.0", - "hashPath": "system.security.cryptography.primitives.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.X509Certificates/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-anCRBHYjC2PtfOm8tbs1x5KZ+2/JXuOj3oWNHt0U50YhLQxZv0hFB4NRNFTJt2i7wyJD/Ow2oJ/ti0nHJa6a6w==", - "path": "system.security.cryptography.x509certificates/4.3.0", - "hashPath": "system.security.cryptography.x509certificates.4.3.0.nupkg.sha512" - }, - "System.Security.Principal.Windows/4.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-pP+AOzt1o3jESOuLmf52YQTF7H3Ng9hTnrOESQiqsnl2IbBh1HInsAMHYtoh75iUYV0OIkHmjvveraYB6zM97w==", - "path": "system.security.principal.windows/4.4.0", - "hashPath": "system.security.principal.windows.4.4.0.nupkg.sha512" - }, - "System.ServiceModel.Primitives/4.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-6rATyMUeeOPVY7XzoneoyzGKVCc62gGl/A6SKrlY0dX0bnMprIrXZF1AXy9Y8ne49JU/2RGGeldFbATYONc/XQ==", - "path": "system.servicemodel.primitives/4.4.0", - "hashPath": "system.servicemodel.primitives.4.4.0.nupkg.sha512" - }, - "System.Text.Encoding/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-58DKIOFSEnQqFEogJ0lqgGFf1Gr9Zzc9/KmYvOR9uW9lf35DHzGNkki+HpPNsdEIHCjKmnQRJF9sBrovQhYhKw==", - "path": "system.text.encoding/4.3.0", - "hashPath": "system.text.encoding.4.3.0.nupkg.sha512" - }, - "System.Text.Encoding.Extensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-wSIplxLLihOx5TGFa8Nn98eWAmkZbBdslSviLvwfUiqiUEUEuqrsbrV2hE9haNf1BZbbvM4ClrcJ58KUQk96pw==", - "path": "system.text.encoding.extensions/4.3.0", - "hashPath": "system.text.encoding.extensions.4.3.0.nupkg.sha512" - }, - "System.Text.Encodings.Web/4.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-l/tYeikqMHX2MD2jzrHDfR9ejrpTTF7wvAEbR51AMvzip1wSJgiURbDik4iv/w7ZgytmTD/hlwpplEhF9bmFNw==", - "path": "system.text.encodings.web/4.4.0", - "hashPath": "system.text.encodings.web.4.4.0.nupkg.sha512" - }, - "System.Text.RegularExpressions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-M03moZwpMD9vtWFARtrB0QdKPsSxFqJ8oDrAi6s1jY7R4+2fQcu6chC/ULn6/da9MM93fNOMPGURQAay8N8H5Q==", - "path": "system.text.regularexpressions/4.3.0", - "hashPath": "system.text.regularexpressions.4.3.0.nupkg.sha512" - }, - "System.Threading/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-BYKL/G9muhpJ2TbkTPeaEUKrZ75oKDtoc7u0itkYqASIvRZijCRLYAPfOPOADxDlqsSAMRRCOP5rebN5Zl7p2g==", - "path": "system.threading/4.3.0", - "hashPath": "system.threading.4.3.0.nupkg.sha512" - }, - "System.Threading.Overlapped/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-LRcp7Ir4HQ3I7uIhUb8ypaMDw23W1t3GMCA2+yUxTL3HG9ZrVJtLufoK/mF9zfCG2bxuRBf1Bj8FC9mOPddhIg==", - "path": "system.threading.overlapped/4.3.0", - "hashPath": "system.threading.overlapped.4.3.0.nupkg.sha512" - }, - "System.Threading.Tasks/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-eYZRKpn/EpgiXlh8QGXI3qnAWmIdbmjZhqyKIuURD4awwTMBJL56b5ykdWRus9TLKRbvAPAdWiPxFc/VBJ+d9A==", - "path": "system.threading.tasks/4.3.0", - "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512" - }, - "System.Threading.Tasks.Extensions/4.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-SPKfFGbpQsK5Srz2Kq3URgvC90yoOyBE8H1quDA2+MAJ2HAzFmV3biOgPv2Ck3mPAvdKngo3QHi2BNwUQDRVvA==", - "path": "system.threading.tasks.extensions/4.4.0", - "hashPath": "system.threading.tasks.extensions.4.4.0.nupkg.sha512" - }, - "System.Threading.Thread/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-fBrzOXZbwvFK+QQkW5WB64bgMQ34cVohOxjQo6xVhPqHqCWydYfDdSbNL7yqb1C3ajXtWfGKD9cBQDae0KibRA==", - "path": "system.threading.thread/4.3.0", - "hashPath": "system.threading.thread.4.3.0.nupkg.sha512" - }, - "System.Threading.ThreadPool/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-0fzgv/sOiS1UKAg6bwGIg/ufEwRp9a1rTstlmS7hPrwg0ohWI9jAiEvmB4atdYtRrdH27ilVkbfAmgBlEwuEOg==", - "path": "system.threading.threadpool/4.3.0", - "hashPath": "system.threading.threadpool.4.3.0.nupkg.sha512" - }, - "System.Xml.ReaderWriter/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-4ghUccqnWLWIYzuYX84Vx6T7/1MSvdAmmqlyMK1DoRyvO2wYq1v5QMsAKjdY1h4iH5nkOh6a50cio/qY9VgRSw==", - "path": "system.xml.readerwriter/4.3.0", - "hashPath": "system.xml.readerwriter.4.3.0.nupkg.sha512" - }, - "System.Xml.XmlDocument/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ljbrPCAXEu5ijirKRxzH9eA3+/IhCpyv321JSepyUdM0fCPGo/910BXt/KwMVruLKN8dkIOUdYm2LlqBuIRn1Q==", - "path": "system.xml.xmldocument/4.3.0", - "hashPath": "system.xml.xmldocument.4.3.0.nupkg.sha512" - }, - "System.Xml.XmlSerializer/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-pXIz8nVP9y1uc3WCyTdl5LDesu2M6BDlMF7+JZS72oqKSZHXd2Q9PwepKFsFryWDMQEAjkjmyDEFu4FISdYfCw==", - "path": "system.xml.xmlserializer/4.3.0", - "hashPath": "system.xml.xmlserializer.4.3.0.nupkg.sha512" - }, - "ServiceStack/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "ServiceStack.Client/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "ServiceStack.Common/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "ServiceStack.Interfaces/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "ServiceStack.Text/5.0.0.0": { - "type": "reference", - "serviceable": false, - "sha512": "" - } - } -} \ No newline at end of file diff --git a/lib/netstandard2.0/ServiceStack.Kestrel.dll b/lib/netstandard2.0/ServiceStack.Kestrel.dll deleted file mode 100644 index b850c8c..0000000 Binary files a/lib/netstandard2.0/ServiceStack.Kestrel.dll and /dev/null differ diff --git a/lib/netstandard2.0/ServiceStack.Kestrel.xml b/lib/netstandard2.0/ServiceStack.Kestrel.xml deleted file mode 100644 index b22607d..0000000 --- a/lib/netstandard2.0/ServiceStack.Kestrel.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - ServiceStack.Kestrel - - - - - Override to Configure .NET Core dependencies - - - - - Override to Confgiure .NET Core App - - - - diff --git a/lib/netstandard2.0/ServiceStack.Server.deps.json b/lib/netstandard2.0/ServiceStack.Server.deps.json deleted file mode 100644 index db4c8ef..0000000 --- a/lib/netstandard2.0/ServiceStack.Server.deps.json +++ /dev/null @@ -1,1907 +0,0 @@ -{ - "runtimeTarget": { - "name": ".NETStandard,Version=v2.0/", - "signature": "1890b72ef10d50715d03ed60d2e5d48d23ea1e1b" - }, - "compilationOptions": {}, - "targets": { - ".NETStandard,Version=v2.0": {}, - ".NETStandard,Version=v2.0/": { - "ServiceStack.Server/1.0.0": { - "dependencies": { - "NETStandard.Library": "2.0.1", - "ServiceStack": "1.0.0", - "ServiceStack.Client": "1.0.0", - "ServiceStack.Common": "1.0.0", - "ServiceStack.Interfaces": "1.0.0", - "ServiceStack.OrmLite": "5.0.0.0", - "ServiceStack.Redis": "5.0.0.0", - "ServiceStack.Text": "5.0.0.0" - }, - "runtime": { - "ServiceStack.Server.dll": {} - } - }, - "Microsoft.AspNetCore.Cryptography.Internal/2.0.0": { - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Cryptography.Internal.dll": {} - } - }, - "Microsoft.AspNetCore.Cryptography.KeyDerivation/2.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Cryptography.Internal": "2.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Cryptography.KeyDerivation.dll": {} - } - }, - "Microsoft.AspNetCore.Hosting.Abstractions/2.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Hosting.Server.Abstractions": "2.0.0", - "Microsoft.AspNetCore.Http.Abstractions": "2.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "2.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "2.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "2.0.0", - "Microsoft.Extensions.Hosting.Abstractions": "2.0.0", - "Microsoft.Extensions.Logging.Abstractions": "2.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Hosting.Abstractions.dll": {} - } - }, - "Microsoft.AspNetCore.Hosting.Server.Abstractions/2.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Features": "2.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "2.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Hosting.Server.Abstractions.dll": {} - } - }, - "Microsoft.AspNetCore.Http/2.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Abstractions": "2.0.0", - "Microsoft.AspNetCore.WebUtilities": "2.0.0", - "Microsoft.Extensions.ObjectPool": "2.0.0", - "Microsoft.Extensions.Options": "2.0.0", - "Microsoft.Net.Http.Headers": "2.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Http.dll": {} - } - }, - "Microsoft.AspNetCore.Http.Abstractions/2.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Features": "2.0.0", - "System.Text.Encodings.Web": "4.4.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Abstractions.dll": {} - } - }, - "Microsoft.AspNetCore.Http.Extensions/2.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Abstractions": "2.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "2.0.0", - "Microsoft.Net.Http.Headers": "2.0.0", - "System.Buffers": "4.4.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Extensions.dll": {} - } - }, - "Microsoft.AspNetCore.Http.Features/2.0.0": { - "dependencies": { - "Microsoft.Extensions.Primitives": "2.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Features.dll": {} - } - }, - "Microsoft.AspNetCore.WebUtilities/2.0.0": { - "dependencies": { - "Microsoft.Net.Http.Headers": "2.0.0", - "System.Text.Encodings.Web": "4.4.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.WebUtilities.dll": {} - } - }, - "Microsoft.Extensions.Configuration/2.0.0": { - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "2.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Configuration.dll": {} - } - }, - "Microsoft.Extensions.Configuration.Abstractions/2.0.0": { - "dependencies": { - "Microsoft.Extensions.Primitives": "2.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll": {} - } - }, - "Microsoft.Extensions.Configuration.Binder/2.0.0": { - "dependencies": { - "Microsoft.Extensions.Configuration": "2.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Configuration.Binder.dll": {} - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/2.0.0": { - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {} - } - }, - "Microsoft.Extensions.FileProviders.Abstractions/2.0.0": { - "dependencies": { - "Microsoft.Extensions.Primitives": "2.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Abstractions.dll": {} - } - }, - "Microsoft.Extensions.Hosting.Abstractions/2.0.0": { - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Hosting.Abstractions.dll": {} - } - }, - "Microsoft.Extensions.Logging.Abstractions/2.0.0": { - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll": {} - } - }, - "Microsoft.Extensions.ObjectPool/2.0.0": { - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.ObjectPool.dll": {} - } - }, - "Microsoft.Extensions.Options/2.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "2.0.0", - "Microsoft.Extensions.Primitives": "2.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Options.dll": {} - } - }, - "Microsoft.Extensions.Primitives/2.0.0": { - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "4.4.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll": {} - } - }, - "Microsoft.Net.Http.Headers/2.0.0": { - "dependencies": { - "Microsoft.Extensions.Primitives": "2.0.0", - "System.Buffers": "4.4.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Net.Http.Headers.dll": {} - } - }, - "Microsoft.NETCore.Platforms/2.0.0": {}, - "Microsoft.NETCore.Targets/1.1.0": {}, - "Microsoft.Win32.Primitives/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "NETStandard.Library/2.0.1": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0" - } - }, - "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.native.System/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.native.System.Net.Http/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.native.System.Security.Cryptography.Apple/4.3.0": { - "dependencies": { - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" - } - }, - "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "dependencies": { - "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {}, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "System.Buffers/4.4.0": { - "runtime": { - "lib/netstandard2.0/System.Buffers.dll": {} - } - }, - "System.Collections/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Collections.Concurrent/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.Reflection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Collections.Concurrent.dll": {} - } - }, - "System.Collections.NonGeneric/4.3.0": { - "dependencies": { - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Collections.NonGeneric.dll": {} - } - }, - "System.Collections.Specialized/4.3.0": { - "dependencies": { - "System.Collections.NonGeneric": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Extensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Collections.Specialized.dll": {} - } - }, - "System.ComponentModel/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.ComponentModel.dll": {} - } - }, - "System.ComponentModel.Primitives/4.3.0": { - "dependencies": { - "System.ComponentModel": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.0/System.ComponentModel.Primitives.dll": {} - } - }, - "System.Data.Common/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Text.RegularExpressions": "4.3.0", - "System.Threading.Tasks": "4.3.0" - }, - "runtime": { - "lib/netstandard1.2/System.Data.Common.dll": {} - } - }, - "System.Diagnostics.Debug/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Diagnostics.DiagnosticSource/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Diagnostics.DiagnosticSource.dll": {} - } - }, - "System.Diagnostics.Tracing/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Dynamic.Runtime/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Linq": "4.3.0", - "System.Linq.Expressions": "4.3.0", - "System.ObjectModel": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Emit": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Reflection.TypeExtensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Dynamic.Runtime.dll": {} - } - }, - "System.Globalization/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Globalization.Calendars/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Globalization": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Globalization.Extensions/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.InteropServices": "4.3.0" - } - }, - "System.IO/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.IO.FileSystem/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.IO.FileSystem.Primitives/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.IO.FileSystem.Primitives.dll": {} - } - }, - "System.Linq/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0" - }, - "runtime": { - "lib/netstandard1.6/System.Linq.dll": {} - } - }, - "System.Linq.Expressions/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Linq": "4.3.0", - "System.ObjectModel": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Emit": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Emit.Lightweight": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Reflection.TypeExtensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - }, - "runtime": { - "lib/netstandard1.6/System.Linq.Expressions.dll": {} - } - }, - "System.Linq.Queryable/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Linq": "4.3.0", - "System.Linq.Expressions": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Linq.Queryable.dll": {} - } - }, - "System.Net.Http/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.DiagnosticSource": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Extensions": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.OpenSsl": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Security.Cryptography.X509Certificates": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "runtime.native.System": "4.3.0", - "runtime.native.System.Net.Http": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Net.Http.WinHttpHandler/4.4.0": { - "dependencies": { - "System.Buffers": "4.4.0" - }, - "runtime": { - "lib/netstandard2.0/System.Net.Http.WinHttpHandler.dll": {} - } - }, - "System.Net.NetworkInformation/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.Win32.Primitives": "4.3.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Linq": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Net.Sockets": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Principal.Windows": "4.4.0", - "System.Threading": "4.3.0", - "System.Threading.Overlapped": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "System.Threading.Thread": "4.3.0", - "System.Threading.ThreadPool": "4.3.0", - "runtime.native.System": "4.3.0" - } - }, - "System.Net.Primitives/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0" - } - }, - "System.Net.Requests/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Net.Http": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Net.WebHeaderCollection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Net.Sockets/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Net.WebHeaderCollection/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Net.WebHeaderCollection.dll": {} - } - }, - "System.ObjectModel/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.ObjectModel.dll": {} - } - }, - "System.Private.ServiceModel/4.4.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "System.Net.Http.WinHttpHandler": "4.4.0", - "System.Reflection.DispatchProxy": "4.4.0", - "System.Security.Principal.Windows": "4.4.0" - } - }, - "System.Reflection/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.DispatchProxy/4.4.0": { - "runtime": { - "lib/netstandard2.0/System.Reflection.DispatchProxy.dll": {} - } - }, - "System.Reflection.Emit/4.3.0": { - "dependencies": { - "System.IO": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Reflection.Emit.dll": {} - } - }, - "System.Reflection.Emit.ILGeneration/4.3.0": { - "dependencies": { - "System.Reflection": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Reflection.Emit.ILGeneration.dll": {} - } - }, - "System.Reflection.Emit.Lightweight/4.3.0": { - "dependencies": { - "System.Reflection": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Reflection.Emit.Lightweight.dll": {} - } - }, - "System.Reflection.Extensions/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.Primitives/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.TypeExtensions/4.3.0": { - "dependencies": { - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.5/System.Reflection.TypeExtensions.dll": {} - } - }, - "System.Resources.ResourceManager/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Globalization": "4.3.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "System.Runtime.CompilerServices.Unsafe/4.4.0": { - "runtime": { - "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll": {} - } - }, - "System.Runtime.Extensions/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime.Handles/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime.InteropServices/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Reflection": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0" - } - }, - "System.Runtime.Numerics/4.3.0": { - "dependencies": { - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Runtime.Numerics.dll": {} - } - }, - "System.Runtime.Serialization.Primitives/4.3.0": { - "dependencies": { - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Runtime.Serialization.Primitives.dll": {} - } - }, - "System.Security.Cryptography.Algorithms/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "System.Collections": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.Apple": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Security.Cryptography.Cng/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0" - } - }, - "System.Security.Cryptography.Csp/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "System.IO": "4.3.0", - "System.Reflection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.Security.Cryptography.Encoding/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "System.Collections": "4.3.0", - "System.Collections.Concurrent": "4.3.0", - "System.Linq": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Security.Cryptography.OpenSsl/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - }, - "runtime": { - "lib/netstandard1.6/System.Security.Cryptography.OpenSsl.dll": {} - } - }, - "System.Security.Cryptography.Primitives/4.3.0": { - "dependencies": { - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Security.Cryptography.Primitives.dll": {} - } - }, - "System.Security.Cryptography.X509Certificates/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Calendars": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Cng": "4.3.0", - "System.Security.Cryptography.Csp": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.OpenSsl": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "runtime.native.System": "4.3.0", - "runtime.native.System.Net.Http": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Security.Principal.Windows/4.4.0": { - "runtime": { - "lib/netstandard2.0/System.Security.Principal.Windows.dll": {} - } - }, - "System.ServiceModel.Primitives/4.4.0": { - "dependencies": { - "System.Private.ServiceModel": "4.4.0" - }, - "runtime": { - "lib/netstandard2.0/System.ServiceModel.Primitives.dll": {} - } - }, - "System.Text.Encoding/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Text.Encoding.Extensions/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Text.Encoding": "4.3.0" - } - }, - "System.Text.Encodings.Web/4.4.0": { - "runtime": { - "lib/netstandard2.0/System.Text.Encodings.Web.dll": {} - } - }, - "System.Text.RegularExpressions/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - }, - "runtime": { - "lib/netstandard1.6/System.Text.RegularExpressions.dll": {} - } - }, - "System.Threading/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.0", - "System.Threading.Tasks": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Threading.dll": {} - } - }, - "System.Threading.Overlapped/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0" - } - }, - "System.Threading.Tasks/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "2.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Threading.Tasks.Extensions/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading.Tasks": "4.3.0" - }, - "runtime": { - "lib/netstandard1.0/System.Threading.Tasks.Extensions.dll": {} - } - }, - "System.Threading.Thread/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Threading.Thread.dll": {} - } - }, - "System.Threading.ThreadPool/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Threading.ThreadPool.dll": {} - } - }, - "System.Xml.ReaderWriter/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Text.Encoding.Extensions": "4.3.0", - "System.Text.RegularExpressions": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "System.Threading.Tasks.Extensions": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Xml.ReaderWriter.dll": {} - } - }, - "System.Xml.XmlDocument/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "System.Xml.ReaderWriter": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Xml.XmlDocument.dll": {} - } - }, - "System.Xml.XmlSerializer/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Linq": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Emit": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Reflection.TypeExtensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Text.RegularExpressions": "4.3.0", - "System.Threading": "4.3.0", - "System.Xml.ReaderWriter": "4.3.0", - "System.Xml.XmlDocument": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Xml.XmlSerializer.dll": {} - } - }, - "ServiceStack/1.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Cryptography.KeyDerivation": "2.0.0", - "Microsoft.AspNetCore.Hosting.Abstractions": "2.0.0", - "Microsoft.AspNetCore.Http": "2.0.0", - "Microsoft.AspNetCore.Http.Abstractions": "2.0.0", - "Microsoft.AspNetCore.Http.Extensions": "2.0.0", - "Microsoft.Extensions.Configuration.Binder": "2.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "2.0.0", - "Microsoft.Extensions.Logging.Abstractions": "2.0.0", - "Microsoft.Extensions.Primitives": "2.0.0", - "ServiceStack.Client": "1.0.0", - "ServiceStack.Common": "1.0.0", - "ServiceStack.Interfaces": "1.0.0", - "System.Linq.Queryable": "4.3.0", - "System.Reflection.Emit": "4.3.0", - "System.Threading.Thread": "4.3.0" - }, - "runtime": { - "ServiceStack.dll": {} - } - }, - "ServiceStack.Client/1.0.0": { - "dependencies": { - "Microsoft.Extensions.Primitives": "2.0.0", - "ServiceStack.Interfaces": "1.0.0", - "System.Collections.Specialized": "4.3.0", - "System.Net.Requests": "4.3.0", - "System.ServiceModel.Primitives": "4.4.0", - "System.Xml.XmlSerializer": "4.3.0" - }, - "runtime": { - "ServiceStack.Client.dll": {} - } - }, - "ServiceStack.Common/1.0.0": { - "dependencies": { - "Microsoft.Extensions.Primitives": "2.0.0", - "ServiceStack.Interfaces": "1.0.0", - "System.ComponentModel.Primitives": "4.3.0", - "System.Data.Common": "4.3.0", - "System.Dynamic.Runtime": "4.3.0", - "System.Net.NetworkInformation": "4.3.0", - "System.Net.Requests": "4.3.0", - "System.Reflection.TypeExtensions": "4.3.0", - "System.Runtime.Serialization.Primitives": "4.3.0" - }, - "runtime": { - "ServiceStack.Common.dll": {} - } - }, - "ServiceStack.Interfaces/1.0.0": { - "dependencies": { - "System.Runtime.Serialization.Primitives": "4.3.0" - }, - "runtime": { - "ServiceStack.Interfaces.dll": {} - } - }, - "ServiceStack.OrmLite/5.0.0.0": { - "runtime": { - "ServiceStack.OrmLite.dll": {} - } - }, - "ServiceStack.Redis/5.0.0.0": { - "runtime": { - "ServiceStack.Redis.dll": {} - } - }, - "ServiceStack.Text/5.0.0.0": { - "runtime": { - "ServiceStack.Text.dll": {} - } - } - } - }, - "libraries": { - "ServiceStack.Server/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "Microsoft.AspNetCore.Cryptography.Internal/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-SY6GQyZZ5o09rqFmy3nhyJzx3lkFDBl0wO2Kb7EoLCPyH6dC7KB+QXysHfa9P5jHPiYB9VEkcQ9H7kQKcXQ1sw==", - "path": "microsoft.aspnetcore.cryptography.internal/2.0.0", - "hashPath": "microsoft.aspnetcore.cryptography.internal.2.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Cryptography.KeyDerivation/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-kXszvwovn6Xot8JvRVf5KL9HXHzVVirs9diPkzMDNoPWMvubXRisw1d3T2ETFCgx2MOOhfUu5+LXlybC1ITkOQ==", - "path": "microsoft.aspnetcore.cryptography.keyderivation/2.0.0", - "hashPath": "microsoft.aspnetcore.cryptography.keyderivation.2.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Hosting.Abstractions/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-IR2zlm3d/CmYbkw+cMM7M6mUAi+xsFUPfWqGYqzZVC5o6jX3xD2Z4Uf44UBaWKMBf5Z7q9dodIdXxwFPF2Hxhg==", - "path": "microsoft.aspnetcore.hosting.abstractions/2.0.0", - "hashPath": "microsoft.aspnetcore.hosting.abstractions.2.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Hosting.Server.Abstractions/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-v2H65ix/O11HKoxhKQpljtozsD5/1tqeXr3TYnrLgfAPIsp6kTFxIcTSENoxtew7h9X14ENqUf2lBCkyCNRUuQ==", - "path": "microsoft.aspnetcore.hosting.server.abstractions/2.0.0", - "hashPath": "microsoft.aspnetcore.hosting.server.abstractions.2.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-2YNhcHrGxo2YufA8TYGyaEMIJwikyisZqEzHCRpIuI0D6ZXkA47U/3NJg2r/x5/gGHNM3TXO7DsqH88qRda+yg==", - "path": "microsoft.aspnetcore.http/2.0.0", - "hashPath": "microsoft.aspnetcore.http.2.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http.Abstractions/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-pblZLY7IfNqhQ5wwGQ0vNq2mG6W5YgZI1fk7suEuwZsGxGEADNBAyNlTALM9L8nMXdvbp6aHP/t4wHrFpcL3Sw==", - "path": "microsoft.aspnetcore.http.abstractions/2.0.0", - "hashPath": "microsoft.aspnetcore.http.abstractions.2.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http.Extensions/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lA7Bwvur19MhXrlW0w+WBXONJMSFYY5kNazflz4MNwMZMtzwHxNA6fC5sQsssYd/XvA0gMyKwp52s68uuKLR1w==", - "path": "microsoft.aspnetcore.http.extensions/2.0.0", - "hashPath": "microsoft.aspnetcore.http.extensions.2.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http.Features/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-yk62muzFTZTKCQuo3nmVPkPvGBlM2qbdSxbX62TufuONuKQrTGQ/SwhwBbYutk5/YY7u4HETu0n9BKOn7mMgmA==", - "path": "microsoft.aspnetcore.http.features/2.0.0", - "hashPath": "microsoft.aspnetcore.http.features.2.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.WebUtilities/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-RqDEwy7jdHJ0NunWydSzJrpODnsF7NPdB0KaRdG60H1bMEt4DbjcWkUb+XxjZ15uWCMi7clTQClpPuIFLwD1yQ==", - "path": "microsoft.aspnetcore.webutilities/2.0.0", - "hashPath": "microsoft.aspnetcore.webutilities.2.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Configuration/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-SsI4RqI8EH00+cYO96tbftlh87sNUv1eeyuBU1XZdQkG0RrHAOjWgl7P0FoLeTSMXJpOnfweeOWj2d1/5H3FxA==", - "path": "microsoft.extensions.configuration/2.0.0", - "hashPath": "microsoft.extensions.configuration.2.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Configuration.Abstractions/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-rHFrXqMIvQNq51H8RYTO4IWmDOYh8NUzyqGlh0xHWTP6XYnKk7Ryinys2uDs+Vu88b3AMlM3gBBSs78m6OQpYQ==", - "path": "microsoft.extensions.configuration.abstractions/2.0.0", - "hashPath": "microsoft.extensions.configuration.abstractions.2.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Configuration.Binder/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-IznHHzGUtrdpuQqIUdmzF6TYPcsYHONhHh3o9dGp39sX/9Zfmt476UnhvU0UhXgJnXXAikt/MpN6AuSLCCMdEQ==", - "path": "microsoft.extensions.configuration.binder/2.0.0", - "hashPath": "microsoft.extensions.configuration.binder.2.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-eUdJ0Q/GfVyUJc0Jal5L1QZLceL78pvEM9wEKcHeI24KorqMDoVX+gWsMGLulQMfOwsUaPtkpQM2pFERTzSfSg==", - "path": "microsoft.extensions.dependencyinjection.abstractions/2.0.0", - "hashPath": "microsoft.extensions.dependencyinjection.abstractions.2.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.FileProviders.Abstractions/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Z0AK+hmLO33WAXQ5P1uPzhH7z5yjDHX/XnUefXxE//SyvCb9x4cVjND24dT5566t/yzGp8/WLD7EG9KQKZZklQ==", - "path": "microsoft.extensions.fileproviders.abstractions/2.0.0", - "hashPath": "microsoft.extensions.fileproviders.abstractions.2.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Hosting.Abstractions/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-qPG6Ip/AdHxMJ7j3z8FkkpCbV8yjtiFpf/aOpN3TwfJWbtYpN+BKV8Q+pqPMgk7XZivcju9yARaEVCS++hWopA==", - "path": "microsoft.extensions.hosting.abstractions/2.0.0", - "hashPath": "microsoft.extensions.hosting.abstractions.2.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Logging.Abstractions/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-6ZCllUYGFukkymSTx3Yr0G/ajRxoNJp7/FqSxSB4fGISST54ifBhgu4Nc0ItGi3i6DqwuNd8SUyObmiC++AO2Q==", - "path": "microsoft.extensions.logging.abstractions/2.0.0", - "hashPath": "microsoft.extensions.logging.abstractions.2.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.ObjectPool/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-drOmgNZCJiNEqFM/TvyqwtogS8wqoWGQCW5KB/CVGKL6VXHw8OOMdaHyspp8HPstP9UDnrnuq+8eaCaAcQg6tA==", - "path": "microsoft.extensions.objectpool/2.0.0", - "hashPath": "microsoft.extensions.objectpool.2.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Options/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-sAKBgjl2gWsECBLLR9K54T7/uZaP2n9GhMYHay/oOLfvpvX0+iNAlQ2NJgVE352C9Fs5CDV3VbNTK8T2aNKQFA==", - "path": "microsoft.extensions.options/2.0.0", - "hashPath": "microsoft.extensions.options.2.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Primitives/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ukg53qNlqTrK38WA30b5qhw0GD7y3jdI9PHHASjdKyTcBHTevFM2o23tyk3pWCgAV27Bbkm+CPQ2zUe1ZOuYSA==", - "path": "microsoft.extensions.primitives/2.0.0", - "hashPath": "microsoft.extensions.primitives.2.0.0.nupkg.sha512" - }, - "Microsoft.Net.Http.Headers/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Rm9zeNCWyNrGnysHdRXJpNfeDVlPzzFuidSuRLRNvOrnw71vgNPlR4H9wHo2hG/oSaruukqNjK06MDQqb+eXhA==", - "path": "microsoft.net.http.headers/2.0.0", - "hashPath": "microsoft.net.http.headers.2.0.0.nupkg.sha512" - }, - "Microsoft.NETCore.Platforms/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-VdLJOCXhZaEMY7Hm2GKiULmn7IEPFE4XC5LPSfBVCUIA8YLZVh846gtfBJalsPQF2PlzdD7ecX7DZEulJ402ZQ==", - "path": "microsoft.netcore.platforms/2.0.0", - "hashPath": "microsoft.netcore.platforms.2.0.0.nupkg.sha512" - }, - "Microsoft.NETCore.Targets/1.1.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-vs9c3q7errTVkO1Yh7FoI0eSNvkAIffVpnkygE76Vz8Eo9YtqycOEefrm4iOLMOyMvQIv0Nlw684nt2CDdlzig==", - "path": "microsoft.netcore.targets/1.1.0", - "hashPath": "microsoft.netcore.targets.1.1.0.nupkg.sha512" - }, - "Microsoft.Win32.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-SQ8c0zlY8aw8GZnA8pkKxpE5yDoQ0f123v6Aci8hSrrk9pJWtPgDcdn3KeHZlBtX6YefOUGzJ6Kb+WdwFrooFQ==", - "path": "microsoft.win32.primitives/4.3.0", - "hashPath": "microsoft.win32.primitives.4.3.0.nupkg.sha512" - }, - "NETStandard.Library/2.0.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-oA6nwv9MhEKYvLpjZ0ggSpb1g4CQViDVQjLUcDWg598jtvJbpfeP2reqwI1GLW2TbxC/Ml7xL6BBR1HmKPXlTg==", - "path": "netstandard.library/2.0.1", - "hashPath": "netstandard.library.2.0.1.nupkg.sha512" - }, - "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-XrmXcVFIyqVN6VRAC8NSVkQJ+c87MzDmb6b9+TgzXDmjJrlz5zx0v3RyrLy1Cs3CAWMk5bKQejtd1T0QKnEJUw==", - "path": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-r15mfA0DanSK+3Z3FyVJxjbTeDnSI8TvXofwii/3dqxHYTAv9Ke7duxTjq8Bo/HUoMOJ0eDbRXjIQ5RvUsJ+Jw==", - "path": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-LtkpYGXuZ9olCJH/Z7nWBa5nImH9EnRyloaZeHBeyhDRxoTNe4pZBhwR4ta7nHO9UI/82iWlriOL4fdWNNk4wA==", - "path": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.native.System/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-RfctibzVgLyVGPMn6bT7ntJhkDsdOsYHa76NX7OZdw4t56p2QvBKMhfmrqcM1gBS12GwAyPpAbyHxs7jLyy5jw==", - "path": "runtime.native.system/4.3.0", - "hashPath": "runtime.native.system.4.3.0.nupkg.sha512" - }, - "runtime.native.System.Net.Http/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-cXMbIx57z6+9g3qaJthM9Rb7ImPTk+lKqgMiuVL1l9I2KLrjJCccITWLb4hX3k0FU1lZiY/FVOjAbloPL2918w==", - "path": "runtime.native.system.net.http/4.3.0", - "hashPath": "runtime.native.system.net.http.4.3.0.nupkg.sha512" - }, - "runtime.native.System.Security.Cryptography.Apple/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-LvF+rcfPC4GFk10wlPPbkqQ2/vExtSoQCMFxFDSbqcMsg6qXUt7CDaaDrvtiOe6v+HWoZeP49pxLclcBRCPDKg==", - "path": "runtime.native.system.security.cryptography.apple/4.3.0", - "hashPath": "runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" - }, - "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-rrVECcoOWyR74djO91XRlxJ+juh/vZsliR6iARqjAFaBKlyPwLJd4aQ5M8tdBJoHLTNTj9QHJfqsSc4Wml3zSQ==", - "path": "runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-7f8At1xCDhxJuQ1LcLUAa2dK2XZ+HCoEPhIPh9u9pSDO897XA5NP7RnvXYZOEgL+U+hBNvcbefo7OVQluyTLgw==", - "path": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-qHNQLPqgKifKEOIARxjZUowkJ40aEoSH9VpjDjSFzHRnXH8T+P8zu/FoYFOamn9dqkBzOt4JPAfZaQZQJtxBNA==", - "path": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-HaIkYf5IXzbo85aTpIAe3ZDsyj+gsLYFPZQysinyeR+7NBtNB2wTGGwxkcqQSjpCAwTFtBJTaGiyo79hpB1CBA==", - "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0", - "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" - }, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-irmuaiZdNhZu/i6tDDUiZpPrOect9uK0MR4xDkjjY4zWoz4SDXskVPlsD85x1MCxJP5rCAq4wUOWIEeprl2whw==", - "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-gahlletBLrXsMaGBytw1e2whFg+fd9TR0vzR244htAOfp2UHy1XuEdpjqZuUknG8X0r6C8Akk024KYhj9ddmTQ==", - "path": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-7HajMzjMVtd0+P5HX+Chdnr505E2hKYAq/oTccnEqMRhGzcpWJN0KhPVBRmU7Qy69jdAViFRtyZqUxoBHLkgzw==", - "path": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-LyZBQqsZ/F4g5itL7TCSotirRSk5hHwrQJomIoasWQnAwCPGGw2p8n/s5Hes8HhjVcypK01k9wMmPw9N+uv+5g==", - "path": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ACfI7jQqtQYeO9vJdj+QYGWyoqrNTkFz33GVXPuQvM94/2gwiHkigyA9LZxsqNBHJQ8yPV7xiIQ8ac1SEOLqKQ==", - "path": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "System.Buffers/4.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-AwarXzzoDwX6BgrhjoJsk6tUezZEozOT5Y9QKF94Gl4JK91I4PIIBkBco9068Y9/Dra8Dkbie99kXB8+1BaYKw==", - "path": "system.buffers/4.4.0", - "hashPath": "system.buffers.4.4.0.nupkg.sha512" - }, - "System.Collections/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-1AJbSB9pKc+qhGKTawxCUTAg9lUA8onQMST9tNrIpFit1H2T9Yk1nkW3Gp/lncSQIJ5+ZBlOoL9xjQMPcEmmYw==", - "path": "system.collections/4.3.0", - "hashPath": "system.collections.4.3.0.nupkg.sha512" - }, - "System.Collections.Concurrent/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-09xY/+b7p5ioslTtGcRxjnzSa06YPihNU6qOE/hWIQkqUV7c/Qs6M/URGkIEbCCALkaaHOI/4ONkoG6jmc9HLg==", - "path": "system.collections.concurrent/4.3.0", - "hashPath": "system.collections.concurrent.4.3.0.nupkg.sha512" - }, - "System.Collections.NonGeneric/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ASiGTKJqauqU1YQgHzEo4NL6DJKADvjsTZrNVkTVP9slb5BeMH5F74nIczdJu70jXScELJpQYMhXX+gNVKIlew==", - "path": "system.collections.nongeneric/4.3.0", - "hashPath": "system.collections.nongeneric.4.3.0.nupkg.sha512" - }, - "System.Collections.Specialized/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-jQOfOX7848z8dPZEQHPyYwlP5975iTTQ1VczInTpUOe75atEwaoPYDAowLd/OuwFOX2LDLNw0xpLS5enCOXdug==", - "path": "system.collections.specialized/4.3.0", - "hashPath": "system.collections.specialized.4.3.0.nupkg.sha512" - }, - "System.ComponentModel/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-LnBbfSfOA/4rgrHbGaf6ETPdOUtJLnGjoJon49ZFu4MAE7+gA2o0NiD19mK8CoJ2Ep8dlg6+nqRVZlWPoc4Y4A==", - "path": "system.componentmodel/4.3.0", - "hashPath": "system.componentmodel.4.3.0.nupkg.sha512" - }, - "System.ComponentModel.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-58rrdVPosSjHAsx5QjatUZ0oPp1MqYcRubaAjudg0Iq5FnSIXEzj6pcb3PjqlgstV7XAI/j5sQbxlzbstk4Ugw==", - "path": "system.componentmodel.primitives/4.3.0", - "hashPath": "system.componentmodel.primitives.4.3.0.nupkg.sha512" - }, - "System.Data.Common/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lm6E3T5u7BOuEH0u18JpbJHxBfOJPuCyl4Kg1RH10ktYLp5uEEE1xKrHW56/We4SnZpGAuCc9N0MJpSDhTHZGQ==", - "path": "system.data.common/4.3.0", - "hashPath": "system.data.common.4.3.0.nupkg.sha512" - }, - "System.Diagnostics.Debug/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-RPkucWK4gQRmV0XUMxXhUir6sJGy9LSDIKm7pBM2c1hBFFFCvwFhFJcLZd81NCpbcHfwXksO/kMzSXUXM2joDQ==", - "path": "system.diagnostics.debug/4.3.0", - "hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512" - }, - "System.Diagnostics.DiagnosticSource/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-XjgqzlOJE8H1HhdhVCiK3vu4fen2xwbbe7lEnohBP+xoBN85mFAo78xi5cxkzjlZ1Jup0WLoZc7XpxMnjfbMBQ==", - "path": "system.diagnostics.diagnosticsource/4.3.0", - "hashPath": "system.diagnostics.diagnosticsource.4.3.0.nupkg.sha512" - }, - "System.Diagnostics.Tracing/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-6r8Ez0r0tyGFBheTZYjkU4qpLJZnhVwAFDDF6GVkyge9jeMFVK6Uu7JXrGTeE2m09GcRNS5STJvsX1vb+Omacg==", - "path": "system.diagnostics.tracing/4.3.0", - "hashPath": "system.diagnostics.tracing.4.3.0.nupkg.sha512" - }, - "System.Dynamic.Runtime/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Kiu80W6wgVYPLJz6R8kh8GacUuPIDmvew2GaWmKsQVi6DaYKDneg9R1vmAcXDf5hKj1qPzgmFloRzFbUl9jHeg==", - "path": "system.dynamic.runtime/4.3.0", - "hashPath": "system.dynamic.runtime.4.3.0.nupkg.sha512" - }, - "System.Globalization/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-EppWk5+tMzaEzhZkUfaOKuqnC2ECFzQVadE9yBRQtVSWtGOsu9QhfovAhb1Q7FV6X6G9g/a7/8W6ORUjuKxOjQ==", - "path": "system.globalization/4.3.0", - "hashPath": "system.globalization.4.3.0.nupkg.sha512" - }, - "System.Globalization.Calendars/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-31GxAA4aEL8efY3LcrAbaL52/x5eMREK/uH+QTB62bLG9IeydmvXECS4BYHiyCnTco97YhGkO9CsHJynwPtNUA==", - "path": "system.globalization.calendars/4.3.0", - "hashPath": "system.globalization.calendars.4.3.0.nupkg.sha512" - }, - "System.Globalization.Extensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Pj6LfslnZNSSZm/8X03IlxU1zA9Zintjviv4GStB0WUxYu2puDwm7qvlwzGy7/FW6Qa9xzmF/IVN0wpvmYN9Lg==", - "path": "system.globalization.extensions/4.3.0", - "hashPath": "system.globalization.extensions.4.3.0.nupkg.sha512" - }, - "System.IO/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-/wTullO3iTZcj0tbuz1xIcmk+O0/JmkuxcqwAsTfadEEni+sQUQ36JYlSE5D2mSArRtaE1M3bzB75HgcGCJ+tQ==", - "path": "system.io/4.3.0", - "hashPath": "system.io.4.3.0.nupkg.sha512" - }, - "System.IO.FileSystem/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-bDwE6iQKXXWl0/xvCInd5ao9TCz10XprzDLprOWR+6I3stD082KpbAK5goMsEbM4gXWfT0Im5THeAsZaU8bBlQ==", - "path": "system.io.filesystem/4.3.0", - "hashPath": "system.io.filesystem.4.3.0.nupkg.sha512" - }, - "System.IO.FileSystem.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-fYutRsdDDthwR0+LP7gSrwz50TJFAbQNtQYPXfdjvvVVdJWqW+sGANq338ytNkYjR3eFN4w04hEj5hovZjZQ2Q==", - "path": "system.io.filesystem.primitives/4.3.0", - "hashPath": "system.io.filesystem.primitives.4.3.0.nupkg.sha512" - }, - "System.Linq/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-JPPJ2d6FK9Z+HcWp8oXjd6ZcLk94OIq+Jgoi5hq62lz+VOLIaE7MXSBO1YVi1w+3RJJYEMDqtIJwQ1BgpuKKsA==", - "path": "system.linq/4.3.0", - "hashPath": "system.linq.4.3.0.nupkg.sha512" - }, - "System.Linq.Expressions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-mvEeo9a4GGe/UdvjLumBajn21DRjZkpcm/HMeLAq5b0E00DKn/f7NoY4nDBdgh6E2o88YTMVtKSbcANvV6QZGg==", - "path": "system.linq.expressions/4.3.0", - "hashPath": "system.linq.expressions.4.3.0.nupkg.sha512" - }, - "System.Linq.Queryable/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-In1Bmmvl/j52yPu3xgakQSI0YIckPUr870w4K5+Lak3JCCa8hl+my65lABOuKfYs4ugmZy25ScFerC4nz8+b6g==", - "path": "system.linq.queryable/4.3.0", - "hashPath": "system.linq.queryable.4.3.0.nupkg.sha512" - }, - "System.Net.Http/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-iz1MgqiwRi9uIZGrj7TYWTM6RSiC/6qp3lBMs05Ko1pXQ3fmpZK67Iqj0Vj60YjqYLggDLIkhpo4qV7B/Ms4HQ==", - "path": "system.net.http/4.3.0", - "hashPath": "system.net.http.4.3.0.nupkg.sha512" - }, - "System.Net.Http.WinHttpHandler/4.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ZmsFZIZ4PL2UfUlfj4KCzzAGGE2SF39ENIqtvfgu0bwMEAe3J3CqZr765E2W6eQQtNK08/8DpHcsA0sAKZdEtA==", - "path": "system.net.http.winhttphandler/4.4.0", - "hashPath": "system.net.http.winhttphandler.4.4.0.nupkg.sha512" - }, - "System.Net.NetworkInformation/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-zNVmWVry0pAu7lcrRBhwwU96WUdbsrGL3azyzsbXmVNptae1+Za+UgOe9Z6s8iaWhPn7/l4wQqhC56HZWq7tkg==", - "path": "system.net.networkinformation/4.3.0", - "hashPath": "system.net.networkinformation.4.3.0.nupkg.sha512" - }, - "System.Net.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-AaMayOmbnglWGOkaNbza9FhBNtYRn4zNG8Nnu7Hit+KYA06noogYjz6asLXmF3PpfHjFsMORlyG7nKyGJPW96A==", - "path": "system.net.primitives/4.3.0", - "hashPath": "system.net.primitives.4.3.0.nupkg.sha512" - }, - "System.Net.Requests/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-OZNUuAs0kDXUzm7U5NZ1ojVta5YFZmgT2yxBqsQ7Eseq5Ahz88LInGRuNLJ/NP2F8W1q7tse1pKDthj3reF5QA==", - "path": "system.net.requests/4.3.0", - "hashPath": "system.net.requests.4.3.0.nupkg.sha512" - }, - "System.Net.Sockets/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-IBP4eAQFdjvJfw+SwegrabtbiHSkGf18N9Nt5YVgT5lKUfulv/HhO3jTVbq14ofQYmIbkBwKzeDkUKb3tRzHKg==", - "path": "system.net.sockets/4.3.0", - "hashPath": "system.net.sockets.4.3.0.nupkg.sha512" - }, - "System.Net.WebHeaderCollection/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-XZrXYG3c7QV/GpWeoaRC02rM6LH2JJetfVYskf35wdC/w2fFDFMphec4gmVH2dkll6abtW14u9Rt96pxd9YH2A==", - "path": "system.net.webheadercollection/4.3.0", - "hashPath": "system.net.webheadercollection.4.3.0.nupkg.sha512" - }, - "System.ObjectModel/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-f9SGFzGsZekQyy3dfgrODqmEB8crsCJTvsUa6pnMnjRwXaQXz0OG3l20iu7SsPFC6mQLWydA5NA5BzeRYlacdw==", - "path": "system.objectmodel/4.3.0", - "hashPath": "system.objectmodel.4.3.0.nupkg.sha512" - }, - "System.Private.ServiceModel/4.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lED0s9Lfo2TdniGlFY2rdK1wygFJ7dPRaTHR2Z409nGWfFG1YMuAlrfMhSeYFJ5pbffAlOBxb8hvoYxP3LJ6mg==", - "path": "system.private.servicemodel/4.4.0", - "hashPath": "system.private.servicemodel.4.4.0.nupkg.sha512" - }, - "System.Reflection/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-3uYB1Y9PY+4B/XtCMGiLfnNP9SJU5vovOLiEGabFqBOtBML8PurmWr0OzPKebsrGviYB1acTKrhE1NAIb+P3mQ==", - "path": "system.reflection/4.3.0", - "hashPath": "system.reflection.4.3.0.nupkg.sha512" - }, - "System.Reflection.DispatchProxy/4.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-xK6JE0mpsBD+T0qu3V6dmVRa06PxAvIIM/zSjouqP7Sk6X+FQj+9XFRz9GmZk9aJGMU1LX6AgTZIlsYZ64QKsw==", - "path": "system.reflection.dispatchproxy/4.4.0", - "hashPath": "system.reflection.dispatchproxy.4.4.0.nupkg.sha512" - }, - "System.Reflection.Emit/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-GHctkl5J3qRgAvXxc+cQXbYfrw0S7kZswbTbbFgSjvGU/KhTRmH+ZpMNToI8NA/nLCMl0EAgbWpIfp74EnYOJw==", - "path": "system.reflection.emit/4.3.0", - "hashPath": "system.reflection.emit.4.3.0.nupkg.sha512" - }, - "System.Reflection.Emit.ILGeneration/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lqTxoVZbRVP84GyXyxOUeB2PdOzrTLAMluaxIkp94WURhQMAKQKlQd5YATL+UnTDtxDzd9HZDKjF7xl2jjQEnA==", - "path": "system.reflection.emit.ilgeneration/4.3.0", - "hashPath": "system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512" - }, - "System.Reflection.Emit.Lightweight/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-LvX8HS0d2l8lNam0RpJgH3gQM6nSSP3crcE6XlMYCBvhTv41HkZbroA3YsCyC21Eu3hsZu1jJRTxmgsD7dww2g==", - "path": "system.reflection.emit.lightweight/4.3.0", - "hashPath": "system.reflection.emit.lightweight.4.3.0.nupkg.sha512" - }, - "System.Reflection.Extensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-I2lC6UhAtrIm6D52Mn9dNys56s9Mus94e03FMU/RRqJvLyQ4AyRIPa+5oU73wyQ+pKMFUJU5PeS7nURr6DHG2A==", - "path": "system.reflection.extensions/4.3.0", - "hashPath": "system.reflection.extensions.4.3.0.nupkg.sha512" - }, - "System.Reflection.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-IWUmJcoqCpvsIn0Txobe+5idI096N+08jM3pnbVW1QWBDWQcSZqfQ7nNpMv/eKexrdlODAup0nd9dMRzbfPgSA==", - "path": "system.reflection.primitives/4.3.0", - "hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512" - }, - "System.Reflection.TypeExtensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-bddVPkbwJzLo0+FzvsoEunOBODGVEJ5JRFU1Xjo4MxhCUrpO7JJ5CJCFx7RXIrBtsAUH5Jh94v3pWEM/MLziJw==", - "path": "system.reflection.typeextensions/4.3.0", - "hashPath": "system.reflection.typeextensions.4.3.0.nupkg.sha512" - }, - "System.Resources.ResourceManager/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-H6KDV29RfZ623UnvI4goq8doHylg0GjNiHfSLuzLibGHmcdXiw1XgCq/gd/LwPvnVgJUcJ9tNKcDnYiDaWm7hA==", - "path": "system.resources.resourcemanager/4.3.0", - "hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512" - }, - "System.Runtime/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-iD01AV/eij/6iIa2UZHXayeOQoyjjP48pSIpP2bgxDVwTftELekKHJmsCTE7kD0BobeK6O2+RzQownNc9Yro9w==", - "path": "system.runtime/4.3.0", - "hashPath": "system.runtime.4.3.0.nupkg.sha512" - }, - "System.Runtime.CompilerServices.Unsafe/4.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-9dLLuBxr5GNmOfl2jSMcsHuteEg32BEfUotmmUkmZjpR3RpVHE8YQwt0ow3p6prwA1ME8WqDVZqrr8z6H8G+Kw==", - "path": "system.runtime.compilerservices.unsafe/4.4.0", - "hashPath": "system.runtime.compilerservices.unsafe.4.4.0.nupkg.sha512" - }, - "System.Runtime.Extensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-PZGJVsgBNSBnKUF4N9e36W+3ZO7tJ5OtUoZP7mqfKUFwplBShDaGEgehH6j6cuOmtbaZw+N/97cl+GgDSwt0YQ==", - "path": "system.runtime.extensions/4.3.0", - "hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512" - }, - "System.Runtime.Handles/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-4Psk9sl0VLSE9uPBSeZBJKlf8qQET8+cf8Y0DDyoCUiQ5jp93knJQWfuAJaRxb2Ryar8crjSlMzsUz/jp9aQ1w==", - "path": "system.runtime.handles/4.3.0", - "hashPath": "system.runtime.handles.4.3.0.nupkg.sha512" - }, - "System.Runtime.InteropServices/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-AFYM6PJsqZVtVWE6jlERrG65+LHOoaYGW6D/TFKvMIwZ4tXgs8qLtGY1jQXrgLABvJMKxfR8Y+WpKR2C9R4h3Q==", - "path": "system.runtime.interopservices/4.3.0", - "hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512" - }, - "System.Runtime.Numerics/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-wpA0s4R+cb/6dd6AxzwkQ8A9K9kc/A41DQdpbyNTrV2syqOJk/0LUInhOEgFaarcejrApCpTfvHP4QhaeUC2Uw==", - "path": "system.runtime.numerics/4.3.0", - "hashPath": "system.runtime.numerics.4.3.0.nupkg.sha512" - }, - "System.Runtime.Serialization.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-skc/xdfE6A4vKZL/992b0Jd+4iAye3CTmMitItDzOk6r8hpo+8bDLqMX9brgSg0NZyNE9UI/P8nHRWQUjvKYdQ==", - "path": "system.runtime.serialization.primitives/4.3.0", - "hashPath": "system.runtime.serialization.primitives.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.Algorithms/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-YQ5ql2EzgxUp6vI+jHxo9lmcH0Iy1RsmxtggtbJ1jy8rt+W3uc7t1iFQri0zNM3BJyCw3P31TF8jxWpxcc1aPQ==", - "path": "system.security.cryptography.algorithms/4.3.0", - "hashPath": "system.security.cryptography.algorithms.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.Cng/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-gmloRV7S66IH/jYbvnaUhaDwMSug1hWjuswsZuZPjmj94SMH/DRHQHU+4zSIQXEhCwRh9zMIQahY6nRfqXHrmA==", - "path": "system.security.cryptography.cng/4.3.0", - "hashPath": "system.security.cryptography.cng.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.Csp/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-5AZCwoueBVlYoL8pd3+8PVUa7CgXJhv4axJ2EJjSD899ddlkO1f5457nb8jOdhSxrf0VRDmRAABg5ulRO8COkA==", - "path": "system.security.cryptography.csp/4.3.0", - "hashPath": "system.security.cryptography.csp.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.Encoding/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-VUhXu1S0kQqHgjBIHmWE1jfgaSRGqH3rL/pmlQrrKzCg9iQanwNIvE5DQmjx0JXT+eUc+/Y0ARu9XxQKS1/rAQ==", - "path": "system.security.cryptography.encoding/4.3.0", - "hashPath": "system.security.cryptography.encoding.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Z21GQupB9XiBkVlupWOlGOCAYDJ1nlkrSrnezrY7bzebwvmtu0GyYen09e+GxfH+VJVMPYzchtUL8tywkkaYCw==", - "path": "system.security.cryptography.openssl/4.3.0", - "hashPath": "system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-MWGvviIh8HKFpphRZxg7chpN1FkeMBP2O+2+yMDc9/kgs72G7hSjOUlBqg4O/cvNahBRJZ0JtulS5jlpR/OREQ==", - "path": "system.security.cryptography.primitives/4.3.0", - "hashPath": "system.security.cryptography.primitives.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.X509Certificates/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-anCRBHYjC2PtfOm8tbs1x5KZ+2/JXuOj3oWNHt0U50YhLQxZv0hFB4NRNFTJt2i7wyJD/Ow2oJ/ti0nHJa6a6w==", - "path": "system.security.cryptography.x509certificates/4.3.0", - "hashPath": "system.security.cryptography.x509certificates.4.3.0.nupkg.sha512" - }, - "System.Security.Principal.Windows/4.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-pP+AOzt1o3jESOuLmf52YQTF7H3Ng9hTnrOESQiqsnl2IbBh1HInsAMHYtoh75iUYV0OIkHmjvveraYB6zM97w==", - "path": "system.security.principal.windows/4.4.0", - "hashPath": "system.security.principal.windows.4.4.0.nupkg.sha512" - }, - "System.ServiceModel.Primitives/4.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-6rATyMUeeOPVY7XzoneoyzGKVCc62gGl/A6SKrlY0dX0bnMprIrXZF1AXy9Y8ne49JU/2RGGeldFbATYONc/XQ==", - "path": "system.servicemodel.primitives/4.4.0", - "hashPath": "system.servicemodel.primitives.4.4.0.nupkg.sha512" - }, - "System.Text.Encoding/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-58DKIOFSEnQqFEogJ0lqgGFf1Gr9Zzc9/KmYvOR9uW9lf35DHzGNkki+HpPNsdEIHCjKmnQRJF9sBrovQhYhKw==", - "path": "system.text.encoding/4.3.0", - "hashPath": "system.text.encoding.4.3.0.nupkg.sha512" - }, - "System.Text.Encoding.Extensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-wSIplxLLihOx5TGFa8Nn98eWAmkZbBdslSviLvwfUiqiUEUEuqrsbrV2hE9haNf1BZbbvM4ClrcJ58KUQk96pw==", - "path": "system.text.encoding.extensions/4.3.0", - "hashPath": "system.text.encoding.extensions.4.3.0.nupkg.sha512" - }, - "System.Text.Encodings.Web/4.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-l/tYeikqMHX2MD2jzrHDfR9ejrpTTF7wvAEbR51AMvzip1wSJgiURbDik4iv/w7ZgytmTD/hlwpplEhF9bmFNw==", - "path": "system.text.encodings.web/4.4.0", - "hashPath": "system.text.encodings.web.4.4.0.nupkg.sha512" - }, - "System.Text.RegularExpressions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-M03moZwpMD9vtWFARtrB0QdKPsSxFqJ8oDrAi6s1jY7R4+2fQcu6chC/ULn6/da9MM93fNOMPGURQAay8N8H5Q==", - "path": "system.text.regularexpressions/4.3.0", - "hashPath": "system.text.regularexpressions.4.3.0.nupkg.sha512" - }, - "System.Threading/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-BYKL/G9muhpJ2TbkTPeaEUKrZ75oKDtoc7u0itkYqASIvRZijCRLYAPfOPOADxDlqsSAMRRCOP5rebN5Zl7p2g==", - "path": "system.threading/4.3.0", - "hashPath": "system.threading.4.3.0.nupkg.sha512" - }, - "System.Threading.Overlapped/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-LRcp7Ir4HQ3I7uIhUb8ypaMDw23W1t3GMCA2+yUxTL3HG9ZrVJtLufoK/mF9zfCG2bxuRBf1Bj8FC9mOPddhIg==", - "path": "system.threading.overlapped/4.3.0", - "hashPath": "system.threading.overlapped.4.3.0.nupkg.sha512" - }, - "System.Threading.Tasks/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-eYZRKpn/EpgiXlh8QGXI3qnAWmIdbmjZhqyKIuURD4awwTMBJL56b5ykdWRus9TLKRbvAPAdWiPxFc/VBJ+d9A==", - "path": "system.threading.tasks/4.3.0", - "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512" - }, - "System.Threading.Tasks.Extensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-kW7nIBjfW8DzVkmOcckgGMirxC2oDr0/v4ZIokUop6gFCudQVEGR9GoCGstVCSiuN1P9j+FlH9YX2OXxv2dV1A==", - "path": "system.threading.tasks.extensions/4.3.0", - "hashPath": "system.threading.tasks.extensions.4.3.0.nupkg.sha512" - }, - "System.Threading.Thread/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-fBrzOXZbwvFK+QQkW5WB64bgMQ34cVohOxjQo6xVhPqHqCWydYfDdSbNL7yqb1C3ajXtWfGKD9cBQDae0KibRA==", - "path": "system.threading.thread/4.3.0", - "hashPath": "system.threading.thread.4.3.0.nupkg.sha512" - }, - "System.Threading.ThreadPool/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-0fzgv/sOiS1UKAg6bwGIg/ufEwRp9a1rTstlmS7hPrwg0ohWI9jAiEvmB4atdYtRrdH27ilVkbfAmgBlEwuEOg==", - "path": "system.threading.threadpool/4.3.0", - "hashPath": "system.threading.threadpool.4.3.0.nupkg.sha512" - }, - "System.Xml.ReaderWriter/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-4ghUccqnWLWIYzuYX84Vx6T7/1MSvdAmmqlyMK1DoRyvO2wYq1v5QMsAKjdY1h4iH5nkOh6a50cio/qY9VgRSw==", - "path": "system.xml.readerwriter/4.3.0", - "hashPath": "system.xml.readerwriter.4.3.0.nupkg.sha512" - }, - "System.Xml.XmlDocument/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ljbrPCAXEu5ijirKRxzH9eA3+/IhCpyv321JSepyUdM0fCPGo/910BXt/KwMVruLKN8dkIOUdYm2LlqBuIRn1Q==", - "path": "system.xml.xmldocument/4.3.0", - "hashPath": "system.xml.xmldocument.4.3.0.nupkg.sha512" - }, - "System.Xml.XmlSerializer/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-pXIz8nVP9y1uc3WCyTdl5LDesu2M6BDlMF7+JZS72oqKSZHXd2Q9PwepKFsFryWDMQEAjkjmyDEFu4FISdYfCw==", - "path": "system.xml.xmlserializer/4.3.0", - "hashPath": "system.xml.xmlserializer.4.3.0.nupkg.sha512" - }, - "ServiceStack/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "ServiceStack.Client/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "ServiceStack.Common/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "ServiceStack.Interfaces/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "ServiceStack.OrmLite/5.0.0.0": { - "type": "reference", - "serviceable": false, - "sha512": "" - }, - "ServiceStack.Redis/5.0.0.0": { - "type": "reference", - "serviceable": false, - "sha512": "" - }, - "ServiceStack.Text/5.0.0.0": { - "type": "reference", - "serviceable": false, - "sha512": "" - } - } -} \ No newline at end of file diff --git a/lib/netstandard2.0/ServiceStack.Server.dll b/lib/netstandard2.0/ServiceStack.Server.dll deleted file mode 100644 index 90b05a5..0000000 Binary files a/lib/netstandard2.0/ServiceStack.Server.dll and /dev/null differ diff --git a/lib/netstandard2.0/ServiceStack.Server.xml b/lib/netstandard2.0/ServiceStack.Server.xml deleted file mode 100644 index 14ed780..0000000 --- a/lib/netstandard2.0/ServiceStack.Server.xml +++ /dev/null @@ -1,234 +0,0 @@ - - - - ServiceStack.Server - - - - - Base rcon class. - - - - - Event delegate when disconnected from the server. - - - - - - Delegate for async callbacks. - - - - - - - Disconnected event. - - - - - Rcon connection socket. Always set to null when not connected. - - - - - Unique ID for each message. - - - - - Registered callbacks. - - - - - Create a new instance of rcon. - - Endpoint to connect to, usually the game server with query port. - - - - Attempts to connect to the game server for rcon operations. - - True if connection established, false otherwise. - - - - Processes a received packet. - - The packet. - - - - Disconnects from rcon. - - - - - Sends message to the server. - - Words to send. - - - - Game server endpoint. - - - - - Last exception that occured during operation. - - - - - Connected? - - - - - Gets the next unique ID to be used for transmisson. Read this before sending to pair responses to sent messages. - - - - - Exception thrown when attempting to send on a non-connected service client. - - - - - True if the packet originated on the server. - - - - - True if the packet is a response from a sent packet. - - - - - Sequence identifier. Unique to the connection. - - - - - Words. - - - - - Contains methods required for encoding and decoding rcon packets. - - - - - Decodes a packet. - - The packet. - A packet object. - - - - Decodes the packet header. - - - - - - - Decodes words in a packet. - - - - - - - Encodes a packet for transmission to the server. - - - - - - - - - - Encodes a packet header. - - - - - - - - - Encodes words. - - - - - - - Creates a Redis MQ Server that processes each message on its own background thread. - i.e. if you register 3 handlers it will create 7 background threads: - - 1 listening to the Redis MQ Subscription, getting notified of each new message - - 3x1 Normal InQ for each message handler - - 3x1 PriorityQ for each message handler (Turn off with DisablePriorityQueues) - - When RedisMqServer Starts it creates a background thread subscribed to the Redis MQ Topic that - listens for new incoming messages. It also starts 2 background threads for each message type: - - 1 for processing the services Priority Queue and 1 processing the services normal Inbox Queue. - - Priority Queue's can be enabled on a message-per-message basis by specifying types in the - OnlyEnablePriortyQueuesForTypes property. The DisableAllPriorityQueues property disables all Queues. - - The Start/Stop methods are idempotent i.e. It's safe to call them repeatedly on multiple threads - and the Redis MQ Server will only have Started or Stopped once. - - - - - Execute global transformation or custom logic before a request is processed. - Must be thread-safe. - - - - - Execute global transformation or custom logic on the response. - Must be thread-safe. - - - - - Execute global error handler logic. Must be thread-safe. - - - - - If you only want to enable priority queue handlers (and threads) for specific msg types - - - - - Don't listen on any Priority Queues - - - - - Opt-in to only publish responses on this white list. - Publishes all responses by default. - - - - - Transient message queues are a one-pass message queue service that starts - processing messages when Start() is called. Any subsequent Start() calls - while the service is running is ignored. - - The transient service will continue to run until all messages have been - processed after which time it will shutdown all processing until Start() is called again. - - - - diff --git a/lib/netstandard2.0/ServiceStack.Text.deps.json b/lib/netstandard2.0/ServiceStack.Text.deps.json deleted file mode 100644 index 864659d..0000000 --- a/lib/netstandard2.0/ServiceStack.Text.deps.json +++ /dev/null @@ -1,240 +0,0 @@ -{ - "runtimeTarget": { - "name": ".NETStandard,Version=v2.0/", - "signature": "269c10cc22c054b838cf51d8715c61016217b027" - }, - "compilationOptions": {}, - "targets": { - ".NETStandard,Version=v2.0": {}, - ".NETStandard,Version=v2.0/": { - "ServiceStack.Text/1.0.0": { - "dependencies": { - "Microsoft.CSharp": "4.4.1", - "Microsoft.Extensions.Primitives": "2.0.0", - "NETStandard.Library": "2.0.1", - "System.Reflection.Emit": "4.3.0", - "System.Reflection.Emit.Lightweight": "4.3.0", - "System.Runtime": "4.3.0" - }, - "runtime": { - "ServiceStack.Text.dll": {} - } - }, - "Microsoft.CSharp/4.4.1": { - "runtime": { - "lib/netstandard2.0/Microsoft.CSharp.dll": {} - } - }, - "Microsoft.Extensions.Primitives/2.0.0": { - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "4.4.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll": {} - } - }, - "Microsoft.NETCore.Platforms/1.1.0": {}, - "Microsoft.NETCore.Targets/1.1.0": {}, - "NETStandard.Library/2.0.1": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0" - } - }, - "System.IO/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Reflection/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.Emit/4.3.0": { - "dependencies": { - "System.IO": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Reflection.Emit.dll": {} - } - }, - "System.Reflection.Emit.ILGeneration/4.3.0": { - "dependencies": { - "System.Reflection": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Reflection.Emit.ILGeneration.dll": {} - } - }, - "System.Reflection.Emit.Lightweight/4.3.0": { - "dependencies": { - "System.Reflection": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/System.Reflection.Emit.Lightweight.dll": {} - } - }, - "System.Reflection.Primitives/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "System.Runtime.CompilerServices.Unsafe/4.4.0": { - "runtime": { - "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll": {} - } - }, - "System.Text.Encoding/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Threading.Tasks/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - } - } - }, - "libraries": { - "ServiceStack.Text/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "Microsoft.CSharp/4.4.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-A5hI3gk6WpcBI0QGZY6/d5CCaYUxJgi7iENn1uYEng+Olo8RfI5ReGVkjXjeu3VR3srLvVYREATXa2M0X7FYJA==", - "path": "microsoft.csharp/4.4.1", - "hashPath": "microsoft.csharp.4.4.1.nupkg.sha512" - }, - "Microsoft.Extensions.Primitives/2.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ukg53qNlqTrK38WA30b5qhw0GD7y3jdI9PHHASjdKyTcBHTevFM2o23tyk3pWCgAV27Bbkm+CPQ2zUe1ZOuYSA==", - "path": "microsoft.extensions.primitives/2.0.0", - "hashPath": "microsoft.extensions.primitives.2.0.0.nupkg.sha512" - }, - "Microsoft.NETCore.Platforms/1.1.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-n2QVe1U/8yMdyowo8Z0C4fWPGTJlkvGnqYBw2DFMMPs9uA6mgVDq/xaklZiUl57FVfJm2WcEu1ybdodsRx/gDQ==", - "path": "microsoft.netcore.platforms/1.1.0", - "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512" - }, - "Microsoft.NETCore.Targets/1.1.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-vs9c3q7errTVkO1Yh7FoI0eSNvkAIffVpnkygE76Vz8Eo9YtqycOEefrm4iOLMOyMvQIv0Nlw684nt2CDdlzig==", - "path": "microsoft.netcore.targets/1.1.0", - "hashPath": "microsoft.netcore.targets.1.1.0.nupkg.sha512" - }, - "NETStandard.Library/2.0.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-oA6nwv9MhEKYvLpjZ0ggSpb1g4CQViDVQjLUcDWg598jtvJbpfeP2reqwI1GLW2TbxC/Ml7xL6BBR1HmKPXlTg==", - "path": "netstandard.library/2.0.1", - "hashPath": "netstandard.library.2.0.1.nupkg.sha512" - }, - "System.IO/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-/wTullO3iTZcj0tbuz1xIcmk+O0/JmkuxcqwAsTfadEEni+sQUQ36JYlSE5D2mSArRtaE1M3bzB75HgcGCJ+tQ==", - "path": "system.io/4.3.0", - "hashPath": "system.io.4.3.0.nupkg.sha512" - }, - "System.Reflection/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-3uYB1Y9PY+4B/XtCMGiLfnNP9SJU5vovOLiEGabFqBOtBML8PurmWr0OzPKebsrGviYB1acTKrhE1NAIb+P3mQ==", - "path": "system.reflection/4.3.0", - "hashPath": "system.reflection.4.3.0.nupkg.sha512" - }, - "System.Reflection.Emit/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-GHctkl5J3qRgAvXxc+cQXbYfrw0S7kZswbTbbFgSjvGU/KhTRmH+ZpMNToI8NA/nLCMl0EAgbWpIfp74EnYOJw==", - "path": "system.reflection.emit/4.3.0", - "hashPath": "system.reflection.emit.4.3.0.nupkg.sha512" - }, - "System.Reflection.Emit.ILGeneration/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lqTxoVZbRVP84GyXyxOUeB2PdOzrTLAMluaxIkp94WURhQMAKQKlQd5YATL+UnTDtxDzd9HZDKjF7xl2jjQEnA==", - "path": "system.reflection.emit.ilgeneration/4.3.0", - "hashPath": "system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512" - }, - "System.Reflection.Emit.Lightweight/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-LvX8HS0d2l8lNam0RpJgH3gQM6nSSP3crcE6XlMYCBvhTv41HkZbroA3YsCyC21Eu3hsZu1jJRTxmgsD7dww2g==", - "path": "system.reflection.emit.lightweight/4.3.0", - "hashPath": "system.reflection.emit.lightweight.4.3.0.nupkg.sha512" - }, - "System.Reflection.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-IWUmJcoqCpvsIn0Txobe+5idI096N+08jM3pnbVW1QWBDWQcSZqfQ7nNpMv/eKexrdlODAup0nd9dMRzbfPgSA==", - "path": "system.reflection.primitives/4.3.0", - "hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512" - }, - "System.Runtime/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-iD01AV/eij/6iIa2UZHXayeOQoyjjP48pSIpP2bgxDVwTftELekKHJmsCTE7kD0BobeK6O2+RzQownNc9Yro9w==", - "path": "system.runtime/4.3.0", - "hashPath": "system.runtime.4.3.0.nupkg.sha512" - }, - "System.Runtime.CompilerServices.Unsafe/4.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-9dLLuBxr5GNmOfl2jSMcsHuteEg32BEfUotmmUkmZjpR3RpVHE8YQwt0ow3p6prwA1ME8WqDVZqrr8z6H8G+Kw==", - "path": "system.runtime.compilerservices.unsafe/4.4.0", - "hashPath": "system.runtime.compilerservices.unsafe.4.4.0.nupkg.sha512" - }, - "System.Text.Encoding/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-58DKIOFSEnQqFEogJ0lqgGFf1Gr9Zzc9/KmYvOR9uW9lf35DHzGNkki+HpPNsdEIHCjKmnQRJF9sBrovQhYhKw==", - "path": "system.text.encoding/4.3.0", - "hashPath": "system.text.encoding.4.3.0.nupkg.sha512" - }, - "System.Threading.Tasks/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-eYZRKpn/EpgiXlh8QGXI3qnAWmIdbmjZhqyKIuURD4awwTMBJL56b5ykdWRus9TLKRbvAPAdWiPxFc/VBJ+d9A==", - "path": "system.threading.tasks/4.3.0", - "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512" - } - } -} \ No newline at end of file diff --git a/lib/netstandard2.0/ServiceStack.Text.dll b/lib/netstandard2.0/ServiceStack.Text.dll deleted file mode 100644 index 870beb1..0000000 Binary files a/lib/netstandard2.0/ServiceStack.Text.dll and /dev/null differ diff --git a/lib/netstandard2.0/ServiceStack.Text.xml b/lib/netstandard2.0/ServiceStack.Text.xml deleted file mode 100644 index 70987c1..0000000 --- a/lib/netstandard2.0/ServiceStack.Text.xml +++ /dev/null @@ -1,1364 +0,0 @@ - - - - ServiceStack.Text - - - - - Utils to load types - - - - - Find the type from the name supplied - - [typeName] or [typeName, assemblyName] - - - - - The top-most interface of the given type, if any. - - - - - Find type if it exists - - - - The type if it exists - - - - If AlwaysUseUtc is set to true then convert all DateTime to UTC. If PreserveUtc is set to true then UTC dates will not convert to local - - - - - - - Repairs an out-of-spec XML date/time string which incorrectly uses a space instead of a 'T' to separate the date from the time. - These string are occasionally generated by SQLite and can cause errors in OrmLite when reading these columns from the DB. - - The XML date/time string to repair - The repaired string. If no repairs were made, the original string is returned. - - - - WCF Json format: /Date(unixts+0000)/ - - - - - - - WCF Json format: /Date(unixts+0000)/ - - - - - - - Get the type(string) constructor if exists - - The type. - - - - - micro optimizations: using flags instead of value.IndexOfAny(EscapeChars) - - - - - - - Class to hold - - - - - - A fast, standards-based, serialization-issue free DateTime serailizer. - - - - - Determines whether this serializer can create the specified type from a string. - - The type. - - true if this instance [can create from string] the specified type; otherwise, false. - - - - - Parses the specified value. - - The value. - - - - - Deserializes from reader. - - The reader. - - - - - Serializes to string. - - The value. - - - - - Serializes to writer. - - The value. - The writer. - - - - Sets which format to use when serializing TimeSpans - - - - - if the is configured - to take advantage of specification, - to support user-friendly serialized formats, ie emitting camelCasing for JSON - and parsing member names and enum values in a case-insensitive manner. - - - - - if the is configured - to support web-friendly serialized formats, ie emitting lowercase_underscore_casing for JSON - - - - - Define how property names are mapped during deserialization - - - - - Gets or sets a value indicating if the framework should throw serialization exceptions - or continue regardless of deserialization errors. If the framework - will throw; otherwise, it will parse as many fields as possible. The default is . - - - - - Gets or sets a value indicating if the framework should always convert to UTC format instead of local time. - - - - - Gets or sets a value indicating if the framework should skip automatic conversions. - Dates will be handled literally, any included timezone encoding will be lost and the date will be treaded as DateTimeKind.Local - Utc formatted input will result in DateTimeKind.Utc output. Any input without TZ data will be set DateTimeKind.Unspecified - This will take precedence over other flags like AlwaysUseUtc - JsConfig.DateHandler = DateHandler.ISO8601 should be used when set true for consistent de/serialization. - - - - - Gets or sets a value indicating if the framework should always assume is in UTC format if Kind is Unspecified. - - - - - Gets or sets whether we should append the Utc offset when we serialize Utc dates. Defaults to no. - Only supported for when the JsConfig.DateHandler == JsonDateHandler.TimestampOffset - - - - - Gets or sets a value indicating if unicode symbols should be serialized as "\uXXXX". - - - - - Gets or sets a value indicating if HTML entity chars [> < & = '] should be escaped as "\uXXXX". - - - - - Gets or sets a value indicating if the framework should call an error handler when - an exception happens during the deserialization. - - Parameters have following meaning in order: deserialized entity, property name, parsed value, property type, caught exception. - - - - If set to true, Interface types will be prefered over concrete types when serializing. - - - - - If set to true, Interface types will be prefered over concrete types when serializing. - - - - - Sets the maximum depth to avoid circular dependencies - - - - - Set this to enable your own type construction provider. - This is helpful for integration with IoC containers where you need to call the container constructor. - Return null if you don't know how to construct the type and the parameterless constructor will be used. - - - - - Always emit type info for this type. Takes precedence over ExcludeTypeInfo - - - - - Never emit type info for this type - - - - - if the is configured - to take advantage of specification, - to support user-friendly serialized formats, ie emitting camelCasing for JSON - and parsing member names and enum values in a case-insensitive manner. - - - - - Define custom serialization fn for BCL Structs - - - - - Opt-in flag to set some Value Types to be treated as a Ref Type - - - - - Whether there is a fn (raw or otherwise) - - - - - Define custom raw serialization fn - - - - - Define custom serialization hook - - - - - Define custom after serialization hook - - - - - Define custom deserialization fn for BCL Structs - - - - - Define custom raw deserialization fn for objects - - - - - Exclude specific properties of this type from being serialized - - - - - The property names on target types must match property names in the JSON source - - - - - The property names on target types may not match the property names in the JSON source - - - - - Uses the xsd format like PT15H10M20S - - - - - Uses the standard .net ToString method of the TimeSpan class - - - - - Get JSON string value converted to T - - - - - Get JSON string value - - - - - Get JSON string value - - - - - Get unescaped string value - - - - - Get unescaped string value - - - - - Write JSON Array, Object, bool or number values as raw string - - - - - Creates an instance of a Type from a string value - - - - - Parses the specified value. - - The value. - - - - - Shortcut escape when we're sure value doesn't contain any escaped chars - - - - - - - Given a character as utf32, returns the equivalent string provided that the character - is legal json. - - - - - - - Micro-optimization keep pre-built char arrays saving a .ToCharArray() + function call (see .net implementation of .Write(string)) - - - - - Searches the string for one or more non-printable characters. - - The string to search. - - True if there are any characters that require escaping. False if the value can be written verbatim. - - Micro optimizations: since quote and backslash are the only printable characters requiring escaping, removed previous optimization - (using flags instead of value.IndexOfAny(EscapeChars)) in favor of two equality operations saving both memory and CPU time. - Also slightly reduced code size by re-arranging conditions. - TODO: Possible Linq-only solution requires profiling: return value.Any(c => !c.IsPrintable() || c == QuoteChar || c == EscapeChar); - - - - - Implement the serializer using a more static approach - - - - - - Implement the serializer using a more static approach - - - - - - Pretty Thread-Safe cache class from: - http://code.google.com/p/dapper-dot-net/source/browse/Dapper/SqlMapper.cs - - This is a micro-cache; suitable when the number of terms is controllable (a few hundred, for example), - and strictly append-only; you cannot change existing values. All key matches are on **REFERENCE** - equality. The type is fully thread-safe. - - - - - Generic implementation of object pooling pattern with predefined pool size limit. The main - purpose is that limited number of frequently used objects can be kept in the pool for - further recycling. - - Notes: - 1) it is not the goal to keep all returned objects. Pool is not meant for storage. If there - is no space in the pool, extra returned objects will be dropped. - - 2) it is implied that if object was obtained from a pool, the caller will return it back in - a relatively short time. Keeping checked out objects for long durations is ok, but - reduces usefulness of pooling. Just new up your own. - - Not returning objects to the pool in not detrimental to the pool's work, but is a bad practice. - Rationale: - If there is no intent for reusing the object, do not use pool - just use "new". - - - - - Not using System.Func{T} because this file is linked into the (debugger) Formatter, - which does not have that type (since it compiles against .NET 2.0). - - - - - Produces an instance. - - - Search strategy is a simple linear probing which is chosen for it cache-friendliness. - Note that Free will try to store recycled objects close to the start thus statistically - reducing how far we will typically search. - - - - - Returns objects to the pool. - - - Search strategy is a simple linear probing which is chosen for it cache-friendliness. - Note that Free will try to store recycled objects close to the start thus statistically - reducing how far we will typically search in Allocate. - - - - - Removes an object from leak tracking. - - This is called when an object is returned to the pool. It may also be explicitly - called if an object allocated from the pool is intentionally not being returned - to the pool. This can be of use with pooled arrays if the consumer wants to - return a larger array to the pool than was originally allocated. - - - - - this is RAII object to automatically release pooled object when its owning pool - - - - - Shared object pool for roslyn - - Use this shared pool if only concern is reducing object allocations. - if perf of an object pool itself is also a concern, use ObjectPool directly. - - For example, if you want to create a million of small objects within a second, - use the ObjectPool directly. it should have much less overhead than using this. - - - - - pool that uses default constructor with 100 elements pooled - - - - - pool that uses default constructor with 20 elements pooled - - - - - pool that uses string as key with StringComparer.OrdinalIgnoreCase as key comparer - - - - - pool that uses string as element with StringComparer.OrdinalIgnoreCase as element comparer - - - - - pool that uses string as element with StringComparer.Ordinal as element comparer - - - - - Used to reduce the # of temporary byte[]s created to satisfy serialization and - other I/O requests - - - - pooled memory : 4K * 512 = 4MB - - - - Manages pools of RecyclableMemoryStream objects. - - - There are two pools managed in here. The small pool contains same-sized buffers that are handed to streams - as they write more data. - - For scenarios that need to call GetBuffer(), the large pool contains buffers of various sizes, all - multiples of LargeBufferMultiple (1 MB by default). They are split by size to avoid overly-wasteful buffer - usage. There should be far fewer 8 MB buffers than 1 MB buffers, for example. - - - - - Generic delegate for handling events without any arguments. - - - - - Delegate for handling large buffer discard reports. - - Reason the buffer was discarded. - - - - Delegate for handling reports of stream size when streams are allocated - - Bytes allocated. - - - - Delegate for handling periodic reporting of memory use statistics. - - Bytes currently in use in the small pool. - Bytes currently free in the small pool. - Bytes currently in use in the large pool. - Bytes currently free in the large pool. - - - - pools[0] = 1x largeBufferMultiple buffers - pools[1] = 2x largeBufferMultiple buffers - etc., up to maximumBufferSize - - - - - Initializes the memory manager with the default block/buffer specifications. - - - - - Initializes the memory manager with the given block requiredSize. - - Size of each block that is pooled. Must be > 0. - Each large buffer will be a multiple of this value. - Buffers larger than this are not pooled - blockSize is not a positive number, or largeBufferMultiple is not a positive number, or maximumBufferSize is less than blockSize. - maximumBufferSize is not a multiple of largeBufferMultiple - - - - The size of each block. It must be set at creation and cannot be changed. - - - - - All buffers are multiples of this number. It must be set at creation and cannot be changed. - - - - - Gets or sets the maximum buffer size. - - Any buffer that is returned to the pool that is larger than this will be - discarded and garbage collected. - - - - Number of bytes in small pool not currently in use - - - - - Number of bytes currently in use by stream from the small pool - - - - - Number of bytes in large pool not currently in use - - - - - Number of bytes currently in use by streams from the large pool - - - - - How many blocks are in the small pool - - - - - How many buffers are in the large pool - - - - - How many bytes of small free blocks to allow before we start dropping - those returned to us. - - - - - How many bytes of large free buffers to allow before we start dropping - those returned to us. - - - - - Maximum stream capacity in bytes. Attempts to set a larger capacity will - result in an exception. - - A value of 0 indicates no limit. - - - - Whether to save callstacks for stream allocations. This can help in debugging. - It should NEVER be turned on generally in production. - - - - - Whether dirty buffers can be immediately returned to the buffer pool. E.g. when GetBuffer() is called on - a stream and creates a single large buffer, if this setting is enabled, the other blocks will be returned - to the buffer pool immediately. - Note when enabling this setting that the user is responsible for ensuring that any buffer previously - retrieved from a stream which is subsequently modified is not used after modification (as it may no longer - be valid). - - - - - Removes and returns a single block from the pool. - - A byte[] array - - - - Returns a buffer of arbitrary size from the large buffer pool. This buffer - will be at least the requiredSize and always be a multiple of largeBufferMultiple. - - The minimum length of the buffer - The tag of the stream returning this buffer, for logging if necessary. - A buffer of at least the required size. - - - - Returns the buffer to the large pool - - The buffer to return. - The tag of the stream returning this buffer, for logging if necessary. - buffer is null - buffer.Length is not a multiple of LargeBufferMultiple (it did not originate from this pool) - - - - Returns the blocks to the pool - - Collection of blocks to return to the pool - The tag of the stream returning these blocks, for logging if necessary. - blocks is null - blocks contains buffers that are the wrong size (or null) for this memory manager - - - - Retrieve a new MemoryStream object with no tag and a default initial capacity. - - A MemoryStream. - - - - Retrieve a new MemoryStream object with the given tag and a default initial capacity. - - A tag which can be used to track the source of the stream. - A MemoryStream. - - - - Retrieve a new MemoryStream object with the given tag and at least the given capacity. - - A tag which can be used to track the source of the stream. - The minimum desired capacity for the stream. - A MemoryStream. - - - - Retrieve a new MemoryStream object with the given tag and at least the given capacity, possibly using - a single continugous underlying buffer. - - Retrieving a MemoryStream which provides a single contiguous buffer can be useful in situations - where the initial size is known and it is desirable to avoid copying data between the smaller underlying - buffers to a single large one. This is most helpful when you know that you will always call GetBuffer - on the underlying stream. - A tag which can be used to track the source of the stream. - The minimum desired capacity for the stream. - Whether to attempt to use a single contiguous buffer. - A MemoryStream. - - - - Retrieve a new MemoryStream object with the given tag and with contents copied from the provided - buffer. The provided buffer is not wrapped or used after construction. - - The new stream's position is set to the beginning of the stream when returned. - A tag which can be used to track the source of the stream. - The byte buffer to copy data from. - The offset from the start of the buffer to copy from. - The number of bytes to copy from the buffer. - A MemoryStream. - - - - Triggered when a new block is created. - - - - - Triggered when a new block is created. - - - - - Triggered when a new large buffer is created. - - - - - Triggered when a new stream is created. - - - - - Triggered when a stream is disposed. - - - - - Triggered when a stream is finalized. - - - - - Triggered when a stream is finalized. - - - - - Triggered when a user converts a stream to array. - - - - - Triggered when a large buffer is discarded, along with the reason for the discard. - - - - - Periodically triggered to report usage statistics. - - - - - MemoryStream implementation that deals with pooling and managing memory streams which use potentially large - buffers. - - - This class works in tandem with the RecylableMemoryStreamManager to supply MemoryStream - objects to callers, while avoiding these specific problems: - 1. LOH allocations - since all large buffers are pooled, they will never incur a Gen2 GC - 2. Memory waste - A standard memory stream doubles its size when it runs out of room. This - leads to continual memory growth as each stream approaches the maximum allowed size. - 3. Memory copying - Each time a MemoryStream grows, all the bytes are copied into new buffers. - This implementation only copies the bytes when GetBuffer is called. - 4. Memory fragmentation - By using homogeneous buffer sizes, it ensures that blocks of memory - can be easily reused. - - The stream is implemented on top of a series of uniformly-sized blocks. As the stream's length grows, - additional blocks are retrieved from the memory manager. It is these blocks that are pooled, not the stream - object itself. - - The biggest wrinkle in this implementation is when GetBuffer() is called. This requires a single - contiguous buffer. If only a single block is in use, then that block is returned. If multiple blocks - are in use, we retrieve a larger buffer from the memory manager. These large buffers are also pooled, - split by size--they are multiples of a chunk size (1 MB by default). - - Once a large buffer is assigned to the stream the blocks are NEVER again used for this stream. All operations take place on the - large buffer. The large buffer can be replaced by a larger buffer from the pool as needed. All blocks and large buffers - are maintained in the stream until the stream is disposed (unless AggressiveBufferReturn is enabled in the stream manager). - - - - - - All of these blocks must be the same size - - - - - This is only set by GetBuffer() if the necessary buffer is larger than a single block size, or on - construction if the caller immediately requests a single large buffer. - - If this field is non-null, it contains the concatenation of the bytes found in the individual - blocks. Once it is created, this (or a larger) largeBuffer will be used for the life of the stream. - - - - - This list is used to store buffers once they're replaced by something larger. - This is for the cases where you have users of this class that may hold onto the buffers longer - than they should and you want to prevent race conditions which could corrupt the data. - - - - - Unique identifier for this stream across it's entire lifetime - - Object has been disposed - - - - A temporary identifier for the current usage of this stream. - - Object has been disposed - - - - Gets the memory manager being used by this stream. - - Object has been disposed - - - - Callstack of the constructor. It is only set if MemoryManager.GenerateCallStacks is true, - which should only be in debugging situations. - - - - - Callstack of the Dispose call. It is only set if MemoryManager.GenerateCallStacks is true, - which should only be in debugging situations. - - - - - This buffer exists so that WriteByte can forward all of its calls to Write - without creating a new byte[] buffer on every call. - - - - - Allocate a new RecyclableMemoryStream object. - - The memory manager - - - - Allocate a new RecyclableMemoryStream object - - The memory manager - A string identifying this stream for logging and debugging purposes - - - - Allocate a new RecyclableMemoryStream object - - The memory manager - A string identifying this stream for logging and debugging purposes - The initial requested size to prevent future allocations - - - - Allocate a new RecyclableMemoryStream object - - The memory manager - A string identifying this stream for logging and debugging purposes - The initial requested size to prevent future allocations - An initial buffer to use. This buffer will be owned by the stream and returned to the memory manager upon Dispose. - - - - Returns the memory used by this stream back to the pool. - - Whether we're disposing (true), or being called by the finalizer (false) - This method is not thread safe and it may not be called more than once. - - - - Equivalent to Dispose - - - - - Gets or sets the capacity - - Capacity is always in multiples of the memory manager's block size, unless - the large buffer is in use. Capacity never decreases during a stream's lifetime. - Explicitly setting the capacity to a lower value than the current value will have no effect. - This is because the buffers are all pooled by chunks and there's little reason to - allow stream truncation. - - Object has been disposed - - - - Gets the number of bytes written to this stream. - - Object has been disposed - - - - Gets the current position in the stream - - Object has been disposed - - - - Whether the stream can currently read - - - - - Whether the stream can currently seek - - - - - Always false - - - - - Whether the stream can currently write - - - - - Returns a single buffer containing the contents of the stream. - The buffer may be longer than the stream length. - - A byte[] buffer - IMPORTANT: Doing a Write() after calling GetBuffer() invalidates the buffer. The old buffer is held onto - until Dispose is called, but the next time GetBuffer() is called, a new buffer from the pool will be required. - Object has been disposed - - - - Returns a new array with a copy of the buffer's contents. You should almost certainly be using GetBuffer combined with the Length to - access the bytes in this stream. Calling ToArray will destroy the benefits of pooled buffers, but it is included - for the sake of completeness. - - Object has been disposed - - - - Reads from the current position into the provided buffer - - Destination buffer - Offset into buffer at which to start placing the read bytes. - Number of bytes to read. - The number of bytes read - buffer is null - offset or count is less than 0 - offset subtracted from the buffer length is less than count - Object has been disposed - - - - Writes the buffer to the stream - - Source buffer - Start position - Number of bytes to write - buffer is null - offset or count is negative - buffer.Length - offset is not less than count - Object has been disposed - - - - Returns a useful string for debugging. This should not normally be called in actual production code. - - - - - Writes a single byte to the current position in the stream. - - byte value to write - Object has been disposed - - - - Reads a single byte from the current position in the stream. - - The byte at the current position, or -1 if the position is at the end of the stream. - Object has been disposed - - - - Sets the length of the stream - - value is negative or larger than MaxStreamLength - Object has been disposed - - - - Sets the position to the offset from the seek location - - How many bytes to move - From where - The new position - Object has been disposed - offset is larger than MaxStreamLength - Invalid seek origin - Attempt to set negative position - - - - Synchronously writes this stream's bytes to the parameter stream. - - Destination stream - Important: This does a synchronous write, which may not be desired in some situations - - - - Release the large buffer (either stores it for eventual release or returns it immediately). - - - - - Allow Type to be deserialized into late-bould object Types using __type info - - - - - Allow Type to be deserialized into late-bould object Types using __type info - - - - - Reusable StringBuilder ThreadStatic Cache - - - - - Alternative Reusable StringBuilder ThreadStatic Cache - - - - - Reusable StringWriter ThreadStatic Cache - - - - - Alternative Reusable StringWriter ThreadStatic Cache - - - - - A class to allow the conversion of doubles to string representations of - their exact decimal values. The implementation aims for readability over - efficiency. - - Courtesy of @JonSkeet - http://www.yoda.arachsys.com/csharp/DoubleConverter.cs - - - - - - - - How many digits are *after* the decimal point - - - - - Constructs an arbitrary decimal expansion from the given long. - The long must not be negative. - - - - - Multiplies the current expansion by the given amount, which should - only be 2 or 5. - - - - - Shifts the decimal point; a negative value makes - the decimal expansion bigger (as fewer digits come after the - decimal place) and a positive value makes the decimal - expansion smaller. - - - - - Removes leading/trailing zeroes from the expansion. - - - - - Converts the value to a proper decimal string representation. - - - - - Creates an instance of a Type from a string value - - - - - Determines whether the specified type is convertible from string. - - The type. - - true if the specified type is convertible from string; otherwise, false. - - - - - Parses the specified value. - - The value. - - - - - Parses the specified type. - - The type. - The value. - - - - - Useful extension method to get the Dictionary[string,string] representation of any POCO type. - - - - - - Recursively prints the contents of any POCO object in a human-friendly, readable format - - - - - - Print Dump to Console.WriteLine - - - - - Print string.Format to Console.WriteLine - - - - - Parses the specified value. - - The value. - - - - - Populate an object with Example data. - - - - - - - Populates the object with example data. - - - Tracks how deeply nested we are - - - - - Public Code API to register commercial license for ServiceStack. - - - - - Internal Utilities to verify licensing - - - - - Maps the path of a file in the context of a VS project in a Console App - - the relative path - the absolute path - Assumes static content is two directories above the /bin/ directory, - eg. in a unit test scenario the assembly would be in /bin/Debug/. - - - - Maps the path of a file in the context of a VS 2017+ multi-platform project in a Console App - - the relative path - the absolute path - Assumes static content is two directories above the /bin/ directory, - eg. in a unit test scenario the assembly would be in /bin/Debug/net45 - - - - Maps the path of a file in the bin\ folder of a self-hosted scenario - - the relative path - the absolute path - Assumes static content is copied to /bin/ folder with the assemblies - - - - Maps the path of a file in an ASP.NET hosted scenario - - the relative path - the absolute path - Assumes static content is in the parent folder of the /bin/ directory - - - - Add a Property attribute at runtime. - Not threadsafe, should only add attributes on Startup. - - - - - Add a Property attribute at runtime. - Not threadsafe, should only add attributes on Startup. - - - - - Implement the serializer using a more static approach - - - - - - Creates a new instance of type. - First looks at JsConfig.ModelFactory before falling back to CreateInstance - - - - - Creates a new instance of type. - First looks at JsConfig.ModelFactory before falling back to CreateInstance - - - - - Creates a new instance from the default constructor of type - - - - - @jonskeet: Collection of utility methods which operate on streams. - r285, February 26th 2009: http://www.yoda.arachsys.com/csharp/miscutil/ - - - - - Reads the given stream up to the end, returning the data as a byte - array. - - - - - Reads the given stream up to the end, returning the data as a byte - array, using the given buffer size. - - - - - Reads the given stream up to the end, returning the data as a byte - array, using the given buffer for transferring data. Note that the - current contents of the buffer is ignored, so the buffer needn't - be cleared beforehand. - - - - - Copies all the data from one stream into another. - - - - - Copies all the data from one stream into another, using a buffer - of the given size. - - - - - Copies all the data from one stream into another, using the given - buffer for transferring data. Note that the current contents of - the buffer is ignored, so the buffer needn't be cleared beforehand. - - - - - Reads exactly the given number of bytes from the specified stream. - If the end of the stream is reached before the specified amount - of data is read, an exception is thrown. - - - - - Reads into a buffer, filling it completely. - - - - - Reads exactly the given number of bytes from the specified stream, - into the given buffer, starting at position 0 of the array. - - - - - Reads exactly the given number of bytes from the specified stream, - into the given buffer, starting at position 0 of the array. - - - - - Same as ReadExactly, but without the argument checks. - - - - - Converts from base: 0 - 62 - - The source. - From. - To. - - - - - Skip the encoding process for 'safe strings' - - - - - - diff --git a/lib/netstandard2.0/ServiceStack.dll b/lib/netstandard2.0/ServiceStack.dll deleted file mode 100644 index 5dd2a8a..0000000 Binary files a/lib/netstandard2.0/ServiceStack.dll and /dev/null differ diff --git a/lib/netstandard2.0/ServiceStack.xml b/lib/netstandard2.0/ServiceStack.xml deleted file mode 100644 index 2adf3ed..0000000 --- a/lib/netstandard2.0/ServiceStack.xml +++ /dev/null @@ -1,6933 +0,0 @@ - - - - ServiceStack - - - - - The FilePath used in Virtual File Sources - - - - - Creates an IRequest from IHttpContextAccessor if it's been registered as a singleton - - - - - Get an IAppHost container. - Note: Registering dependencies should only be done during setup/configuration - stage and remain immutable there after for thread-safety. - - - - - - - Indicates that the request dto, which is associated with this attribute, - requires authentication. - - - - - Restrict authentication to a specific . - For example, if this attribute should only permit access - if the user is authenticated with , - you should set this property to . - - - - - Redirect the client to a specific URL if authentication failed. - If this property is null, simply `401 Unauthorized` is returned. - - - - - Enable the authentication feature and configure the AuthService. - - - - - Whether to Create Digest Auth MD5 Hash when Creating/Updating Users. - Defaults to only creating Digest Auth when DigestAuthProvider is registered. - - - - - Should UserName or Emails be saved in AuthRepository in LowerCase - - - - - The Interface Auth Repositories need to implement to support API Keys - - - - - The POCO Table used to persist API Keys - - - - - Enable access to protected Services using API Keys - - - - - Modify the registration of GetApiKeys and RegenerateApiKeys Services - - - - - How much entropy should the generated keys have. (default 24) - - - - - Generate different keys for different environments. (default live,test) - - - - - Different types of Keys each user can have. (default secret) - - - - - Whether to automatically expire keys. (default no expiry) - - - - - Automatically create the ApiKey Table for AuthRepositories which need it. (default true) - - - - - Whether to only allow access via API Key from a secure connection. (default true) - - - - - Change how API Key is generated - - - - - Run custom filter after API Key is created - - - - - Cache the User Session so it can be reused between subsequent API Key Requests - - - - - Whether to allow API Keys in 'apikey' QueryString or FormData - - - - - Inject logic into existing services by introspecting the request and injecting your own - validation logic. Exceptions thrown will have the same behaviour as if the service threw it. - - If a non-null object is returned the request will short-circuit and return that response. - - The instance of the service - GET,POST,PUT,DELETE - - Response DTO; non-null will short-circuit execution and return that response - - - - Get AuthProviders Registered in AuthFeature Plugin. - - specific provider, or null for all providers - - - - - - Get specific AuthProvider - - - - - - - Public API entry point to authenticate via code - - - null; if already autenticated otherwise a populated instance of AuthResponse - - - - The specified may change as a side-effect of this method. If - subsequent code relies on current data be sure to reload - the session istance via . - - - - - Conveneint base class with empty virtual methods so subclasses only need to override the hooks they need. - - - - - Allows specifying a global fallback config that if exists is formatted with the Provider as the first arg. - E.g. this appSetting with the TwitterAuthProvider: - oauth.CallbackUrl="http://localhost:11001/auth/{0}" - Would result in: - oauth.CallbackUrl="http://localhost:11001/auth/twitter" - - - - - - Remove the Users Session - - - - - - - - Create a Facebook App at: https://developers.facebook.com/apps - The Callback URL for your app should match the CallbackUrl provided. - - - - - Create an App at: https://github.com/settings/applications/new - The Callback URL for your app should match the CallbackUrl provided. - - - - - Download Yammer User Info given its ID. - - - The Yammer User ID. - - - The User info in JSON format. - - - - Yammer provides a method to retrieve current user information via - "https://www.yammer.com/api/v1/users/current.json". - - - However, to ensure consistency with the rest of the Auth codebase, - the explicit URL will be used, where [:id] denotes the User ID: - "https://www.yammer.com/api/v1/users/[:id].json" - - - Refer to: https://developer.yammer.com/restapi/ for full documentation. - - - - - - Remove the Users Session - - - - - - - - The entry point for all AuthProvider providers. Runs inside the AuthService so exceptions are treated normally. - Overridable so you can provide your own Auth implementation. - - - - - Determine if the current session is already authenticated with this AuthProvider - - - - - Fired when a new Session is created - - - - - - Fired before Session is resolved - - - - - Override with Custom Validation logic to Assert if User is allowed to Authenticate. - Returning a non-null response invalidates Authentication with IHttpResult response returned to client. - - - - - Thread-safe In memory UserAuth data store so it can be used without a dependency on Redis. - - - - - Used to Issue and process JWT Tokens and registers ConvertSessionToToken Service to convert Sessions to JWT Tokens - - - - - Whether to populate the Bearer Token in the AuthenticateResponse - - - - - Enable access to protected Services using JWT Tokens - - - - - Different HMAC Algorithms supported - - - - - Different RSA Signing Algorithms supported - - - - - Whether to only allow access via API Key from a secure connection. (default true) - - - - - Run custom filter after JWT Header is created - - - - - Run custom filter after JWT Payload is created - - - - - Run custom filter after session is restored from a JWT Token - - - - - Whether to encrypt JWE Payload (default false). - Uses RSA-OAEP for Key Encryption and AES/128/CBC HMAC SHA256 for Conent Encryption - - - - - Which Hash Algorithm should be used to sign the JWT Token. (default HS256) - - - - - Whether to only allow processing of JWT Tokens using the configured HashAlgorithm. (default true) - - - - - The Issuer to embed in the token. (default ssjwt) - - - - - The Audience to embed in the token. (default null) - - - - - Embed Multiple Audiences in the token. (default none) - A JWT is valid if it contains ANY audience in this List - - - - - What Id to use to identify the Key used to sign the token. (default First 3 chars of Base64 Key) - - - - - The AuthKey used to sign the JWT Token - - - - - Allow verification using multiple Auth keys - - - - - The RSA Private Key used to Sign the JWT Token when RSA is used - - - - - Convenient overload to intialize the Private Key via exported XML - - - - - The RSA Public Key used to Verify the JWT Token when RSA is used - - - - - Convenient overload to intialize the Public Key via exported XML - - - - - Allow verification using multiple public keys - - - - - How long should JWT Tokens be valid for. (default 14 days) - - - - - How long should JWT Refresh Tokens be valid for. (default 365 days) - - - - - Convenient overload to initialize ExpireTokensIn with an Integer - - - - - Allow custom logic to invalidate JWT Tokens - - - - - Allow custom logic to invalidate Refresh Tokens - - - - - Whether to invalidate all JWT Tokens issued before a specified date. - - - - - Modify the registration of ConvertSessionToToken Service - - - - - Allow JWT in ?ss-tok=jwt QueryString. (default false) - - - - - Allow JWT in ss-tok=jwt HTML POST FormData. (default false) - - - - - Whether to automatically remove expired or invalid cookies - - - - - Whether to also Include Token in ConvertSessionToTokenResponse - - - - - Return token payload which is both verified and still valid - - - - - Return token payload which has been verified to be created using the configured encryption key. - - - - - The entry point for all AuthProvider providers. Runs inside the AuthService so exceptions are treated normally. - Overridable so you can provide your own Auth implementation. - - - - - - - - - Sets the CallbackUrl and session.ReferrerUrl if not set and initializes the session tokens for this AuthProvider - - - - - - - - - Create Odnoklassniki App at: http://www.odnoklassniki.ru/devaccess - The Callback URL for your app should match the CallbackUrl provided. - - NB: They claim they use OAuth 2.0, but they in fact don't. - http://apiok.ru/wiki/display/api/Authorization+OAuth+2.0 - - - - - Allow utilizing an alternative PBKDF2 implementation. - - - - - The PBKDF2 strategy PasswordHasher implementation that's used for hashing PBKDF2 passwords. - - - - - The Password Hasher provider used to hash users passwords which uses the same algorithm used by ASP.NET Identity v3: - PBKDF2 with HMAC-SHA256, 128-bit salt, 256-bit subkey, 10000 iterations. - - - - - Gets the number of iterations used when hashing passwords using PBKDF2. Default is 10,000. - - - - - The number of iterations used when hashing passwords using PBKDF2. Default is 10,000. - - - - - The Format Version specifier for this PasswordHasher embedded as the first byte in password hashes. - - - - - Returns a hashed representation of the supplied for the specified . - - The user whose password is to be hashed. - The password to hash. - A hashed representation of the supplied for the specified . - - - - Update an existing registraiton - - - - - Create new Registration - - - - - Logic to update UserAuth from Registration info, not enabled on PUT because of security. - - - - - Thank you Martijn - http://www.dijksterhuis.org/creating-salted-hash-values-in-c/ - - Stronger/Slower Alternative: - https://github.com/defuse/password-hashing/blob/master/PasswordStorage.cs - - - - - Create an app at https://dev.twitter.com/apps to get your ConsumerKey and ConsumerSecret for your app. - The Callback URL for your app should match the CallbackUrl provided. - - - - - Creates the required missing tables or DB schema - - - - - Create VK App at: http://vk.com/editapp?act=create - The Callback URL for your app should match the CallbackUrl provided. - - - - - If previous attemts failes, the subsequential calls - build up code value like "code1,code2,code3" - so we need the last one only - - - - - - - The ServiceStack Yammer OAuth provider. - - - - This provider is loosely based on the existing ServiceStack's Facebook OAuth provider. - - - For the full info on Yammer's OAuth2 authentication flow, refer to: - https://developer.yammer.com/authentication/#a-oauth2 - - - Note: Add these to your application / web config settings under appSettings and replace - values as appropriate. - - - - - - - - - ]]> - - - - - - The OAuth provider name / identifier. - - - - - Initializes a new instance of the class. - - - The application settings (in web.config). - - - - - Gets or sets the Yammer OAuth client id. - - - - - Gets or sets the Yammer OAuth client secret. - - - - - Gets or sets the Yammer OAuth pre-auth url. - - - - - Authenticate against Yammer OAuth endpoint. - - - The auth service. - - - The session. - - - The request. - - - The . - - - - - Load the UserAuth info into the session. - - - The User session. - - - The OAuth tokens. - - - The auth info. - - - - - Load the UserOAuth info into the session. - - - The auth session. - - - The OAuth tokens. - - - - - The Yammer User's email addresses. - - - - - Gets or sets the email address type (e.g. primary). - - - - - Gets or sets the email address. - - - - - Create Yandex App at: https://oauth.yandex.ru/client/new - The Callback URL for your app should match the CallbackUrl provided. - - - - - The BaseUrl of the ServiceStack instance (inferred) - - - - - Name of the ServiceStack Instance (inferred) - - - - - Textual description of the AutoQuery Services (shown in Home Services list) - - - - - Icon for this ServiceStack Instance (shown in Home Services list) - - - - - The different Content Type formats to display - - - - - The configured MaxLimit for AutoQuery - - - - - Whether to publish this Service to the public Services registry - - - - - Only show AutoQuery Services attributed with [AutoQueryViewer] - - - - - List of different Search Filters available - - - - - The Column which should be selected by default - - - - - The Query Type filter which should be selected by default - - - - - The search text which should be populated by default - - - - - Link to your website users can click to find out more about you - - - - - A custom logo or image that users can click on to visit your site - - - - - The default color of text - - - - - The default color of links - - - - - The default background color of each screen - - - - - The default background image of each screen anchored to the bottom left - - - - - The default icon for each of your AutoQuery Services - - - - - Returns true if the User Is Authenticated - - - - - How many queries are available to this user - - - - - Removes items from cache that have keys matching the specified wildcard pattern - - Cache client - The wildcard, where "*" means any sequence of characters and "?" means any single character. - - - - Removes items from the cache based on the specified regular expression pattern - - Cache client - Regular expression pattern to search cache keys - - - - The CacheKey to be use store the response against - - - - - The base Cache Key used to cache the Service response - - - - - Additional CacheKey Modifiers used to cache different outputs for a single Service Response - - - - - How long to cache the resource for. Fallsback to HttpCacheFeature.DefaultExpiresIn - - - - - The unique ETag returned for this resource clients can use to determine whether their local version has changed - - - - - The Age for this resource returned to clients - - - - - The MaxAge returned to clients to indicate how long they can use their local cache before re-validating - - - - - The LastModified date to use for the Cache and HTTP Header - - - - - Cache-Control HTTP Headers - - - - - Create unique cache per user - - - - - Use HostContext.LocalCache or HostContext.Cache - - - - - Skip compression for this Cache Result - - - - - Cache the Response of a Service - - - - - Cache expiry in seconds - - - - - MaxAge in seconds - - - - - Cache-Control HTTP Headers - - - - - Vary cache per user - - - - - Vary cache for users in these roles - - - - - Vary cache for different HTTP Headers - - - - - Use HostContext.LocalCache or HostContext.Cache - - - - - Skip compression for this Cache Result - - - - - Decorates the ICacheClient (and its sibblings) prefixing every key with the given prefix - - Usefull for multi-tenant environments - - - - - Decorates the ICacheClient (and its sibblings) prefixing every key with the given prefix - - Usefull for multi-tenant environments - - - - - Create new instance of CacheEntry. - - - - UTC time at which CacheEntry expires. - - - - Stores The value with key only if such key doesn't exist at the server yet. - - - - - Adds or replaces the value with key. - - - - - Adds or replaces the value with key. - - - - - Replace the value with specified key if it exists. - - - - - Add the value with key to the cache, set to never expire. - - - - - Add or replace the value with key to the cache, set to never expire. - - - - - Replace the value with key in the cache, set to never expire. - - - - - Add the value with key to the cache, set to expire at specified DateTime. - - This method examines the DateTimeKind of expiresAt to determine if conversion to - universal time is needed. The version of Add that takes a TimeSpan expiration is faster - than using this method with a DateTime of Kind other than Utc, and is not affected by - ambiguous local time during daylight savings/standard time transition. - - - - Add or replace the value with key to the cache, set to expire at specified DateTime. - - This method examines the DateTimeKind of expiresAt to determine if conversion to - universal time is needed. The version of Set that takes a TimeSpan expiration is faster - than using this method with a DateTime of Kind other than Utc, and is not affected by - ambiguous local time during daylight savings/standard time transition. - - - - Replace the value with key in the cache, set to expire at specified DateTime. - - This method examines the DateTimeKind of expiresAt to determine if conversion to - universal time is needed. The version of Replace that takes a TimeSpan expiration is faster - than using this method with a DateTime of Kind other than Utc, and is not affected by - ambiguous local time during daylight savings/standard time transition. - - - - Add the value with key to the cache, set to expire after specified TimeSpan. - - - - - Add or replace the value with key to the cache, set to expire after specified TimeSpan. - - - - - Replace the value with key in the cache, set to expire after specified TimeSpan. - - - - - More familiar name for the new crowd. - - - - - The tier lets you specify a retrieving a setting with the tier prefix first before falling back to the original key. - E.g a tier of 'Live' looks for 'Live.{Key}' or if not found falls back to '{Key}'. - - - - - Returns string if exists, otherwise null - - - - - - - Would've preferred to use [assembly: ContractNamespace] attribute but it is not supported in Mono - - - - - Gets the nullable app setting. - - - - - Gets the app setting. - - - - - Returns AppSetting[key] if exists otherwise defaultValue - - - - - Returns AppSetting[key] if exists otherwise defaultValue, for non-string values - - - - - Gets the connection string. - - - - - Gets the list from app setting. - - - - - Gets the dictionary from app setting. - - - - - Provides a common interface for Settings providers such as - ConfigurationManager or Azure's RoleEnvironment. The only - requirement is that if the implementation cannot find the - specified key, the return value must be null - - The key for the setting - The string value of the specified key, or null if the key - was invalid - - - - Return all keys in this configuration source. - - - - - - Represents a builder for the class. - - - - - Initializes a new instance of the class with a specified . - - The of the . - - - - Adds an that reads configuration values from the Web.config file. - - The . - - - - Adds an that reads configuration values from the Web.config file. - - The tier of the . - The . - - - - Adds a that reads configuration values from a dictionary. - - The dictionary of settings to add. - The . - - - - Adds an that reads configuration values from environmental variables. - - The . - - - - Adds an that reads configuration values from environmental variables. - - The tier of the . - The . - - - - Adds an that reads configuration values from a text file at . - - The path of the text file. - The . - - - - Adds an that reads configuration values from a text file at with a specified . - - The path of the text file. - The delimeter fo the text file. - The . - - - - Adds an that reads configuration values from a text file at with a specified . - - The path of the text file. - The delimeter fo the text file. - The tier of the . - The . - - - - Builds an . - - An . - - - - Wrappers for improving consistency with .NET Core Conventions - - - - - Registers the type in the IoC container and - adds auto-wiring to the specified type. - - - - - - - Registers a named instance of type in the IoC container and - adds auto-wiring to the specified type. - - - - - - - Registers the type in the IoC container and - adds auto-wiring to the specified type. - The reuse scope is set to none (transient). - - - - - - Registers the type in the IoC container and - adds auto-wiring to the specified type. - The reuse scope is set to none (transient). - - - - - - Registers the types in the IoC container and - adds auto-wiring to the specified types. - The reuse scope is set to none (transient). - - - - - - Register a singleton instance as a runtime type - - - - - Plugin adds support for Cross-origin resource sharing (CORS, see http://www.w3.org/TR/access-control/). - CORS allows to access resources from different domain which usually forbidden by origin policy. - - - - - Represents a default constructor with Allow Origin equals to "*", Allowed GET, POST, PUT, DELETE, OPTIONS request and allowed "Content-Type" header. - - - - - Lets you Register new Services and the optional restPaths will be registered against - this default Request Type - - - - - Change the default HTML view or template used for the HTML response of this service - - - - - Tracks created objects. - Used by to track created IDisposable instances. - These instances are tracked and disposed at the end of a request. - - - - - Adds disposable to the tracker - - - - - Dispose all disposables in the tracker. - If disposable is still alive alose .Release() is called to release the object. - - - - - Naming convention for the ResponseStatus property name on the response DTO - - - - - Create an instance of the service response dto type and inject it with the supplied responseStatus - - - - - - - - - - - - - - - - - Override to provide additional/less context about the Service Exception. - By default the request is serialized and appended to the ResponseStatus StackTrace. - - - - - Attribute marks that specific response class has support for Cross-origin resource sharing (CORS, see http://www.w3.org/TR/access-control/). CORS allows to access resources from different domain which usually forbidden by origin policy. - - - - - Represents a default constructor with Allow Origin equals to "*", Allowed GET, POST, PUT, DELETE, OPTIONS request and allowed "Content-Type" header. - - - - - Redirect to the https:// version of this url if not already. - - - - - Don't redirect when in DebugMode - - - - - Don't redirect if the request was a forwarded request, e.g. from a Load Balancer - - - - - Base class for entity validator classes. - - The type of the object being validated - - Base class for entity validator classes. - - The type of the object being validated - - - - Sets the cascade mode for all rules within this validator. - - - - - Validates the specified instance - - The object to validate - A ValidationResult object containing any validation failures - - - - Validates the specified instance asynchronously - - The object to validate - Cancellation token - A ValidationResult object containing any validation failures - - - - Validates the specified instance. - - Validation Context - A ValidationResult object containing any validation failures. - - - - Validates the specified instance asynchronously. - - Validation Context - Cancellation token - A ValidationResult object containing any validation failures. - - - - Adds a rule to the current validator. - - - - - - Creates a that can be used to obtain metadata about the current validator. - - - - - Defines a validation rule for a specify property. - - - RuleFor(x => x.Surname)... - - The type of property being validated - The expression representing the property to validate - an IRuleBuilder instance on which validators can be defined - - - - Invokes a rule for each item in the collection - - Type of property - Expression representing the collection to validate - An IRuleBuilder instance on which validators can be defined - - - - Defines a custom validation rule using a lambda expression. - If the validation rule fails, it should return a instance of a ValidationFailure - If the validation rule succeeds, it should return null. - - A lambda that executes custom validation rules. - - - - Defines a custom validation rule using a lambda expression. - If the validation rule fails, it should return an instance of ValidationFailure - If the validation rule succeeds, it should return null. - - A lambda that executes custom validation rules - - - - Defines a custom asynchronous validation rule using a lambda expression. - If the validation rule fails, it should asynchronously return a instance of a ValidationFailure - If the validation rule succeeds, it should return null. - - A lambda that executes custom validation rules. - - - - Defines a custom asynchronous validation rule using a lambda expression. - If the validation rule fails, it should asynchronously return an instance of ValidationFailure - If the validation rule succeeds, it should return null. - - A lambda that executes custom validation rules - - - - Defines a RuleSet that can be used to group together several validators. - - The name of the ruleset. - Action that encapsulates the rules in the ruleset. - - - - Defines a condition that applies to several rules - - The condition that should apply to multiple rules - Action that encapsulates the rules. - - - - - Defines an inverse condition that applies to several rules - - The condition that should be applied to multiple rules - Action that encapsulates the rules - - - - Defines an asynchronous condition that applies to several rules - - The asynchronous condition that should apply to multiple rules - Action that encapsulates the rules. - - - - - Defines an inverse asynchronous condition that applies to several rules - - The asynchronous condition that should be applied to multiple rules - Action that encapsulates the rules - - - - Includes the rules from the specified validator - - - - - Returns an enumerator that iterates through the collection of validation rules. - - - A that can be used to iterate through the collection. - - 1 - - - - Throws an exception if the instance being validated is null. - - - - - - Defines a RuleSet that can be used to provide specific validation rules for specific HTTP methods (GET, POST...) - - The HTTP methods where this rule set should be used. - Action that encapuslates the rules in the ruleset. - - - - Container class for dependent rule definitions - - - - - - Class that can be used to find all the validators from a collection of types. - - - - - Creates a scanner that works on a sequence of types. - - - - - Finds all the validators in the specified assembly. - - - - - Finds all the validators in the specified assemblies - - - - - Finds all the validators in the assembly containing the specified type. - - - - - Performs the specified action to all of the assembly scan results. - - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - 1 - - - - Result of performing a scan. - - - - - Creates an instance of an AssemblyScanResult. - - - - - Validator interface type, eg IValidator<Foo> - - - - - Concrete type that implements the InterfaceType, eg FooValidator. - - - - - Implementation of and that looks for - the instance on the specified or - in order to provide the validator instance. - - - - - Creates an instance of . - - - - - Creates an instance of with the supplied instance factory delegate - used for creation of instances. - - The instance factory delegate. - - - - Gets a validator for the appropriate type. - - - - - Gets a validator for the appropriate type. - - Created instance; if a validator cannot be - created. - - - - Gets a validator for . - - The instance to get a validator for. - Created instance; if a validator cannot be - created. - - - - Validator attribute to define the class that will describe the Validation rules. - - - - - The type of the validator used to validate the current type or parameter. - - - - - Creates an instance of allowing a validator type to be specified. - - - - - Overrides the name of the property associated with this rule. - NOTE: This is a considered to be an advanced feature. 99% of the time that you use this, you actually meant to use WithName. - - The current rule - The property name to use - - - - - Specifies a localized name for the error message. - - The current rule - The resource to use as an expression, eg () => Messages.MyResource - Resource accessor builder to use - - - - Specifies a custom error message resource to use when validation fails. - - The current rule - The resource to use as an expression, eg () => Messages.MyResource - - - - - Specifies a custom error message resource to use when validation fails. - - The current rule - The resource to use as an expression, eg () => Messages.MyResource - Custom message format args - - - - - Specifies a custom error message resource to use when validation fails. - - The current rule - The resource to use as an expression, eg () => Messages.MyResource - The resource accessor builder to use. - - - - - Specifies a custom error message resource to use when validation fails. - - The current rule - The resource to use as an expression, eg () => Messages.MyResource - Custom message format args - - - - - Specifies a localized name for the error message. - - The current rule - The type of the generated resource file - The name of the resource to use - - - - Specifies a custom error message to use if validation fails. - - The current rule - The error message to use - Additional arguments to be specified when formatting the custom error message. - - - - - Specifies a custom error message to use if validation fails. - - The current rule - The error message to use - Additional property values to be included when formatting the custom error message. - - - - - Specifies a custom error message to use if validation fails. - - The current rule - The error message to use - Additional property values to use when formatting the custom error message. - - - - - Specifies a custom error message resource to use when validation fails. - - The current rule - Name of resource - Custom message format args - Type of resource representing a resx file - - - - - Specifies a custom error message resource to use when validation fails. - - The current rule - Resource name - Custom message format args - Resource type representing a resx file - - - - - Replace the first validator of this type and remove all the others. - - - - - Remove all validators of the specified type. - - - - - Remove all validators for the given property. - - - - - Builds a delegate for retrieving a localised resource from a resource type and property name. - - - - - Gets a function that can be used to retrieve a message from a resource type and resource name. - - - - - Allows the default error message translations to be managed. - - - - - Whether localization is enabled. - - - - - Default culture to use for all requests to the LanguageManager. If not specified, uses the current UI culture. - - - - - Gets a translated string based on its key. If the culture is specific and it isn't registered, we try the neutral culture instead. - If no matching culture is found to be registered we use English. - - The key - The culture to translate into - - - - - Provides error message templates - - - - - Construct the error message template - - Error message template - - - - The name of the resource if localized. - - - - - The type of the resource provider if localized. - - - - - Marker interface that indicates a PropertyValidatorContext should be passed to GetString - - - - - Base class for lanaguages - - - - - Name of language (culture code) - - - - - Adds a translation - - - - - - - Adds a translation for a type - - - - - - - Gets the localized version of a string with a specific key. - - - - - - - Allows the default error message translations to be managed. - - - - - Creates a new instance of the LanguageManager class. - - - - - Whether localization is enabled. - - - - - Default culture to use for all requests to the LanguageManager. If not specified, uses the current UI culture. - - - - - Provides a collection of all supported languages. - - - - - - Removes all languages except the default. - - - - - Gets a translated string based on its key. If the culture is specific and it isn't registered, we try the neutral culture instead. - If no matching culture is found to be registered we use English. - - The key - The culture to translate into - - - - - IStringSource implementation that uses the default language manager. - - - - - Lazily loads the string - - - - - Creates a LazyStringSource - - - - - Gets the value - - - - - - Resource type - - - - - Resource name - - - - - Creates a LazyStringSource - - - - - Gets the value - - - - - - Resource type - - - - - Resource name - - - - - Represents a localized string. - - - - - Creates a new instance of the LocalizedErrorMessageSource class using the specified resource name and resource type. - - The resource type - The resource name - - - - Creates a new instance of the LocalizedErrorMessageSource class using the specified resource name and resource type. - - The resource type - The resource name - Strategy used to construct the resource accessor - - - - Creates a LocalizedStringSource from an expression: () => MyResources.SomeResourceName - - The expression - Strategy used to construct the resource accessor - Error message source - - - - Construct the error message template - - Error message template - - - - The name of the resource if localized. - - - - - The type of the resource provider if localized. - - - - - Gets the PropertyInfo for a resource. - ResourceType and ResourceName are ref parameters to allow derived types - to replace the type/name of the resource before the delegate is constructed. - - - - - Version of LocalizedStringSource that allows the specified ResourceType to be replaced by the default resource type specified in ValidatorOptions.ResourceProviderType. - This is typically only used by the default validator types built into FV, or if you're building a library of validators. Don't use it in rule definitions. - - - - - Gets the PropertyInfo for a resource. - ResourceType and ResourceName are ref parameters to allow derived types - to replace the type/name of the resource before the delegate is constructed. - - - - - Creates a OverridableLocalizedStringSource from an expression: () => MyResources.SomeResourceName - - The expression - Error message source - - - - Defines an accessor for localization resources - - - - - Function that can be used to retrieve the resource - - - - - Resource type - - - - - Resource name - - - - - Represents a static string. - - - - - Creates a new StringErrorMessageSource using the specified error message as the error template. - - The error message template. - - - - Construct the error message template - - Error message template - - - - The name of the resource if localized. - - - - - The type of the resource provider if localized. - - - - - Extension methods for collection validation rules - - - - - Associates an instance of IValidator with the current property rule and is used to validate each item within the collection. - - Rule builder - The validator to use - - - - Uses a provider to instantiate a validator instance to be associated with a collection - - - - - - - - - - - Collection rule builder syntax - - - - - - - Defines a condition to be used to determine if validation should run - - - - - - - Extension methods that provide the default set of validators. - - - - - Defines a 'not null' validator on the current rule builder. - Validation will fail if the property is null. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - - - - - Defines a 'null' validator on the current rule builder. - Validation will fail if the property is not null. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - - - - - Defines a 'not empty' validator on the current rule builder. - Validation will fail if the property is null, an empty or the default value for the type (for example, 0 for integers) - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - - - - - Defines a 'empty' validator on the current rule builder. - Validation will fail if the property is not null, an empty or the default value for the type (for example, 0 for integers) - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - - - - - Defines a length validator on the current rule builder, but only for string properties. - Validation will fail if the length of the string is outside of the specified range. The range is inclusive. - - Type of object being validated - The rule builder on which the validator should be defined - - - - - - - Defines a length validator on the current rule builder, but only for string properties. - Validation will fail if the length of the string is outside of the specified range. The range is inclusive. - - Type of object being validated - The rule builder on which the validator should be defined - - - - - - - Defines a length validator on the current rule builder, but only for string properties. - Validation will fail if the length of the string is not equal to the length specified. - - Type of object being validated - The rule builder on which the validator should be defined - - - - - - Defines a length validator on the current rule builder, but only for string properties. - Validation will fail if the length of the string is not equal to the length specified. - - Type of object being validated - The rule builder on which the validator should be defined - - - - - - Defines a regular expression validator on the current rule builder, but only for string properties. - Validation will fail if the value returned by the lambda does not match the regular expression. - - Type of object being validated - The rule builder on which the validator should be defined - The regular expression to check the value against. - - - - - Defines a length validator on the current rule builder, but only for string properties. - Validation will fail if the length of the string is larger than the length specified. - - Type of object being validated - The rule builder on which the validator should be defined - - - - - - Defines a length validator on the current rule builder, but only for string properties. - Validation will fail if the length of the string is less than the length specified. - - Type of object being validated - The rule builder on which the validator should be defined - - - - - - Defines a regular expression validator on the current rule builder, but only for string properties. - Validation will fail if the value returned by the lambda does not match the regular expression. - - Type of object being validated - The rule builder on which the validator should be defined - The regular expression to check the value against. - - - - - Defines a regular expression validator on the current rule builder, but only for string properties. - Validation will fail if the value returned by the lambda does not match the regular expression. - - Type of object being validated - The rule builder on which the validator should be defined - The regular expression to use - - - - - Defines a regular expression validator on the current rule builder, but only for string properties. - Validation will fail if the value returned by the lambda does not match the regular expression. - - Type of object being validated - The rule builder on which the validator should be defined - The regular expression to use - - - - - Defines a regular expression validator on the current rule builder, but only for string properties. - Validation will fail if the value returned by the lambda does not match the regular expression. - - Type of object being validated - The rule builder on which the validator should be defined - The regular expression to check the value against. - Regex options - - - - - Defines a regular expression validator on the current rule builder, but only for string properties. - Validation will fail if the value returned by the lambda does not match the regular expression. - - Type of object being validated - The rule builder on which the validator should be defined - The regular expression to check the value against. - Regex options - - - - - Defines a regular expression validator on the current rule builder, but only for string properties. - Validation will fail if the value returned by the lambda is not a valid email address. - - Type of object being validated - The rule builder on which the validator should be defined - - - - - Defines a 'not equal' validator on the current rule builder. - Validation will fail if the specified value is equal to the value of the property. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value to compare - Equality comparer to use - - - - - Defines a 'not equal' validator on the current rule builder using a lambda to specify the value. - Validation will fail if the value returned by the lambda is equal to the value of the property. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - A lambda expression to provide the comparison value - Equality Comparer to use - - - - - Defines an 'equals' validator on the current rule builder. - Validation will fail if the specified value is not equal to the value of the property. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value to compare - Equality Comparer to use - - - - - Defines an 'equals' validator on the current rule builder using a lambda to specify the comparison value. - Validation will fail if the value returned by the lambda is not equal to the value of the property. - - The type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - A lambda expression to provide the comparison value - Equality comparer to use - - - - - Defines a predicate validator on the current rule builder using a lambda expression to specify the predicate. - Validation will fail if the specified lambda returns false. - Validation will succeed if the specified lambda returns true. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - A lambda expression specifying the predicate - - - - - Defines a predicate validator on the current rule builder using a lambda expression to specify the predicate. - Validation will fail if the specified lambda returns false. - Validation will succeed if the specified lambda returns true. - This overload accepts the object being validated in addition to the property being validated. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - A lambda expression specifying the predicate - - - - - Defines a predicate validator on the current rule builder using a lambda expression to specify the predicate. - Validation will fail if the specified lambda returns false. - Validation will succeed if the specified lambda returns true. - This overload accepts the object being validated in addition to the property being validated. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - A lambda expression specifying the predicate - - - - - Defines an asynchronous predicate validator on the current rule builder using a lambda expression to specify the predicate. - Validation will fail if the specified lambda returns false. - Validation will succeed if the specified lambda returns true. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - A lambda expression specifying the predicate - - - - - Defines an asynchronous predicate validator on the current rule builder using a lambda expression to specify the predicate. - Validation will fail if the specified lambda returns false. - Validation will succeed if the specified lambda returns true. - This overload accepts the object being validated in addition to the property being validated. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - A lambda expression specifying the predicate - - - - - Defines an asynchronous predicate validator on the current rule builder using a lambda expression to specify the predicate. - Validation will fail if the specified lambda returns false. - Validation will succeed if the specified lambda returns true. - This overload accepts the object being validated in addition to the property being validated. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - A lambda expression specifying the predicate - - - - - Defines a 'less than' validator on the current rule builder. - The validation will succeed if the property value is less than the specified value. - The validation will fail if the property value is greater than or equal to the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'less than' validator on the current rule builder. - The validation will succeed if the property value is less than the specified value. - The validation will fail if the property value is greater than or equal to the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'less than or equal' validator on the current rule builder. - The validation will succeed if the property value is less than or equal to the specified value. - The validation will fail if the property value is greater than the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'less than or equal' validator on the current rule builder. - The validation will succeed if the property value is less than or equal to the specified value. - The validation will fail if the property value is greater than the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'greater than' validator on the current rule builder. - The validation will succeed if the property value is greater than the specified value. - The validation will fail if the property value is less than or equal to the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'greater than' validator on the current rule builder. - The validation will succeed if the property value is greater than the specified value. - The validation will fail if the property value is less than or equal to the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'greater than or equal' validator on the current rule builder. - The validation will succeed if the property value is greater than or equal the specified value. - The validation will fail if the property value is less than the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'greater than or equal' validator on the current rule builder. - The validation will succeed if the property value is greater than or equal the specified value. - The validation will fail if the property value is less than the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'less than' validator on the current rule builder using a lambda expression. - The validation will succeed if the property value is less than the specified value. - The validation will fail if the property value is greater than or equal to the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - A lambda that should return the value being compared - - - - - Defines a 'less than' validator on the current rule builder using a lambda expression. - The validation will succeed if the property value is less than the specified value. - The validation will fail if the property value is greater than or equal to the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - A lambda that should return the value being compared - - - - - Defines a 'less than' validator on the current rule builder using a lambda expression. - The validation will succeed if the property value is less than the specified value. - The validation will fail if the property value is greater than or equal to the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - A lambda that should return the value being compared - - - - - Defines a 'less than' validator on the current rule builder using a lambda expression. - The validation will succeed if the property value is less than the specified value. - The validation will fail if the property value is greater than or equal to the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - A lambda that should return the value being compared - - - - - Defines a 'less than or equal' validator on the current rule builder using a lambda expression. - The validation will succeed if the property value is less than or equal to the specified value. - The validation will fail if the property value is greater than the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'less than or equal' validator on the current rule builder using a lambda expression. - The validation will succeed if the property value is less than or equal to the specified value. - The validation will fail if the property value is greater than the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'less than or equal' validator on the current rule builder using a lambda expression. - The validation will succeed if the property value is less than or equal to the specified value. - The validation will fail if the property value is greater than the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'less than or equal' validator on the current rule builder using a lambda expression. - The validation will succeed if the property value is less than or equal to the specified value. - The validation will fail if the property value is greater than the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'less than' validator on the current rule builder using a lambda expression. - The validation will succeed if the property value is greater than the specified value. - The validation will fail if the property value is less than or equal to the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'less than' validator on the current rule builder using a lambda expression. - The validation will succeed if the property value is greater than the specified value. - The validation will fail if the property value is less than or equal to the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'less than' validator on the current rule builder using a lambda expression. - The validation will succeed if the property value is greater than the specified value. - The validation will fail if the property value is less than or equal to the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'less than' validator on the current rule builder using a lambda expression. - The validation will succeed if the property value is greater than the specified value. - The validation will fail if the property value is less than or equal to the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'greater than' validator on the current rule builder using a lambda expression. - The validation will succeed if the property value is greater than or equal the specified value. - The validation will fail if the property value is less than the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'greater than' validator on the current rule builder using a lambda expression. - The validation will succeed if the property value is greater than or equal the specified value. - The validation will fail if the property value is less than the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'greater than or equal to' validator on the current rule builder using a lambda expression. - The validation will succeed if the property value is greater than or equal the specified value. - The validation will fail if the property value is less than the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Defines a 'greater than or equal to' validator on the current rule builder using a lambda expression. - The validation will succeed if the property value is greater than or equal the specified value. - The validation will fail if the property value is less than the specified value. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The value being compared - - - - - Validates certain properties of the specified instance. - - The current validator - The object to validate - Expressions to specify the properties to validate - A ValidationResult object containing any validation failures - - - - Validates certain properties of the specified instance. - - - The object to validate - The names of the properties to validate. - A ValidationResult object containing any validation failures. - - - - Validates an object using either a custom validator selector or a ruleset. - - - - - - - - - - - Validates certain properties of the specified instance asynchronously. - - The current validator - The object to validate - Expressions to specify the properties to validate - A ValidationResult object containing any validation failures - - - - Validates certain properties of the specified instance asynchronously. - - - The object to validate - The names of the properties to validate. - A ValidationResult object containing any validation failures. - - - - Validates an object asynchronously using a custom valdiator selector or a ruleset - - - - - - - - - - - Performs validation and then throws an exception if validation fails. - - The validator this method is extending. - The instance of the type we are validating. - Optional: a ruleset when need to validate against. - - - - Performs validation asynchronously and then throws an exception if validation fails. - - The validator this method is extending. - The instance of the type we are validating. - Optional: a ruleset when need to validate against. - - - - Defines an 'inclusive between' validator on the current rule builder, but only for properties of types that implement IComparable. - Validation will fail if the value of the property is outside of the specifed range. The range is inclusive. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The lowest allowed value - The highest allowed value - - - - - Defines an 'inclusive between' validator on the current rule builder, but only for properties of types that implement IComparable. - Validation will fail if the value of the property is outside of the specifed range. The range is inclusive. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The lowest allowed value - The highest allowed value - - - - - Defines an 'exclusive between' validator on the current rule builder, but only for properties of types that implement IComparable. - Validation will fail if the value of the property is outside of the specifed range. The range is exclusive. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The lowest allowed value - The highest allowed value - - - - - Defines an 'exclusive between' validator on the current rule builder, but only for properties of types that implement IComparable. - Validation will fail if the value of the property is outside of the specifed range. The range is exclusive. - - Type of object being validated - Type of property being validated - The rule builder on which the validator should be defined - The lowest allowed value - The highest allowed value - - - - - Defines a credit card validator for the current rule builder that ensures that the specified string is a valid credit card number. - - - - - Defines a enum value validator on the current rule builder that ensures that the specific value is a valid enum value. - - Type of Enum being validated - Type of property being validated - The rule builder on which the validator should be defined - - - - - Defines a custom validation rule - - - - - - - - - - Defines a custom validation rule - - - - - - - - - - Performs validation and then throws an exception if validation fails. - - The validator this method is extending. - The instance of the type we are validating. - The ruleset to validate against. - - - - Performs validation asynchronously and then throws an exception if validation fails. - - The validator this method is extending. - The instance of the type we are validating. - Optional: a ruleset when need to validate against. - - - - Default options that can be used to configure a validator. - - - - - Specifies the cascade mode for failures. - If set to 'Stop' then execution of the rule will stop once the first validator in the chain fails. - If set to 'Continue' then all validators in the chain will execute regardless of failures. - - - - - Specifies a custom action to be invoked when the validator fails. - - - - - - - - - - Specifies a custom error message to use if validation fails. - - The current rule - The error message to use - - - - - Specifies a custom error message to use when validation fails. - - The current rule - Delegate that will be invoked to retrieve the localized message. - - - - - Specifies a custom error message to use when validation fails. - - The current rule - Delegate that will be invoked to retrieve the localized message. - - - - - Specifies a custom error code to use if validation fails. - - The current rule - The error code to use - - - - - Specifies a custom error message resource to use when validation fails. - - The current rule - Resource type representing a resx file - Name of resource - - - - - Specifies a condition limiting when the validator should run. - The validator will only be executed if the result of the lambda returns true. - - The current rule - A lambda expression that specifies a condition for when the validator should run - Whether the condition should be applied to the current rule or all rules in the chain - - - - - Specifies a condition limiting when the validator should not run. - The validator will only be executed if the result of the lambda returns false. - - The current rule - A lambda expression that specifies a condition for when the validator should not run - Whether the condition should be applied to the current rule or all rules in the chain - - - - - Specifies an asynchronous condition limiting when the validator should run. - The validator will only be executed if the result of the lambda returns true. - - The current rule - A lambda expression that specifies a condition for when the validator should run - Whether the condition should be applied to the current rule or all rules in the chain - - - - - Specifies an asynchronous condition limiting when the validator should not run. - The validator will only be executed if the result of the lambda returns false. - - The current rule - A lambda expression that specifies a condition for when the validator should not run - Whether the condition should be applied to the current rule or all rules in the chain - - - - - Triggers an action when the rule passes. Typically used to configure dependent rules. This applies to all preceding rules in the chain. - - The current rule - An action to be invoked if the rule is valid - - - - - Specifies a custom property name to use within the error message. - - The current rule - The property name to use - - - - - Specifies a custom property name to use within the error message. - - The current rule - Func used to retrieve the property's display name - - - - - Overrides the name of the property associated with this rule. - NOTE: This is a considered to be an advanced feature. 99% of the time that you use this, you actually meant to use WithName. - - The current rule - The property name to use - - - - - Specifies custom state that should be stored alongside the validation message when validation fails for this rule. - - - - - - - - - - Specifies custom state that should be stored alongside the validation message when validation fails for this rule. - - - - - - - - - - Specifies custom severity that should be stored alongside the validation message when validation fails for this rule. - - - - - - - - - - Gets the default message for a property validato - - The validator type - The translated string - - - - Specifies how rules should cascade when one fails. - - - - - When a rule fails, execution continues to the next rule. - - - - - When a rule fails, validation is stopped and all other rules in the chain will not be executed. - - - - - Specifies where a When/Unless condition should be applied - - - - - Applies the condition to all validators declared so far in the chain. - - - - - Applies the condition to the current validator only. - - - - - Specifies the severity of a rule. - - - - - Error - - - - - Warning - - - - - Info - - - - - Validator implementation that allows rules to be defined without inheriting from AbstractValidator. - - - - public class Customer { - public int Id { get; set; } - public string Name { get; set; } - - public static readonly InlineValidator<Customer> Validator = new InlineValidator<Customer> { - v => v.RuleFor(x => x.Name).NotNull(), - v => v.RuleFor(x => x.Id).NotEqual(0), - } - } - - - - - - - Delegate that specifies configuring an InlineValidator. - - - - - Allows configuration of the validator. - - - - - Rule definition for collection properties - - - - - - Initializes new instance of the CollectionPropertyRule class - - - - - - - - - - - Creates a new property rule from a lambda expression. - - - - - Invokes the validator asynchronously - - - - - - - - - - Invokes the validator - - - - - - - - - Custom logic for performing comparisons - - - - - Tries to compare the two objects. - - - The resulting comparison value. - - True if all went well, otherwise False. - - - - Tries to do a proper comparison but may fail. - First it tries the default comparison, if this fails, it will see - if the values are fractions. If they are, then it does a double - comparison, otherwise it does a long comparison. - - - - - Tries to compare the two objects, but will throw an exception if it fails. - - True on success, otherwise False. - - - - Tries to compare the two objects, but will throw an exception if it fails. - - True on success, otherwise False. - - - - Default validator selector that will execute all rules that do not belong to a RuleSet. - - - - - Determines whether or not a rule should execute. - - The rule - Property path (eg Customer.Address.Line1) - Contextual information - Whether or not the validator can execute. - - - - Custom IValidationRule for performing custom logic. - - - - - - Rule set to which this rule belongs. - - - - - Creates a new DelegateValidator using the specified function to perform validation. - - - - - Creates a new DelegateValidator using the specified function to perform validation. - - - - - Creates a new DelegateValidator using the specified async function to perform validation. - - - - - Creates a new DelegateValidator using the specified async function to perform validation. - - - - - Performs validation using a validation context and returns a collection of Validation Failures. - - Validation Context - A collection of validation failures - - - - Performs validation asynchronously using a validation context and returns a collection of Validation Failures. - - Validation Context - - A collection of validation failures - - - - The validators that are grouped under this rule. - - - - - Performs validation using a validation context and returns a collection of Validation Failures. - - Validation Context - A collection of validation failures - - - - When overloaded performs validation asynchronously using a validation context and returns a collection of Validation Failures. - - Validation Context - - A collection of validation failures - - - - Applies a condition to the validator. - - - - - - - Applies a condition asynchronously to the validator - - - - - - - Useful extensions - - - - - Checks if the expression is a parameter expression - - - - - - - Gets a MemberInfo from a member expression. - - - - - Gets a MemberInfo from a member expression. - - - - - Splits pascal case, so "FooBar" would become "Foo Bar" - - - - - Helper method to construct a constant expression from a constant. - - Type of object being validated - Type of property being validated - The value being compared - - - - - Represents an object that is configurable. - - Type of object being configured - Return type - - - - Configures the current object. - - Action to configure the object. - - - - - Instancace cache. - - - - - Gets or creates an instance using Activator.CreateInstance - - The type to instantiate - The instantiated object - - - - Gets or creates an instance using a custom factory - - The type to instantiate - The custom factory - The instantiated object - - - - Member accessor cache. - - - - - - Gets an accessor func based on an expression - - - The member represented by the expression - - Accessor func - - - - Determines whether or not a rule should execute. - - - - - Determines whether or not a rule should execute. - - The rule - Property path (eg Customer.Address.Line1) - Contextual information - Whether or not the validator can execute. - - - - Selects validators that are associated with a particular property. - - - - - Creates a new instance of MemberNameValidatorSelector. - - - - - Member names that are validated. - - - - - Determines whether or not a rule should execute. - - The rule - Property path (eg Customer.Address.Line1) - Contextual information - Whether or not the validator can execute. - - - - Creates a MemberNameValidatorSelector from a collection of expressions. - - - - - Gets member names from expressions - - - - - - - - Assists in the construction of validation messages. - - - - - Default Property Name placeholder. - - - - - Default Property Value placeholder. - - - - - Adds a value for a validation message placeholder. - - - - - - - - Appends a property name to the message. - - The name of the property - - - - - Appends a property value to the message. - - The value of the property - - - - - Adds additional arguments to the message for use with standard string placeholders. - - Additional arguments - - - - - Constructs the final message from the specified template. - - Message template - The message with placeholders replaced with their appropriate values - - - - Additional arguments to use - - - - - Additional placeholder values - - - - - Represents a chain of properties - - - - - Creates a new PropertyChain. - - - - - Creates a new PropertyChain based on another. - - - - - Creates a new PropertyChain - - - - - - Creates a PropertyChain from a lambda expresion - - - - - - - Adds a MemberInfo instance to the chain - - Member to add - - - - Adds a property name to the chain - - Name of the property to add - - - - Adds an indexer to the property chain. For example, if the following chain has been constructed: - Parent.Child - then calling AddIndexer(0) would convert this to: - Parent.Child[0] - - - - - - Creates a string representation of a property chain. - - - - - Checks if the current chain is the child of another chain. - For example, if chain1 were for "Parent.Child" and chain2 were for "Parent.Child.GrandChild" then - chain2.IsChildChainOf(chain1) would be true. - - The parent chain to compare - True if the current chain is the child of the other chain, otherwise false - - - - Builds a property path. - - - - - Number of member names in the chain - - - - - Defines a rule associated with a property. - - - - - Property associated with this rule. - - - - - Function that can be invoked to retrieve the value of the property. - - - - - Expression that was used to create the rule. - - - - - String source that can be used to retrieve the display name (if null, falls back to the property name) - - - - - Rule set that this rule belongs to (if specified) - - - - - Function that will be invoked if any of the validators associated with this rule fail. - - - - - The current validator being configured by this rule. - - - - - Type of the property being validated - - - - - Cascade mode for this rule. - - - - - Validators associated with this rule. - - - - - Creates a new property rule. - - Property - Function to get the property value - Lambda expression used to create the rule - Function to get the cascade mode. - Type to validate - Container type that owns the property - - - - Creates a new property rule from a lambda expression. - - - - - Creates a new property rule from a lambda expression. - - - - - Adds a validator to the rule. - - - - - Replaces a validator in this rule. Used to wrap validators. - - - - - Remove a validator in this rule. - - - - - Clear all validators from this rule. - - - - - Returns the property name for the property being validated. - Returns null if it is not a property being validated (eg a method call) - - - - - Allows custom creation of an error message - - - - - Dependent rules - - - - - Display name for the property. - - - - - Display name for the property. - - - - - Performs validation using a validation context and returns a collection of Validation Failures. - - Validation Context - A collection of validation failures - - - - Performs asynchronous validation using a validation context and returns a collection of Validation Failures. - - Validation Context - - A collection of validation failures - - - - Invokes the validator asynchronously - - - - - - - - - - Invokes a property validator using the specified validation context. - - - - - Applies a condition to the rule - - - - - - - Applies the condition to the rule asynchronously - - - - - - - Include rule - - - - - Creates a new IncludeRule - - - - - - - - - Creates a new include rule from an existing validator - - - - - - - - - Builds a validation rule and constructs a validator. - - Type of object being validated - Type of property being validated - - - - The rule being created by this RuleBuilder. - - - - - Creates a new instance of the RuleBuilder class. - - - - - Sets the validator associated with the rule. - - The validator to set - - - - - Sets the validator associated with the rule. Use with complex properties where an IValidator instance is already declared for the property type. - - The validator to set - - - - Sets the validator associated with the rule. Use with complex properties where an IValidator instance is already declared for the property type. - - The validator provider to set - - - - Selects validators that belong to the specified rulesets. - - - - - Rule sets - - - - - Creates a new instance of the RulesetValidatorSelector. - - - - - Determines whether or not a rule should execute. - - The rule - Property path (eg Customer.Address.Line1) - Contextual information - Whether or not the validator can execute. - - - - Checks if the rule is an IncludeRule - - - - - - - Gets validators for method parameters. - - - - - Gets a validator for . - - The instance to get a validator for. - Created instance; if a validator cannot be - created. - - - - Defines a rule associated with a property which can have multiple validators. - - - - - The validators that are grouped under this rule. - - - - - Name of the rule-set to which this rule belongs. - - - - - Performs validation using a validation context and returns a collection of Validation Failures. - - Validation Context - A collection of validation failures - - - - Performs validation using a validation context and returns a collection of Validation Failures asynchronoulsy. - - Validation Context - Cancellation token - A collection of validation failures - - - - Applies a condition to the rule - - - - - - - Applies a condition to the rule asynchronously - - - - - - - Defines a validator for a particular type. - - - - - - Validates the specified instance. - - The instance to validate - A ValidationResult object containing any validation failures. - - - - Validate the specified instance asynchronously - - The instance to validate - - A ValidationResult object containing any validation failures. - - - - Sets the cascade mode for all rules within this validator. - - - - - Defines a validator for a particular type. - - - - - Validates the specified instance - - - A ValidationResult containing any validation failures - - - - Validates the specified instance asynchronously - - - Cancellation token - A ValidationResult containing any validation failures - - - - Validates the specified instance. - - A ValidationContext - A ValidationResult object containy any validation failures. - - - - Validates the specified instance asynchronously. - - A ValidationContext - Cancellation token - A ValidationResult object containy any validation failures. - - - - Creates a hook to access various meta data properties - - A IValidatorDescriptor object which contains methods to access metadata - - - - Checks to see whether the validator can validate objects of the specified type - - - - - Provides metadata about a validator. - - - - - Gets the name display name for a property. - - - - - Gets a collection of validators grouped by property. - - - - - Gets validators for a particular property. - - - - - Gets rules for a property. - - - - - Gets validators for a particular type. - - - - - Gets the validator for the specified type. - - - - - Gets the validator for the specified type. - - - - - Defines a validation failure - - - - - Creates a new validation failure. - - - - - Creates a new ValidationFailure. - - - - - The name of the property. - - - - - The error message - - - - - The property value that caused the failure. - - - - - Custom state associated with the failure. - - - - - Custom severity level associated with the failure. - - - - - Gets or sets the formatted message arguments. - These are values for custom formatted message in validator resource files - Same formatted message can be reused in UI and with same number of format placeholders - Like "Value {0} that you entered should be {1}" - - - - - Gets or sets the formatted message placeholder values. - - - - - The resource name used for building the message - - - - - Creates a textual representation of the failure. - - - - - Creates a new ValidationFailure with ErrorCode. - - - - - Gets or sets the error code. - - - - - The result of running a validator - - - - - Whether validation succeeded - - - - - A collection of errors - - - - - Creates a new validationResult - - - - - Creates a new ValidationResult from a collection of failures - - List of which is later available through . This list get's copied. - - Every caller is responsible for not adding null to the list. - - - - - Rule builder that starts the chain - - - - - - - Rule builder - - - - - - - Associates a validator with this the property for this rule builder. - - The validator to set - - - - - Associates an instance of IValidator with the current property rule. - - The validator to use - - - - Associates a validator provider with the current property rule. - - The validator provider to use - - - - Rule builder - - - - - - - Validation context - - - - Validation context - - - - - - Creates a new validation context - - - - - - Creates a new validation context with a custom property chain and selector - - - - - - - - The object to validate - - - - - Validation context - - - Validation context - - - - - Creates a new validation context - - - - - - Creates a new validation context with a property chain and validation selector - - - - - - - - Property chain - - - - - Object being validated - - - - - Selector - - - - - Whether this is a child context - - - - - Whether this is a child collection context. - - - - - Creates a new ValidationContext based on this one - - - - - - - - - Creates a new validation context for use with a child validator - - - - - - - Creates a new validation context for use with a child collection validator - - - - - - - An exception that represents failed validation - - - An exception that represents failed validation - - - - - Validation errors - - - - - Creates a new ValidationException - - - - - - Creates a new ValidationException - - - - - - - Creates a new ValidationException - - - - - - Used for providing metadata about a validator. - - - - - Rules associated with the validator - - - - - Creates a ValidatorDescriptor - - - - - - Gets the display name or a property property - - - - - - - Gets all members with their associated validators - - - - - - Gets validators for a specific member - - - - - - - Gets rules for a specific member - - - - - - - Gets the member name from an expression - - - - - - - Gets validators for a member - - - - - - - - Gets rules grouped by ruleset - - - - - - Information about reulesets - - - - - Creates a new RulesetMetadata - - - - - - - Rulset name - - - - - Rules in the ruleset - - - - - Factory for creating validators - - - - - Gets a validator for a type - - - - - - - Gets a validator for a type - - - - - - - Instantiates the validator - - - - - - - Validator runtime options - - - - - Default cascade mode - - - - - Default property chain separator - - - - - Default resource provider - - - - - Default language manager - - - - - Customizations of validator selector - - - - - Specifies a factory for creating MessageFormatter instances. - - - - - Pluggable logic for resolving property names - - - - - Pluggable logic for resolving display names - - - - - Disables the expression accessor cache. Not recommended. - - - - - ValidatorSelector options - - - - - Factory func for creating the default validator selector - - - - - Factory func for creating the member validator selector - - - - - Factory func for creating the ruleset validator selector - - - - - Base class for all comparison validators - - - - - - - - - - - - - - - - - - Performs the comparison - - - - - - - Override to perform the comparison - - - - - - - - Metadata- the comparison type - - - - - Metadata- the member being compared - - - - - Metadata- the value being compared - - - - - Defines a comparison validator - - - - - Metadata- the comparison type - - - - - Metadata- the member being compared - - - - - Metadata- the value being compared - - - - - Asynchronous custom validator - - - - - Creates a new ASyncPredicateValidator - - - - - - Runs the validation check - - - - - - - - Ensures that the property value is a valid credit card number. - - - - - Custom validator that allows for manual/direct creation of ValidationFailure instances. - - - - - - Creates a new instance of the CustomValidator - - - - - - Creates a new isntance of the CutomValidator. - - - - - - Custom validation context - - - - - Creates a new CustomContext - - The parent PropertyValidatorContext that represents this execution - - - - Adds a new validation failure. - - The property name - The error mesage - - - - Adds a new validation failure (the property name is inferred) - - The error message - - - - Adss a new validation failure - - The failure to add - - - - A custom property validator. - This interface should not be implemented directly in your code as it is subject to change. - Please inherit from PropertyValidator instead. - - - - - Prepares the of for an upcoming . - - The validator context - - - - Creates an error validation result for this validator. - - The validator context - Returns an error validation result. - - - - Allows a decimal to be validated for scale and precision. - Scale would be the number of digits to the right of the decimal point. - Precision would be the number of digits. - - It can be configured to use the effective scale and precision - (i.e. ignore trailing zeros) if required. - - 123.4500 has an scale of 4 and a precision of 7, but an effective scale - and precision of 2 and 5 respectively. - - - - - If enabled reverts to persist password hashes using the original SHA256 SaltedHash implementation. - By default ServiceStack uses the more secure ASP.NET Identity v3 PBKDF2 with HMAC-SHA256 implementation. - - New Users will have their passwords persisted with the specified implementation, likewise existing users will have their passwords re-hased - to use the current registered IPasswordHasher. - - - - - Older Password Hashers that were previously used to hash passwords. Failed password matches check to see if the password was hashed with - any of the registered FallbackPasswordHashers, if true the password attempt will succeed and password will get re-hashed with - the current registered IPasswordHasher. - - - - - Read/Write Virtual FileSystem. Defaults to FileSystemVirtualPathProvider - - - - - Cascading collection of virtual file sources, inc. Embedded Resources, File System, In Memory, S3 - - - - - Call to signal the completion of a ServiceStack-handled Request - - - - - Resolves and auto-wires a ServiceStack Service. - - - - - Context to capture IService action - - - - - Creates instance using straight Resolve approach. - This will throw an exception if resolution fails - - - - - Creates instance using the TryResolve approach if tryResolve = true. - Otherwise uses Resolve approach, which will throw an exception if resolution fails - - - - - Sets a persistent cookie which never expires - - - - - Sets a session cookie which expires after the browser session closes - - - - - Deletes a specified cookie by setting its value to empty and expiration to -1 days - - - - - Return File at specified virtualPath from AppHost.VirtualFiles ContentRootPath - - - - - Keep default file contents in-memory - - - - - - Used in Unit tests - - - - - - The number of segments separated by '/' determinable by path.Split('/').Length - e.g. /path/to/here.ext == 3 - - - - - The total number of segments after subparts have been exploded ('.') - e.g. /path/to/here.ext == 4 - - - - - Provide for quick lookups based on hashes that can be determined from a request url - - - - - For performance withPathInfoParts should already be a lower case string - to minimize redundant matching operations. - - - - - - For performance withPathInfoParts should already be a lower case string - to minimize redundant matching operations. - - - - - - - - - Get Best Matching Route. - - - - If not null, ensures any Route matches any [Route(Matches)] - - - - - Execute MQ - - - - - Execute MQ with requestContext - - - - - Execute using empty RequestContext - - - - - Execute a Service with a Request DTO. See ExecuteAsync for a non-blocking alternative. - - - - - Execute a Service with a Request DTO. - - - - - Gets the name of the base most type in the heirachy tree with the same. - - We get an exception when trying to create a schema with multiple types of the same name - like when inheriting from a DataContract with the same name. - - The type. - - - - - Back-end Service used by /js/hot-fileloader.js to detect file changes in /wwwroot and auto reload page. - - - - - Predefined pattern that matches <?php ... ?> tags. - Could be passed inside a list to {@link #setPreservePatterns(List) setPreservePatterns} method. - - - Predefined pattern that matches <% ... %> tags. - Could be passed inside a list to {@link #setPreservePatterns(List) setPreservePatterns} method. - - - Predefined pattern that matches <--# ... --> tags. - Could be passed inside a list to {@link #setPreservePatterns(List) setPreservePatterns} method. - - - Predefined list of tags that are very likely to be block-level. - Could be passed to {@link #setRemoveSurroundingSpaces(string) setRemoveSurroundingSpaces} method. - - - Predefined list of tags that are block-level by default, excluding <div> and <li> tags. - Table tags are also included. - Could be passed to {@link #setRemoveSurroundingSpaces(string) setRemoveSurroundingSpaces} method. - - - Could be passed to {@link #setRemoveSurroundingSpaces(string) setRemoveSurroundingSpaces} method - to remove all surrounding spaces (not recommended). - - - If set to false all compression will be bypassed. Might be useful for testing purposes. - Default is true. - - @param enabled set false to bypass all compression - - - Gets or Sets JavaScript compressor implementation that will be used - to compress inline JavaScript in HTML. - - - Returns CSS compressor implementation that will be used - to compress inline CSS in HTML. - - - If set to true all HTML comments will be removed. - Default is true. - - @param removeComments set true to remove all HTML comments - - - If set to true all multiple whitespace characters will be replaced with single spaces. - Default is true. - - @param removeMultiSpaces set true to replace all multiple whitespace characters - will single spaces. - - - - - Enables JavaScript compression within <script> tags - if set to true. Default is false for performance reasons. - -

Note: Compressing JavaScript is not recommended if pages are - compressed dynamically on-the-fly because of performance impact. - You should consider putting JavaScript into a separate file and - compressing it using standalone YUICompressor for example.

- - @param compressJavaScript set true to enable JavaScript compression. - Default is false -
- - Enables CSS compression within <style> tags using - Yahoo YUI ICompressor - if set to true. Default is false for performance reasons. - -

Note: Compressing CSS is not recommended if pages are - compressed dynamically on-the-fly because of performance impact. - You should consider putting CSS into a separate file and - compressing it using standalone YUICompressor for example.

- - @param compressCss set true to enable CSS compression. - Default is false -
- - If set to true, existing DOCTYPE declaration will be replaced with simple <!DOCTYPE html> declaration. - Default is false. - - @param simpleDoctype set true to replace existing DOCTYPE declaration with <!DOCTYPE html> - - - - If set to true, type="text/style" attributes will be removed from <style> tags. Default is false. - - @param removeStyleAttributes set true to remove type="text/style" attributes from <style> tags - - - - If set to true, method="get" attributes will be removed from <form> tags. Default is false. - - @param removeFormAttributes set true to remove method="get" attributes from <form> tags - - - If set to true, type="text" attributes will be removed from <input> tags. Default is false. - - @param removeInputAttributes set true to remove type="text" attributes from <input> tags - - - - - - - - - - Returns {@link HtmlCompressorStatistics} object containing statistics of the last HTML compression, if enabled. - Should be called after {@link #compress(string)} - - @return {@link HtmlCompressorStatistics} object containing last HTML compression statistics - - @see HtmlCompressorStatistics - @see #setGenerateStatistics(bool) - - - The main method that compresses given HTML source and returns compressed - result. - - @param html HTML content to compress - @return compressed content. - - - Returns metrics of an uncompressed document - - @return metrics of an uncompressed document - @see HtmlMetrics - - - Returns metrics of a compressed document - - @return metrics of a compressed document - @see HtmlMetrics - - - - Returns total size of blocks that were skipped by the compressor - (for example content inside <pre> tags or inside - <script> tags with disabled javascript compression) - - @return the total size of blocks that were skipped by the compressor, in bytes - - - Returns total filesize of a document - - @return total filesize of a document, in bytes - - - Returns number of empty characters (spaces, tabs, end of lines) in a document - - @return number of empty characters in a document - - - Returns total size of inline <script> tags - - @return total size of inline <script> tags, in bytes - - - Returns total size of inline <style> tags - - @return total size of inline <style> tags, in bytes - - - Returns total size of inline event handlers (onclick, etc) - - @return total size of inline event handlers, in bytes - - - - End a ServiceStack Request - - - - - End a HttpHandler Request - - - - - End an MQ Request - - - - - End a ServiceStack Request with no content - - - - - Gets string value from Items[name] then Cookies[name] if exists. - Useful when *first* setting the users response cookie in the request filter. - To access the value for this initial request you need to set it in Items[]. - - string value or null if it doesn't exist - - - - Gets request paramater string value by looking in the following order: - - QueryString[name] - - FormData[name] - - Cookies[name] - - Items[name] - - string value or null if it doesn't exist - - - * - Input: http://localhost:96/Cambia3/Temp/Test.aspx/path/info?q=item#fragment - - Some HttpRequest path and URL properties: - Request.ApplicationPath: /Cambia3 - Request.CurrentExecutionFilePath: /Cambia3/Temp/Test.aspx - Request.FilePath: /Cambia3/Temp/Test.aspx - Request.Path: /Cambia3/Temp/Test.aspx/path/info - Request.PathInfo: /path/info - Request.PhysicalApplicationPath: D:\Inetpub\wwwroot\CambiaWeb\Cambia3\ - Request.QueryString: /Cambia3/Temp/Test.aspx/path/info?query=arg - Request.Url.AbsolutePath: /Cambia3/Temp/Test.aspx/path/info - Request.Url.AbsoluteUri: http://localhost:96/Cambia3/Temp/Test.aspx/path/info?query=arg - Request.Url.Fragment: - Request.Url.Host: localhost - Request.Url.LocalPath: /Cambia3/Temp/Test.aspx/path/info - Request.Url.PathAndQuery: /Cambia3/Temp/Test.aspx/path/info?query=arg - Request.Url.Port: 96 - Request.Url.Query: ?query=arg - Request.Url.Scheme: http - Request.Url.Segments: / - Cambia3/ - Temp/ - Test.aspx/ - path/ - info - * - - - - Duplicate Params are given a unique key by appending a #1 suffix - - - - - Duplicate params have their values joined together in a comma-delimited string - - - - - Use this to treat Request.Items[] as a cache by returning pre-computed items to save - calculating them multiple times. - - - - - Sets a persistent cookie which never expires - - - - - Sets a session cookie which expires after the browser session closes - - - - - Sets a persistent cookie which expires after the given time - - - - - Sets a persistent cookie with an expiresAt date - - - - - Deletes a specified cookie by setting its value to empty and expiration to -1 days - - - - - Writes to response. - Response headers are customizable by implementing IHasOptions an returning Dictionary of Http headers. - - The response. - Whether or not it was implicity handled by ServiceStack's built-in handlers. - The default action. - The serialization context. - Add prefix to response body if any - Add suffix to response body if any - - - - - When HTTP Headers have already been written and only the Body can be written - - - - - Respond with a 'Soft redirect' so smart clients (e.g. ajax) have access to the response and - can decide whether or not they should redirect - - - - - Decorate the response with an additional client-side event to instruct participating - smart clients (e.g. ajax) with hints to transparently invoke client-side functionality - - - - - Shortcut to get the ResponseDTO whether it's bare or inside a IHttpResult - - - - - - - Alias of AsDto - - - - - Shortcut to get the ResponseDTO whether it's bare or inside a IHttpResult - - - TResponse if found; otherwise null - - - - Alias of AsDto - - - - - Whether the response is an IHttpError or Exception - - - - - rangeHeader should be of the format "bytes=0-" or "bytes=0-12345" or "bytes=123-456" - - - - - Adds 206 PartialContent Status, Content-Range and Content-Length headers - - - - - Writes partial range as specified by start-end, from fromStream to toStream. - - - - - Writes partial range as specified by start-end, from fromStream to toStream. - - - - - ASP.NET or HttpListener ServiceStack host - - - - - The assemblies reflected to find api services provided in the AppHost constructor - - - - - Register dependency in AppHost IOC on Startup - - - - - AutoWired Registration of an interface with a concrete type in AppHost IOC on Startup. - - - - - Allows the clean up for executed autowired services and filters. - Calls directly after services and filters are executed. - - - - - Called at the end of each request. Enables Request Scope. - - - - - Register callbacks to be called at the end of each request. - - - - - Register user-defined custom routes. - - - - - Inferred Metadata available from existing services - - - - - Register custom ContentType serializers - - - - - Add Request Filters, to be applied before the dto is deserialized - - - - - Add Request Converter to convert Request DTO's - - - - - Add Response Converter to convert Response DTO's - - - - - Add Request Filters for HTTP Requests - - - - - Add Async Request Filters for HTTP Requests - - - - - Add Response Filters for HTTP Responses - - - - - Add Async Response Filters for HTTP Responses - - - - - Add Request Filters for MQ/TCP Requests - - - - - Add Async Request Filters for MQ/TCP Requests - - - - - Add Response Filters for MQ/TCP Responses - - - - - Add Request Filter for a specific Request DTO Type - - - - - Add as a Typed Request Filter for a specific Request DTO Type - - The DTO Type. - The methods to resolve the . - - - - Add Request Filter for a specific Response DTO Type - - - - - Add as a Typed Request Filter for a specific Request DTO Type - - The DTO Type. - The methods to resolve the . - - - - Add Request Filter for a specific MQ Request DTO Type - - - - - Add Request Filter for a specific MQ Response DTO Type - - - - - Add Request Filter for Service Gateway Requests - - - - - Add Response Filter for Service Gateway Responses - - - - - Add alternative HTML View Engines - - - - - Provide an exception handler for unhandled exceptions - - - - - Provide an exception handler for unhandled exceptions (Async) - - - - - Provide an exception handler for un-caught exceptions - - - - - Provide an exception handler for un-caught exceptions (Async) - - - - - Provide callbacks to be fired after the AppHost has finished initializing - - - - - Provide callbacks to be fired when AppHost is being disposed - - - - - Skip the ServiceStack Request Pipeline and process the returned IHttpHandler instead - - - - - Provide a catch-all handler that doesn't match any routes - - - - - Use a fall-back Error Handler for handling global errors - - - - - Use a Custom Error Handler for handling specific error HttpStatusCodes - - - - - Provide a custom model minder for a specific Request DTO - - - - - The AppHost config - - - - - The AppHost AppSettings. Defaults to App or Web.config appSettings. - - - - - Allow specific configuration to be overridden at runtime in multi-tenancy Applications - by overriding GetRuntimeConfig in your AppHost - - - - - Register an Adhoc web service on Startup - - - - - Register all Services in Assembly - - - - - List of pre-registered and user-defined plugins to be enabled in this AppHost - - - - - Apply plugins to this AppHost - - - - - Returns the Absolute File Path, relative from your AppHost's Project Path - - - - - Cascading number of file sources, inc. Embedded Resources, File System, In Memory, S3 - - - - - Read/Write Virtual FileSystem. Defaults to FileSystemVirtualPathProvider - - - - - Register additional Virtual File Sources - - - - - Create a service runner for IService actions - - - - - Resolve the absolute url for this request - - - - - Resolve localized text, returns itself by default. - The Request is provided when exists. - - - - - Execute MQ Message in ServiceStack - - - - - Access Service Controller for ServiceStack - - - - - A convenient repository base class you can inherit from to reduce the boilerplate - with accessing a managed IDbConnection - - - - - A convenient base class for your injected service dependencies that reduces the boilerplate - with managed access to ServiceStack's built-in providers - - - - - Callback for Plugins to register necessary handlers with ServiceStack - - - - - Callback to pre-configure any logic before IPlugin.Register() is fired - - - - - Callback to post-configure any logic after IPlugin.Register() is fired - - - - - Callback for AuthProviders to register callbacks with AuthFeature - - - - - Resolve an alternate Web Service from ServiceStack's IOC container. - - - - - - - How many times to retry processing messages before moving them to the DLQ - - - - - Execute global transformation or custom logic before a request is processed. - Must be thread-safe. - - - - - Execute global transformation or custom logic on the response. - Must be thread-safe. - - - - - If you only want to enable priority queue handlers (and threads) for specific msg types - - - - - Create workers for priority queues - - - - - Opt-in to only publish responses on this white list. - Publishes all responses by default. - - - - - Subscribe to messages sent to .outq - - - - - The max size of the Out MQ Collection in each Type (default 100) - - - - - Encapsulates creating a new message handler - - - - - Processes all messages in a Normal and Priority Queue. - Expects to be called in 1 thread. i.e. Non Thread-Safe. - - - - - - Changes the links for the servicestack/metadata page - - - - - Get the static Parse(string) method on the type supplied - - - - - Gets the constructor info for T(string) if exists. - - - - - Returns the value returned by the 'T.Parse(string)' method if exists otherwise 'new T(string)'. - e.g. if T was a TimeSpan it will return TimeSpan.Parse(textValue). - If there is no Parse Method it will attempt to create a new instance of the destined type - - - - - Only generate specified Verb entries for "ANY" routes - - - - - A strongly-typed resource class, for looking up localized strings, etc. - - - - - Returns the cached ResourceManager instance used by this class. - - - - - Overrides the current thread's CurrentUICulture property for all - resource lookups using this strongly typed resource class. - - - - - Looks up a localized string similar to Container service is built-in and read-only.. - - - - - Looks up a localized string similar to Service type {0} does not inherit or implement {1}.. - - - - - Looks up a localized string similar to Required dependency of type {0} named '{1}' could not be resolved.. - - - - - Looks up a localized string similar to Required dependency of type {0} could not be resolved.. - - - - - Looks up a localized string similar to Unknown scope.. - - - - - Transparently Proxy requests through to downstream HTTP Servers - - - - - Customize the HTTP Request Headers that are sent to downstream server - - - - - Customize the downstream HTTP Response Headers that are returned to client - - - - - Inspect or Transform the HTTP Request Body that's sent downstream - - - - - Inspect or Transform the downstream HTTP Response Body that's returned - - - - - Required filters to specify which requests to proxy and which url to use. - - Specify which requests should be proxied - Specify which downstream url to use - - - - Service error logs are kept in 'urn:ServiceErrors:{ServiceName}' - - - - - Combined service error logs are maintained in 'urn:ServiceErrors:All' - - - - - Enable the Registration feature and configure the RegistrationService. - - - - - Abstraction to provide a context per request. - in spnet.web its equivalent to .Current.Items falls back to CallContext - - - - - Start a new Request context, everything deeper in Async pipeline will get this new RequestContext dictionary. - - - - - Gets a list of items for this request. - - This list will be cleared on every request and is specific to the original thread that is handling the request. - If a handler uses additional threads, this data will not be available on those threads. - - - - - Track any IDisposable's to dispose of at the end of the request in IAppHost.OnEndRequest() - - - - - - Release currently registered dependencies for this request - - true if any dependencies were released - - - - Returns the optimized result for the IRequestContext. - Does not use or store results in any cache. - - - - - - - - Returns the optimized result for the IRequestContext. - Does not use or store results in any cache. - - - - - Overload for the method returning the most - optimized result based on the MimeType and CompressionType from the IRequestContext. - - - - - Overload for the method returning the most - optimized result based on the MimeType and CompressionType from the IRequestContext. - How long to cache for, null is no expiration - - - - - Clears all the serialized and compressed caches set - by the 'Resolve' method for the cacheKey provided - - - - - - - - Store an entry in the IHttpRequest.Items Dictionary - - - - - Get an entry from the IHttpRequest.Items Dictionary - - - - - Base class to create request filter attributes only for specific HTTP methods (GET, POST...) - - - - - Creates a new - - Defines when the filter should be executed - - - - This method is only executed if the HTTP method matches the property. - - The http request wrapper - The http response wrapper - The request DTO - - - - Create a ShallowCopy of this instance. - - - - - - Base class to create request filter attributes only for specific HTTP methods (GET, POST...) - - - - - Creates a new - - Defines when the filter should be executed - - - - This method is only executed if the HTTP method matches the property. - - The http request wrapper - The http response wrapper - The request DTO - - - - Create a ShallowCopy of this instance. - - - - - - RequestLogs service Route, default is /requestlogs - - - - - Turn On/Off Session Tracking - - - - - Turn On/Off Logging of Raw Request Body, default is Off - - - - - Turn On/Off Tracking of Responses - - - - - Turn On/Off Tracking of Exceptions - - - - - Don't log matching requests - - - - - Size of InMemoryRollingRequestLogger circular buffer - - - - - Limit access to /requestlogs service to these roles - - - - - Change the RequestLogger provider. Default is InMemoryRollingRequestLogger - - - - - Don't log requests of these types. By default RequestLog's are excluded - - - - - Don't log request bodys for services with sensitive information. - By default Auth and Registration requests are hidden. - - - - - Limit logging to only Service Requests - - - - - Indicates that the request dto, which is associated with this attribute, - can only execute, if the user has specific permissions. - - - - - Indicates that the request dto, which is associated with this attribute, - can only execute, if the user has specific roles. - - - - - Check all session is in all supplied roles otherwise a 401 HttpError is thrown - - - - - - - Indicates that the request dto, which is associated with this attribute, - can only execute, if the user has specific permissions. - - - - - Indicates that the request dto, which is associated with this attribute, - can only execute, if the user has any of the specified roles. - - - - - Check all session is in any supplied roles otherwise a 401 HttpError is thrown - - - - - - - Base class to create response filter attributes only for specific HTTP methods (GET, POST...) - - - - - Creates a new - - Defines when the filter should be executed - - - - This method is only executed if the HTTP method matches the property. - - The http request wrapper - The http response wrapper - The response DTO - - - - Create a ShallowCopy of this instance. - - - - - - Base class to create response filter attributes only for specific HTTP methods (GET, POST...) - - - - - Creates a new - - Defines when the filter should be executed - - - - This method is only executed if the HTTP method matches the property. - - The http request wrapper - The http response wrapper - The response DTO - - - - Create a ShallowCopy of this instance. - - - - - - Generic + Useful IService base class - - - - - Returns . cache is only persisted for this running app instance. - - - - - Cascading collection of virtual file sources, inc. Embedded Resources, File System, In Memory, S3 - - - - - Read/Write Virtual FileSystem. Defaults to FileSystemVirtualPathProvider - - - - - Dynamic Session Bag - - - - - Typed UserSession - - - - - If user found in session for this request is authenticated. - - - - - Publish a MQ message over the implementation. - - - - - Disposes all created disposable properties of this service - and executes disposing of all request s - (warning, manualy triggering this might lead to unwanted disposing of all request related objects and services.) - - - - - Scans the supplied Assemblies to infer REST paths and HTTP verbs. - - The instance. - - The assemblies with REST services. - - The same instance; - never . - - - - When the AppHost was instantiated. - - - - - When the Init function was done. - Called at begin of - - - - - When all configuration was completed. - Called at the end of - - - - - If app currently runs for unit tests. - Used for overwritting AuthSession. - - - - - The assemblies reflected to find api services. - These can be provided in the constructor call. - - - - - Wether AppHost configuration is done. - Note: It doesn't mean the start function was called. - - - - - Wether AppHost is ready configured and either ready to run or already running. - Equals - - - - - Set the host config of the AppHost. - - - - - Initializes the AppHost. - Calls the method. - Should be called before start. - - - - - Gets Full Directory Path of where the app is running - - - - - Starts the AppHost. - this methods needs to be overwritten in subclass to provider a listener to start handling requests. - - Url to listen to - - - - The AppHost.Container. Note: it is not thread safe to register dependencies after AppStart. - - - - - Collection of PreRequest filters. - They are called before each request is handled by a service, but after an HttpHandler is by the chosen. - called in . - - - - - Collection of RequestConverters. - Can be used to convert/change Input Dto - Called after routing and model binding, but before request filters. - All request converters are called unless - Converter can return null, orginal model will be used. - - Note one converter could influence the input for the next converter! - - - - - Collection of ResponseConverters. - Can be used to convert/change Output Dto - - Called directly after response is handled, even before ! - - - - - Lists of view engines for this app. - If view is needed list is looped until view is found. - - - - - Collection of added plugins. - - - - - Executed immediately before a Service is executed. Use return to change the request DTO used, must be of the same type. - - - - - Executed immediately after a service is executed. Use return to change response used. - - - - - Occurs when the Service throws an Exception. - - - - - Occurs when an exception is thrown whilst processing a request. - - - - - Register singleton in the Ioc Container of the AppHost. - - - - - Registers type to be automatically wired by the Ioc container of the AppHost. - - Concrete type - Abstract type - - - - Tries to resolve type through the ioc container of the AppHost. - Can return null. - - - - - Resolves Type through the Ioc container of the AppHost. - - If type is not registered - - - - Looks for first plugin of this type in Plugins. - Reflection performance penalty. - - - - - Apply PreRequest Filters for participating Custom Handlers, e.g. RazorFormat, MarkdownFormat, etc - - - - - Apply PreAuthenticate Filters from IAuthWithRequest AuthProviders - - - - - Applies the raw request filters. Returns whether or not the request has been handled - and no more processing should be done. - - - - - - Applies the request filters. Returns whether or not the request has been handled - and no more processing should be done. - - - - - - Applies the response filters. Returns whether or not the request has been handled - and no more processing should be done. - - - - - - Inspect or modify ever new UserSession created or resolved from cache. - return null if Session is invalid to create new Session. - - - - - Gets IDbConnection Checks if DbInfo is seat in RequestContext. - See multitenancy: http://docs.servicestack.net/multitenancy - Called by itself, and - - Provided by services and pageView, can be helpfull when overriding this method - - - - - Resolves based on .GetClient(); - Called by itself, and - - Provided by services and pageView, can be helpfull when overriding this method - - - - - If they don't have an ICacheClient configured use an In Memory one. - - - - - Tries to resolve through Ioc container. - If not registered, it falls back to .GetClient(); - Called by itself, and - - Provided by services and pageView, can be helpfull when overriding this method - - - - - Returns . cache is only persisted for this running app instance. - Called by .MemoryCacheClient - - Provided by services and pageView, can be helpfull when overriding this method - Nullable MemoryCacheClient - - - - Returns from the IOC container. - Called by itself, and - - Provided by services and PageViewBase, can be helpfull when overriding this method - - - - - Typed UserSession - - - - - Dynamic Session Bag - - - - - Configure ServiceStack to have ISession support - - - - - Create the active Session or Permanent Session Id cookie. - - - - - - Create both Permanent and Session Id cookies and return the active sessionId - - - - - - Load Embedded Resource Templates in ServiceStack. - To get ServiceStack to use your own instead just add a copy of one or more of the following to your Web Root: - ~/Templates/IndexOperations.html - ~/Templates/OperationControl.html - ~/Templates/HtmlFormat.html - - - - - Converts the validation result to an error result which will be serialized by ServiceStack in a clean and human-readable way. - - The validation result - - - - - Converts the validation result to an error exception which will be serialized by ServiceStack in a clean and human-readable way - if the returned exception is thrown. - - The validation result - - - - - Creates a new instance of the RulesetValidatorSelector. - - - - - Determines whether or not a rule should execute. - - The rule - Property path (eg Customer.Address.Line1) - Contextual information - Whether or not the validator can execute. - - - - Activate the validation mechanism, so every request DTO with an existing validator - will be validated. - - The app host - - - - Override to provide additional/less context about the Service Exception. - By default the request is serialized and appended to the ResponseStatus StackTrace. - - - - - Auto-scans the provided assemblies for a - and registers it in the provided IoC container. - - The IoC container - The assemblies to scan for a validator - - - - Main container class for components, supporting container hierarchies and - lifetime management of instances. - - - - - Register an autowired dependency - - - - - - Register an autowired dependency - - Name of dependency - - - - - Register an autowired dependency as a separate type - - - - - - Register an autowired dependency as a separate type - - - - - - Alias for RegisterAutoWiredAs - - - - - - Alias for RegisterAutoWiredAs - - - - - - Auto-wires an existing instance, - ie all public properties are tried to be resolved. - - - - - - Generates a function which creates and auto-wires . - - - - - - - - Auto-wires an existing instance of a specific type. - The auto-wiring progress is also cached to be faster - when calling next time with the same type. - - - - - - Initializes a new empty container. - - - - - Default owner for new registrations. by default. - - - - - Default reuse scope for new registrations. by default. - - - - - Creates a child container of the current one, which exposes its - current service registration to the new child container. - - - - - Disposes the container and all instances owned by it (see - ), as well as all child containers - created through . - - - - - Registers a service instance with the container. This instance - will have and - behavior. - Service instance to use. - - - - Registers a named service instance with the container. This instance - will have and - behavior. - Name of the service to register.Service instance to use. - - - - Retrieves a function that can be used to lazily resolve an instance - of the service when needed. - Type of the service to retrieve.The function that can resolve to the service instance when invoked.The requested service has not been registered previously. - - - - - - - - - - - - - - - - - - - - - - Retrieves a function that can be used to lazily resolve an instance - of the service with the given name when needed. - Type of the service to retrieve.Name of the service to retrieve.The function that can resolve to the service instance with the given name when invoked.The requested service with the given name has not been registered previously. - - - - Retrieves a function that can be used to lazily resolve an instance - of the service of the given type, name and service constructor arguments when needed. - Name of the service to retrieve.The function that can resolve to the service instance with the given and service constructor arguments name when invoked.The requested service with the given name and constructor arguments has not been registered previously. - - - - Retrieves a function that can be used to lazily resolve an instance - of the service of the given type, name and service constructor arguments when needed. - Name of the service to retrieve.The function that can resolve to the service instance with the given and service constructor arguments name when invoked.The requested service with the given name and constructor arguments has not been registered previously. - - - - Retrieves a function that can be used to lazily resolve an instance - of the service of the given type, name and service constructor arguments when needed. - Name of the service to retrieve.The function that can resolve to the service instance with the given and service constructor arguments name when invoked.The requested service with the given name and constructor arguments has not been registered previously. - - - - Retrieves a function that can be used to lazily resolve an instance - of the service of the given type, name and service constructor arguments when needed. - Name of the service to retrieve.The function that can resolve to the service instance with the given and service constructor arguments name when invoked.The requested service with the given name and constructor arguments has not been registered previously. - - - - Retrieves a function that can be used to lazily resolve an instance - of the service of the given type, name and service constructor arguments when needed. - Name of the service to retrieve.The function that can resolve to the service instance with the given and service constructor arguments name when invoked.The requested service with the given name and constructor arguments has not been registered previously. - - - - Retrieves a function that can be used to lazily resolve an instance - of the service of the given type, name and service constructor arguments when needed. - Name of the service to retrieve.The function that can resolve to the service instance with the given and service constructor arguments name when invoked.The requested service with the given name and constructor arguments has not been registered previously. - - - - Registers the given service by providing a factory delegate to - instantiate it. - The service type to register.The factory delegate to initialize new instances of the service when needed.The registration object to perform further configuration via its fluent interface. - - - - Registers the given service by providing a factory delegate that receives arguments to - instantiate it. - The service type to register.First argument that should be passed to the factory delegate to create the instace.The factory delegate to initialize new instances of the service when needed.The registration object to perform further configuration via its fluent interface. - - - - Registers the given service by providing a factory delegate that receives arguments to - instantiate it. - The service type to register.First argument that should be passed to the factory delegate to create the instace.Second argument that should be passed to the factory delegate to create the instace.The factory delegate to initialize new instances of the service when needed.The registration object to perform further configuration via its fluent interface. - - - - Registers the given service by providing a factory delegate that receives arguments to - instantiate it. - The service type to register.First argument that should be passed to the factory delegate to create the instace.Second argument that should be passed to the factory delegate to create the instace.Third argument that should be passed to the factory delegate to create the instace.The factory delegate to initialize new instances of the service when needed.The registration object to perform further configuration via its fluent interface. - - - - Registers the given service by providing a factory delegate that receives arguments to - instantiate it. - The service type to register.First argument that should be passed to the factory delegate to create the instace.Second argument that should be passed to the factory delegate to create the instace.Third argument that should be passed to the factory delegate to create the instace.Fourth argument that should be passed to the factory delegate to create the instace.The factory delegate to initialize new instances of the service when needed.The registration object to perform further configuration via its fluent interface. - - - - Registers the given service by providing a factory delegate that receives arguments to - instantiate it. - The service type to register.First argument that should be passed to the factory delegate to create the instace.Second argument that should be passed to the factory delegate to create the instace.Third argument that should be passed to the factory delegate to create the instace.Fourth argument that should be passed to the factory delegate to create the instace.Fifth argument that should be passed to the factory delegate to create the instace.The factory delegate to initialize new instances of the service when needed.The registration object to perform further configuration via its fluent interface. - - - - Registers the given service by providing a factory delegate that receives arguments to - instantiate it. - The service type to register.First argument that should be passed to the factory delegate to create the instace.Second argument that should be passed to the factory delegate to create the instace.Third argument that should be passed to the factory delegate to create the instace.Fourth argument that should be passed to the factory delegate to create the instace.Fifth argument that should be passed to the factory delegate to create the instace.Sixth argument that should be passed to the factory delegate to create the instace.The factory delegate to initialize new instances of the service when needed.The registration object to perform further configuration via its fluent interface. - - - - Registers the given named service by providing a factory delegate to - instantiate it. - The service type to register.A name used to differenciate this service registration.The factory delegate to initialize new instances of the service when needed.The registration object to perform further configuration via its fluent interface. - - - - Registers the given named service by providing a factory delegate that receives arguments to - instantiate it. - The service type to register.First argument that should be passed to the factory delegate to create the instace.A name used to differenciate this service registration.The factory delegate to initialize new instances of the service when needed.The registration object to perform further configuration via its fluent interface. - - - - Registers the given named service by providing a factory delegate that receives arguments to - instantiate it. - The service type to register.First argument that should be passed to the factory delegate to create the instace.Second argument that should be passed to the factory delegate to create the instace.A name used to differenciate this service registration.The factory delegate to initialize new instances of the service when needed.The registration object to perform further configuration via its fluent interface. - - - - Registers the given named service by providing a factory delegate that receives arguments to - instantiate it. - The service type to register.First argument that should be passed to the factory delegate to create the instace.Second argument that should be passed to the factory delegate to create the instace.Third argument that should be passed to the factory delegate to create the instace.A name used to differenciate this service registration.The factory delegate to initialize new instances of the service when needed.The registration object to perform further configuration via its fluent interface. - - - - Registers the given named service by providing a factory delegate that receives arguments to - instantiate it. - The service type to register.First argument that should be passed to the factory delegate to create the instace.Second argument that should be passed to the factory delegate to create the instace.Third argument that should be passed to the factory delegate to create the instace.Fourth argument that should be passed to the factory delegate to create the instace.A name used to differenciate this service registration.The factory delegate to initialize new instances of the service when needed.The registration object to perform further configuration via its fluent interface. - - - - Registers the given named service by providing a factory delegate that receives arguments to - instantiate it. - The service type to register.First argument that should be passed to the factory delegate to create the instace.Second argument that should be passed to the factory delegate to create the instace.Third argument that should be passed to the factory delegate to create the instace.Fourth argument that should be passed to the factory delegate to create the instace.Fifth argument that should be passed to the factory delegate to create the instace.A name used to differenciate this service registration.The factory delegate to initialize new instances of the service when needed.The registration object to perform further configuration via its fluent interface. - - - - Registers the given named service by providing a factory delegate that receives arguments to - instantiate it. - The service type to register.First argument that should be passed to the factory delegate to create the instace.Second argument that should be passed to the factory delegate to create the instace.Third argument that should be passed to the factory delegate to create the instace.Fourth argument that should be passed to the factory delegate to create the instace.Fifth argument that should be passed to the factory delegate to create the instace.Sixth argument that should be passed to the factory delegate to create the instace.A name used to differenciate this service registration.The factory delegate to initialize new instances of the service when needed.The registration object to perform further configuration via its fluent interface. - - - - Resolves the given service by type, without passing any arguments for - its construction. - Type of the service to retrieve.The resolved service instance.The given service could not be resolved. - - - - Resolves the given service by type, passing the given arguments - for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.The resolved service instance.The given service could not be resolved. - - - - Resolves the given service by type, passing the given arguments - for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.The resolved service instance.The given service could not be resolved. - - - - Resolves the given service by type, passing the given arguments - for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.Third argument to pass to the factory delegate that may create the instace.The resolved service instance.The given service could not be resolved. - - - - Resolves the given service by type, passing the given arguments - for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.Third argument to pass to the factory delegate that may create the instace.Fourth argument to pass to the factory delegate that may create the instace.The resolved service instance.The given service could not be resolved. - - - - Resolves the given service by type, passing the given arguments - for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.Third argument to pass to the factory delegate that may create the instace.Fourth argument to pass to the factory delegate that may create the instace.Fifth argument to pass to the factory delegate that may create the instace.The resolved service instance.The given service could not be resolved. - - - - Resolves the given service by type, passing the given arguments - for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.Third argument to pass to the factory delegate that may create the instace.Fourth argument to pass to the factory delegate that may create the instace.Fifth argument to pass to the factory delegate that may create the instace.Sixth argument to pass to the factory delegate that may create the instace.The resolved service instance.The given service could not be resolved. - - - - Resolves the given service by type and name, without passing arguments for its initialization. - Type of the service to retrieve.The resolved service instance.The given service could not be resolved. - - - - Resolves the given service by type and name, passing the given arguments - for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.The resolved service instance.The given service could not be resolved. - - - - Resolves the given service by type and name, passing the given arguments - for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.The resolved service instance.The given service could not be resolved. - - - - Resolves the given service by type and name, passing the given arguments - for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.Third argument to pass to the factory delegate that may create the instace.The resolved service instance.The given service could not be resolved. - - - - Resolves the given service by type and name, passing the given arguments - for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.Third argument to pass to the factory delegate that may create the instace.Fourth argument to pass to the factory delegate that may create the instace.The resolved service instance.The given service could not be resolved. - - - - Resolves the given service by type and name, passing the given arguments - for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.Third argument to pass to the factory delegate that may create the instace.Fourth argument to pass to the factory delegate that may create the instace.Fifth argument to pass to the factory delegate that may create the instace.The resolved service instance.The given service could not be resolved. - - - - Resolves the given service by type and name, passing the given arguments - for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.Third argument to pass to the factory delegate that may create the instace.Fourth argument to pass to the factory delegate that may create the instace.Fifth argument to pass to the factory delegate that may create the instace.Sixth argument to pass to the factory delegate that may create the instace.The resolved service instance.The given service could not be resolved. - - - - Attempts to resolve the given service by type, without passing arguments for its initialization. - Type of the service to retrieve. - The resolved service instance or if it cannot be resolved. - - - - - Attempts to resolve the given service by type, passing the - given arguments arguments for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace. - The resolved service instance or if it cannot be resolved. - - - - - Attempts to resolve the given service by type, passing the - given arguments arguments for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace. - The resolved service instance or if it cannot be resolved. - - - - - Attempts to resolve the given service by type, passing the - given arguments arguments for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.Third argument to pass to the factory delegate that may create the instace. - The resolved service instance or if it cannot be resolved. - - - - - Attempts to resolve the given service by type, passing the - given arguments arguments for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.Third argument to pass to the factory delegate that may create the instace.Fourth argument to pass to the factory delegate that may create the instace. - The resolved service instance or if it cannot be resolved. - - - - - Attempts to resolve the given service by type, passing the - given arguments arguments for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.Third argument to pass to the factory delegate that may create the instace.Fourth argument to pass to the factory delegate that may create the instace.Fifth argument to pass to the factory delegate that may create the instace. - The resolved service instance or if it cannot be resolved. - - - - - Attempts to resolve the given service by type, passing the - given arguments arguments for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.Third argument to pass to the factory delegate that may create the instace.Fourth argument to pass to the factory delegate that may create the instace.Fifth argument to pass to the factory delegate that may create the instace.Sixth argument to pass to the factory delegate that may create the instace. - The resolved service instance or if it cannot be resolved. - - - - - Attempts to resolve the given service by type and name, without passing - arguments arguments for its initialization. - Type of the service to retrieve. - The resolved service instance or if it cannot be resolved. - - - - - Attempts to resolve the given service by type and name, passing the - given arguments arguments for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace. - The resolved service instance or if it cannot be resolved. - - - - - Attempts to resolve the given service by type and name, passing the - given arguments arguments for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace. - The resolved service instance or if it cannot be resolved. - - - - - Attempts to resolve the given service by type and name, passing the - given arguments arguments for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.Third argument to pass to the factory delegate that may create the instace. - The resolved service instance or if it cannot be resolved. - - - - - Attempts to resolve the given service by type and name, passing the - given arguments arguments for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.Third argument to pass to the factory delegate that may create the instace.Fourth argument to pass to the factory delegate that may create the instace. - The resolved service instance or if it cannot be resolved. - - - - - Attempts to resolve the given service by type and name, passing the - given arguments arguments for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.Third argument to pass to the factory delegate that may create the instace.Fourth argument to pass to the factory delegate that may create the instace.Fifth argument to pass to the factory delegate that may create the instace. - The resolved service instance or if it cannot be resolved. - - - - - Attempts to resolve the given service by type and name, passing the - given arguments arguments for its initialization. - Type of the service to retrieve.First argument to pass to the factory delegate that may create the instace.Second argument to pass to the factory delegate that may create the instace.Third argument to pass to the factory delegate that may create the instace.Fourth argument to pass to the factory delegate that may create the instace.Fifth argument to pass to the factory delegate that may create the instace.Sixth argument to pass to the factory delegate that may create the instace. - The resolved service instance or if it cannot be resolved. - - - - - Encapsulates a method that has five parameters and returns a value of the - type specified by the parameter. - - - - - Encapsulates a method that has six parameters and returns a value of the - type specified by the parameter. - - - - - Encapsulates a method that has seven parameters and returns a value of the - type specified by the parameter. - - - - - Helper interface used to hide the base - members from the fluent API to make for much cleaner - Visual Studio intellisense experience. - - - - - - - - - - - - - - - - - Funqlets are a set of components provided as a package - to an existing container (like a module). - - - - - Configure the given container with the - registrations provided by the funqlet. - - Container to register. - - - - Interface used by plugins to contribute registrations - to an existing container. - - - - - Determines who is responsible for disposing instances - registered with a container. - - - - - Container should dispose provided instances when it is disposed. This is the - default. - - - - - Container does not dispose provided instances. - - - - - Default owner, which equals . - - - - - Exception thrown by the container when a service cannot be resolved. - - - - - Initializes the exception with the service that could not be resolved. - - - - - Initializes the exception with the service (and its name) that could not be resolved. - - - - - Initializes the exception with an arbitrary message. - - - - - Determines visibility and reuse of instances provided by the container. - - - - - Instances are reused within a container hierarchy. Instances - are created (if necessary) in the container where the registration - was performed, and are reused by all descendent containers. - - - - - Instances are reused only at the given container. Descendent - containers do not reuse parent container instances and get - a new instance at their level. - - - - - Each request to resolve the dependency will result in a new - instance being returned. - - - - - Instaces are reused within the given request - - - - - Default scope, which equals . - - - - - Ownership setting for the service. - - - - - Reuse scope setting for the service. - - - - - The container where the entry was registered. - - - - - Specifies the owner for instances, which determines how - they will be disposed. - - - - - Specifies the scope for instances, which determines - visibility of instances across containers and hierarchies. - - - - - The Func delegate that creates instances of the service. - - - - - The cached service instance if the scope is or - . - - - - - The Func delegate that initializes the object after creation. - - - - - Clones the service entry assigning the to the - . Does not copy the . - - - - - Fluent API for customizing the registration of a service. - - - - - Fluent API for customizing the registration of a service. - - - - - Fluent API that allows registering an initializer for the - service. - - - - - Specifies an initializer that should be invoked after - the service instance has been created by the factory. - - - - - Fluent API that exposes both - and owner (). - - - - - Fluent API that allows specifying the reuse instances. - - - - - Specifies how instances are reused within a container or hierarchy. Default - scope is . - - - - - Fluent API that allows specifying the owner of instances - created from a registration. - - - - - Specifies the owner of instances created from this registration. Default - owner is . - - - - diff --git a/src/.nuget/NuGet.Config b/src/.nuget/NuGet.Config new file mode 100644 index 0000000..3f0e003 --- /dev/null +++ b/src/.nuget/NuGet.Config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/.nuget/NuGet.config b/src/.nuget/NuGet.config deleted file mode 100644 index fe6a62c..0000000 --- a/src/.nuget/NuGet.config +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/.nuget/NuGet.exe b/src/.nuget/NuGet.exe deleted file mode 100644 index 856263d..0000000 Binary files a/src/.nuget/NuGet.exe and /dev/null differ diff --git a/src/.nuget/NuGet.targets b/src/.nuget/NuGet.targets deleted file mode 100644 index f2d0eb3..0000000 --- a/src/.nuget/NuGet.targets +++ /dev/null @@ -1,77 +0,0 @@ - - - - $(MSBuildProjectDirectory)\..\ - - - - - $([System.IO.Path]::Combine($(SolutionDir), ".nuget")) - $([System.IO.Path]::Combine($(ProjectDir), "packages.config")) - $([System.IO.Path]::Combine($(SolutionDir), "packages")) - - - - - $(SolutionDir).nuget - packages.config - $(SolutionDir)packages - - - - - $(NuGetToolsPath)\NuGet.exe - "$(NuGetExePath)" - mono --runtime=v4.0.30319 $(NuGetExePath) - - $(TargetDir.Trim('\\')) - - - "" - - - false - - - false - - - $(NuGetCommand) install "$(PackagesConfig)" -source $(PackageSources) -o "$(PackagesDir)" - $(NuGetCommand) pack "$(ProjectPath)" -p Configuration=$(Configuration) -o "$(PackageOutputDir)" -symbols - - - - RestorePackages; - $(BuildDependsOn); - - - - - $(BuildDependsOn); - BuildPackage; - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Directory.Build.props b/src/Directory.Build.props new file mode 100644 index 0000000..ff035a2 --- /dev/null +++ b/src/Directory.Build.props @@ -0,0 +1,54 @@ + + + + 6.0.3 + ServiceStack + ServiceStack, Inc. + © 2008-2022 ServiceStack, Inc + true + https://github.com/ServiceStack/ServiceStack + https://servicestack.net/terms + https://servicestack.net/img/logo-64.png + https://docs.servicestack.net/release-notes-history + git + https://github.com/ServiceStack/ServiceStack.git + embedded + latest + true + true + false + + + + true + true + + + + $(DefineConstants);NETFX;NET45;NET472 + True + False + ../servicestack.snk + + + + $(DefineConstants);NETSTANDARD;NETSTANDARD2_0 + + + + $(DefineConstants);NET6_0;NET6_0_OR_GREATER + + + + $(DefineConstants);NETCORE;NETCORE_SUPPORT + + + + + + + + DEBUG + + + diff --git a/src/ServiceStack.Azure.sln b/src/ServiceStack.Azure.sln index c8c4a6d..fd3b869 100644 --- a/src/ServiceStack.Azure.sln +++ b/src/ServiceStack.Azure.sln @@ -12,8 +12,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{DCEE435D ..\build\build.bat = ..\build\build.bat ..\build\build.proj = ..\build\build.proj ..\README.md = ..\README.md - ..\NuGet\ServiceStack.Azure.Core\servicestack.azure.core.nuspec = ..\NuGet\ServiceStack.Azure.Core\servicestack.azure.core.nuspec - ..\NuGet\ServiceStack.Azure\servicestack.azure.nuspec = ..\NuGet\ServiceStack.Azure\servicestack.azure.nuspec + ServiceStack.Azure\ServiceStack.Azure.Core.csproj = ServiceStack.Azure\ServiceStack.Azure.Core.csproj + Directory.Build.props = Directory.Build.props + ..\build\build-core.proj = ..\build\build-core.proj + ..\tests\Directory.Build.props = ..\tests\Directory.Build.props EndProjectSection EndProject Global diff --git a/src/ServiceStack.Azure/AzureScripts.cs b/src/ServiceStack.Azure/AzureScripts.cs new file mode 100644 index 0000000..53b9c13 --- /dev/null +++ b/src/ServiceStack.Azure/AzureScripts.cs @@ -0,0 +1,22 @@ +using ServiceStack.Azure.Storage; +using ServiceStack.Script; + +namespace ServiceStack.Azure +{ + public class AzureScriptPlugin : IScriptPlugin + { + public void Register(ScriptContext context) + { + context.ScriptMethods.Add(new AzureScripts()); + } + } + + public class AzureScripts : ScriptMethods + { + public AzureBlobVirtualFiles vfsAzureBlob(string connectionString, string containerName) => + new AzureBlobVirtualFiles(connectionString, containerName); + + public AzureAppendBlobVirtualFiles vfsAzureAppendBlob(string connectionString, string containerName) => + new AzureAppendBlobVirtualFiles(connectionString, containerName); + } +} diff --git a/src/ServiceStack.Azure/Messaging/QueueClientExtensions.cs b/src/ServiceStack.Azure/Messaging/QueueClientExtensions.cs index d3f79a6..545c465 100644 --- a/src/ServiceStack.Azure/Messaging/QueueClientExtensions.cs +++ b/src/ServiceStack.Azure/Messaging/QueueClientExtensions.cs @@ -1,6 +1,10 @@ using System.Threading.Tasks; using System; +using System.IO; +using System.Linq; +using System.Reflection; using System.Text; +using ServiceStack; using ServiceStack.Text; namespace ServiceStack.Azure.Messaging @@ -8,13 +12,14 @@ namespace ServiceStack.Azure.Messaging public static class QueueClientExtensions { -#if NETSTANDARD2_0 - static readonly System.Reflection.PropertyInfo innerReceiverProperty = typeof(Microsoft.Azure.ServiceBus.QueueClient).GetProperty("InnerReceiver"); +#if NETCORE + static readonly PropertyInfo InnerReceiverProperty = + typeof(Microsoft.Azure.ServiceBus.QueueClient).GetProperties(BindingFlags.NonPublic | BindingFlags.Instance).First(x => x.Name == "InnerReceiver"); public static async Task ReceiveAsync(this Microsoft.Azure.ServiceBus.QueueClient sbClient, TimeSpan? timeout) { - var receiver = (Microsoft.Azure.ServiceBus.Core.MessageReceiver)innerReceiverProperty.GetValue(sbClient); + var receiver = (Microsoft.Azure.ServiceBus.Core.MessageReceiver)InnerReceiverProperty.GetValue(sbClient); var msg = timeout.HasValue ? await receiver.ReceiveAsync(timeout.Value) @@ -22,11 +27,20 @@ public static class QueueClientExtensions return msg; } +#endif + + public static string FromMessageBody(this byte[] messageBody) => FromMessageBody(messageBody.FromUtf8Bytes()); - public static string GetBodyString(this Microsoft.Azure.ServiceBus.Message message) + public static string FromMessageBody(this Stream messageBody) + { + using (messageBody) + { + return messageBody.ReadToEnd().FromMessageBody(); + } + } + + public static string FromMessageBody(this string strMessage) { - var strMessage = Encoding.UTF8.GetString(message.Body); - //Windows Azure Client is not wire-compatible with .NET Core client //we check if the message comes from Windows client and cut off //64 header chars and 2 footer chars @@ -38,10 +52,9 @@ public static string GetBodyString(this Microsoft.Azure.ServiceBus.Message messa return strMessage; } -#endif internal static string SafeQueueName(this string queueName) => - queueName?.Replace(":", "."); + queueName?.Replace(":", ".").Replace("[]", "Array"); } } diff --git a/src/ServiceStack.Azure/Messaging/ServiceBusMqClient.cs b/src/ServiceStack.Azure/Messaging/ServiceBusMqClient.cs index 135f34c..14820c4 100644 --- a/src/ServiceStack.Azure/Messaging/ServiceBusMqClient.cs +++ b/src/ServiceStack.Azure/Messaging/ServiceBusMqClient.cs @@ -2,10 +2,11 @@ using ServiceStack.Text; using System; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; -#if NETSTANDARD2_0 +#if NETCORE using Microsoft.Azure.ServiceBus; using Microsoft.Azure.ServiceBus.Core; #else @@ -41,13 +42,13 @@ public void Ack(IMessage message) var sbClient = parentFactory.GetOrCreateClient(queueName); try { -#if NETSTANDARD2_0 - sbClient.CompleteAsync(lockToken).Wait(); +#if NETCORE + sbClient.CompleteAsync(lockToken).GetAwaiter().GetResult(); #else sbClient.Complete(Guid.Parse(lockToken)); #endif } - catch (Exception ex) + catch (Exception) { throw; } @@ -58,13 +59,14 @@ public IMessage CreateMessage(object mqResponse) if (mqResponse is IMessage) return (IMessage)mqResponse; -#if NETSTANDARD2_0 +#if NETCORE if (!(mqResponse is Microsoft.Azure.ServiceBus.Message msg)) return null; - var msgBody = msg.GetBodyString(); + var msgBody = msg.Body.FromMessageBody(); #else - if (!(mqResponse is BrokeredMessage msg)) return null; - var msgBody = msg.GetBody(); + if (!(mqResponse is BrokeredMessage msg)) + return null; + var msgBody = msg.GetBody().FromMessageBody(); #endif var iMessage = (IMessage)JsonSerializer.DeserializeFromString(msgBody, typeof(IMessage)); @@ -83,8 +85,8 @@ public override void Dispose() var sbClient = parentFactory.GetOrCreateClient(queueName); string lockToken = null; -#if NETSTANDARD2_0 - var msg = sbClient.ReceiveAsync(timeout).Result; +#if NETCORE + var msg = Task.Run(() => sbClient.ReceiveAsync(timeout)).GetAwaiter().GetResult(); if (msg != null) lockToken = msg.SystemProperties.LockToken; #else @@ -108,7 +110,7 @@ public override void Dispose() return iMessage; } -#if NETSTANDARD2_0 +#if NETCORE private async Task GetMessageFromReceiver(MessageReceiver messageReceiver, TimeSpan? timeout) { var msg = timeout.HasValue @@ -138,7 +140,7 @@ public override void Dispose() if (!task.IsCompleted) throw new TimeoutException("Reached timeout while getting message from client"); - } else + } else { await task; } @@ -168,6 +170,9 @@ public void Nak(IMessage message, bool requeue, Exception exception = null) public void Notify(string queueName, IMessage message) { + if (parentFactory.MqServer.DisableNotifyMessages) + return; + Publish(queueName, message); } diff --git a/src/ServiceStack.Azure/Messaging/ServiceBusMqMessageFactory.cs b/src/ServiceStack.Azure/Messaging/ServiceBusMqMessageFactory.cs index 2e0f1bb..9cc9d7f 100644 --- a/src/ServiceStack.Azure/Messaging/ServiceBusMqMessageFactory.cs +++ b/src/ServiceStack.Azure/Messaging/ServiceBusMqMessageFactory.cs @@ -3,8 +3,10 @@ using System.Threading.Tasks; using System.Collections.Generic; using System.Collections.Concurrent; -#if NETSTANDARD2_0 + +#if NETCORE using Microsoft.Azure.ServiceBus; +using Microsoft.Azure.ServiceBus.Management; #else using Microsoft.ServiceBus; using Microsoft.ServiceBus.Messaging; @@ -15,28 +17,45 @@ namespace ServiceStack.Azure.Messaging { public class ServiceBusMqMessageFactory : IMessageFactory { +#if NETCORE + public Action PublishMessageFilter { get; set; } +#else + public Action PublishMessageFilter { get; set; } +#endif + + protected internal readonly string address; -#if !NETSTANDARD2_0 +#if !NETCORE protected internal readonly NamespaceManager namespaceManager; +#else + protected internal readonly ManagementClient managementClient; #endif internal Dictionary handlerMap; Dictionary queueMap; // A list of all Service Bus QueueClients - one per type & queue (priorityq, inq, outq, and dlq) - private static readonly ConcurrentDictionary sbClients = new ConcurrentDictionary(); + private static readonly ConcurrentDictionary sbClients = + new ConcurrentDictionary(); + + public ServiceBusMqServer MqServer { get; } - public ServiceBusMqMessageFactory(string address) + public ServiceBusMqMessageFactory(ServiceBusMqServer mqServer, string address) { + this.MqServer = mqServer; this.address = address; -#if !NETSTANDARD2_0 +#if !NETCORE this.namespaceManager = NamespaceManager.CreateFromConnectionString(address); +#else + this.managementClient = new ManagementClient(address); #endif } public IMessageProducer CreateMessageProducer() { - return new ServiceBusMqMessageProducer(this); + return new ServiceBusMqMessageProducer(this) { + PublishMessageFilter = PublishMessageFilter, + }; } public IMessageQueueClient CreateMessageQueueClient() @@ -46,17 +65,16 @@ public IMessageQueueClient CreateMessageQueueClient() public void Dispose() { - } - protected internal void StartQueues(Dictionary handlerMap) + protected internal void StartQueues(Dictionary handlerMap, Dictionary handlerThreadCountMap) { // Create queues for each registered type this.handlerMap = handlerMap; queueMap = new Dictionary(); - var mqSuffixes = new [] { ".inq", ".outq", ".priorityq", ".dlq" }; + var mqSuffixes = new[] {".inq", ".outq", ".priorityq", ".dlq"}; foreach (var type in this.handlerMap.Keys) { foreach (var mqSuffix in mqSuffixes) @@ -66,45 +84,52 @@ protected internal void StartQueues(Dictionary han if (!queueMap.ContainsKey(queueName)) queueMap.Add(queueName, type); -#if !NETSTANDARD2_0 + var mqDesc = new QueueDescription(queueName); +#if !NETCORE if (!namespaceManager.QueueExists(queueName)) namespaceManager.CreateQueue(mqDesc); +#else + // Prefer GetAwaiter().GetResult() so that the StackTrace + // is easier to use, see: + // https://stackoverflow.com/a/36427080 + if (!managementClient.QueueExistsAsync(mqDesc.Path).GetAwaiter().GetResult()) + managementClient.CreateQueueAsync(mqDesc).GetAwaiter().GetResult(); #endif } var mqNames = new QueueNames(type); - AddQueueHandler(mqNames.In); - AddQueueHandler(mqNames.Priority); + AddQueueHandler(mqNames.In, handlerThreadCountMap[type]); + AddQueueHandler(mqNames.Priority, handlerThreadCountMap[type]); } } - private void AddQueueHandler(string queueName) + private void AddQueueHandler(string queueName, int threadCount=1) { queueName = queueName.SafeQueueName(); -#if NETSTANDARD2_0 +#if NETCORE var sbClient = new QueueClient(address, queueName, ReceiveMode.PeekLock); var sbWorker = new ServiceBusMqWorker(this, CreateMessageQueueClient(), queueName, sbClient); sbClient.RegisterMessageHandler(sbWorker.HandleMessageAsync, new MessageHandlerOptions( - (eventArgs) => Task.CompletedTask) - { - MaxConcurrentCalls = 1, + (eventArgs) => Task.CompletedTask) + { + MaxConcurrentCalls = threadCount, AutoComplete = false }); #else + var sbClient = QueueClient.CreateFromConnectionString(address, queueName, ReceiveMode.PeekLock); var options = new OnMessageOptions { - // Cannot use AutoComplete because our HandleMessage throws errors into SS's handlers; this would + // Cannot use AutoComplete because our HandleMessage throws errors into SS's handlers; this would // normally release the BrokeredMessage back to the Azure Service Bus queue, which we don't actually want - AutoComplete = false, + AutoComplete = false, //AutoRenewTimeout = new TimeSpan() - MaxConcurrentCalls = 1 + MaxConcurrentCalls = threadCount }; - var sbClient = QueueClient.CreateFromConnectionString(address, queueName, ReceiveMode.PeekLock); var sbWorker = new ServiceBusMqWorker(this, CreateMessageQueueClient(), queueName, sbClient); sbClient.OnMessage(sbWorker.HandleMessage, options); #endif @@ -113,7 +138,7 @@ private void AddQueueHandler(string queueName) protected internal void StopQueues() { -#if NETSTANDARD2_0 +#if NETCORE sbClients.Each(async kvp => await kvp.Value.CloseAsync()); #else sbClients.Each(kvp => kvp.Value.Close()); @@ -124,25 +149,37 @@ protected internal void StopQueues() protected internal QueueClient GetOrCreateClient(string queueName) { queueName = queueName.SafeQueueName(); - + if (sbClients.ContainsKey(queueName)) return sbClients[queueName]; -#if !NETSTANDARD2_0 - // Create queue on ServiceBus namespace if it doesn't exist var qd = new QueueDescription(queueName); - if (!namespaceManager.QueueExists(queueName)) - namespaceManager.CreateQueue(qd); -#endif -#if NETSTANDARD2_0 - var sbClient = new QueueClient(address, queueName); -#else +#if !NETCORE +// Create queue on ServiceBus namespace if it doesn't exist + if (!namespaceManager.QueueExists(queueName)) + { + try + { + namespaceManager.CreateQueue(qd); + } + catch (MessagingEntityAlreadyExistsException) { /* ignore */ } + } var sbClient = QueueClient.CreateFromConnectionString(address, qd.Path); -#endif +#else + if (!managementClient.QueueExistsAsync(queueName).GetAwaiter().GetResult()) + { + try + { + managementClient.CreateQueueAsync(qd).GetAwaiter().GetResult(); + } + catch (MessagingEntityAlreadyExistsException) { /* ignore */ } + } + var sbClient = new QueueClient(address, queueName); +#endif sbClient = sbClients.GetOrAdd(queueName, sbClient); return sbClient; } } -} +} \ No newline at end of file diff --git a/src/ServiceStack.Azure/Messaging/ServiceBusMqMessageProducer.cs b/src/ServiceStack.Azure/Messaging/ServiceBusMqMessageProducer.cs index 4073536..ef5675f 100644 --- a/src/ServiceStack.Azure/Messaging/ServiceBusMqMessageProducer.cs +++ b/src/ServiceStack.Azure/Messaging/ServiceBusMqMessageProducer.cs @@ -2,11 +2,10 @@ using System.Collections.Generic; using ServiceStack.Messaging; using ServiceStack.Text; -#if NETSTANDARD2_0 +#if NETCORE using Microsoft.Azure.ServiceBus; using Microsoft.Azure.ServiceBus.Core; #else -using Microsoft.ServiceBus; using Microsoft.ServiceBus.Messaging; #endif @@ -16,6 +15,12 @@ public class ServiceBusMqMessageProducer : IMessageProducer { private readonly Dictionary sbReceivers = new Dictionary(); protected readonly ServiceBusMqMessageFactory parentFactory; + +#if NETCORE + public Action PublishMessageFilter { get; set; } +#else + public Action PublishMessageFilter { get; set; } +#endif protected internal ServiceBusMqMessageProducer(ServiceBusMqMessageFactory parentFactory) { @@ -56,25 +61,39 @@ public virtual void Publish(string queueName, IMessage message) message.ReplyTo = message.ReplyTo.SafeQueueName(); var sbClient = parentFactory.GetOrCreateClient(queueName); - using (JsConfig.With(includeTypeInfo: true)) + using (JsConfig.With(new Text.Config { IncludeTypeInfo = true })) { var msgBody = JsonSerializer.SerializeToString(message, typeof(IMessage)); -#if NETSTANDARD2_0 - var msg = new Microsoft.Azure.ServiceBus.Message() +#if NETCORE + var msg = new Microsoft.Azure.ServiceBus.Message { Body = msgBody.ToUtf8Bytes(), MessageId = message.Id.ToString() }; - sbClient.SendAsync(msg).Wait(); + sbClient.SendAsync(ApplyFilter(msg, message)).Wait(); #else - var msg = new BrokeredMessage(msgBody) {MessageId = message.Id.ToString()}; + var msg = new BrokeredMessage(msgBody) { MessageId = message.Id.ToString() }; - sbClient.Send(msg); + sbClient.Send(ApplyFilter(msg, message)); #endif } } -#if NETSTANDARD2_0 +#if NETCORE + public Microsoft.Azure.ServiceBus.Message ApplyFilter(Microsoft.Azure.ServiceBus.Message azureMessage, IMessage message) + { + PublishMessageFilter?.Invoke(azureMessage, message); + return azureMessage; + } +#else + public BrokeredMessage ApplyFilter(BrokeredMessage azureMessage, IMessage message) + { + PublishMessageFilter?.Invoke(azureMessage, message); + return azureMessage; + } +#endif + +#if NETCORE protected MessageReceiver GetOrCreateMessageReceiver(string queueName) { queueName = queueName.SafeQueueName(); @@ -86,7 +105,7 @@ protected MessageReceiver GetOrCreateMessageReceiver(string queueName) parentFactory.address, queueName, ReceiveMode.ReceiveAndDelete); //should be ReceiveMode.PeekLock, but it does not delete messages from queue on CompleteAsync() - + sbReceivers.Add(queueName, messageReceiver); return messageReceiver; } diff --git a/src/ServiceStack.Azure/Messaging/ServiceBusMqServer.cs b/src/ServiceStack.Azure/Messaging/ServiceBusMqServer.cs index e7e759d..0fa94a1 100644 --- a/src/ServiceStack.Azure/Messaging/ServiceBusMqServer.cs +++ b/src/ServiceStack.Azure/Messaging/ServiceBusMqServer.cs @@ -4,6 +4,11 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +#if NETCORE +using Microsoft.Azure.ServiceBus.Management; +#else +using Microsoft.ServiceBus; +#endif namespace ServiceStack.Azure.Messaging { @@ -22,10 +27,12 @@ public int RetryCount public ServiceBusMqServer(string connectionString) { - MessageFactory = new ServiceBusMqMessageFactory(connectionString); + messageFactory = new ServiceBusMqMessageFactory(this, connectionString); } - public IMessageFactory MessageFactory { get; } + private readonly ServiceBusMqMessageFactory messageFactory; + + public IMessageFactory MessageFactory => messageFactory; public Func ReplyClientFactory { get; set; } @@ -40,13 +47,28 @@ public ServiceBusMqServer(string connectionString) /// Must be thread-safe. /// public Func ResponseFilter { get; set; } + + +#if NETCORE + /// + /// Exposes the which can be used to perform + /// management operations on ServiceBus entities. + /// + public ManagementClient ManagementClient => messageFactory.managementClient; +#else + /// + /// Exposes the which can be used in managing entities, + /// such as queues, topics, subscriptions, and rules, in your service namespace. + /// + public NamespaceManager NamespaceManager => messageFactory.namespaceManager; +#endif private readonly Dictionary handlerMap = new Dictionary(); protected internal Dictionary HandlerMap => handlerMap; - //private readonly Dictionary handlerThreadCountMap - // = new Dictionary(); + private readonly Dictionary handlerThreadCountMap + = new Dictionary(); public List RegisteredTypes => handlerMap.Keys.ToList(); @@ -60,7 +82,41 @@ public bool DisablePublishingResponses { set => PublishResponsesWhitelist = value ? TypeConstants.EmptyStringArray : null; } + + /// + /// Opt-in to only publish .outq messages on this white list. + /// Publishes all responses by default. + /// + public string[] PublishToOutqWhitelist { get; set; } + /// + /// Don't publish any messages to .outq + /// + public bool DisablePublishingToOutq + { + set => PublishToOutqWhitelist = value ? TypeConstants.EmptyStringArray : null; + } + + /// + /// Disable publishing .outq Messages for Responses with no return type + /// + public bool DisableNotifyMessages { get; set; } + + +#if NETCORE + public Action PublishMessageFilter + { + get => messageFactory.PublishMessageFilter; + set => messageFactory.PublishMessageFilter = value; + } +#else + public Action PublishMessageFilter + { + get => messageFactory.PublishMessageFilter; + set => messageFactory.PublishMessageFilter = value; + } +#endif + public void Dispose() { (MessageFactory as ServiceBusMqMessageFactory)?.StopQueues(); @@ -104,7 +160,7 @@ public void RegisterHandler(Func, object> processMessageFn, Actio } handlerMap[typeof(T)] = CreateMessageHandlerFactory(processMessageFn, processExceptionEx); - //handlerThreadCountMap[typeof(T)] = noOfThreads; + handlerThreadCountMap[typeof(T)] = noOfThreads; LicenseUtils.AssertValidUsage(LicenseFeature.ServiceStack, QuotaType.Operations, handlerMap.Count); } @@ -116,14 +172,15 @@ protected IMessageHandlerFactory CreateMessageHandlerFactory(Func RequestFilter = RequestFilter, ResponseFilter = ResponseFilter, RetryCount = RetryCount, - PublishResponsesWhitelist = PublishResponsesWhitelist + PublishResponsesWhitelist = PublishResponsesWhitelist, + PublishToOutqWhitelist = PublishToOutqWhitelist, }; } public void Start() { // Create the queues (if they don't exist) and start the listeners - ((ServiceBusMqMessageFactory)MessageFactory).StartQueues(this.handlerMap); + ((ServiceBusMqMessageFactory)MessageFactory).StartQueues(this.handlerMap, this.handlerThreadCountMap); } public void Stop() diff --git a/src/ServiceStack.Azure/Messaging/ServiceBusMqWorker.cs b/src/ServiceStack.Azure/Messaging/ServiceBusMqWorker.cs index 45cc9b2..2c509eb 100644 --- a/src/ServiceStack.Azure/Messaging/ServiceBusMqWorker.cs +++ b/src/ServiceStack.Azure/Messaging/ServiceBusMqWorker.cs @@ -3,11 +3,12 @@ using ServiceStack.Text; using System; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; -#if NETSTANDARD2_0 +#if NETCORE using Microsoft.Azure.ServiceBus; #else using Microsoft.ServiceBus.Messaging; @@ -32,10 +33,10 @@ public ServiceBusMqWorker(ServiceBusMqMessageFactory mqMessageFactory, IMessageQ this.sbClient = sbClient; } -#if NETSTANDARD2_0 +#if NETCORE public async Task HandleMessageAsync(Microsoft.Azure.ServiceBus.Message msg, CancellationToken token) { - var strMessage = msg.GetBodyString(); + var strMessage = msg.Body.FromMessageBody(); IMessage iMessage = (IMessage)JsonSerializer.DeserializeFromString(strMessage, typeof(IMessage)); if (iMessage != null) { @@ -57,13 +58,15 @@ public void HandleMessage(BrokeredMessage msg) { try { - string strMessage = msg.GetBody(); + var strMessage = msg.GetBody().FromMessageBody(); IMessage iMessage = (IMessage)JsonSerializer.DeserializeFromString(strMessage, typeof(IMessage)); if (iMessage != null) { - iMessage.Meta = new Dictionary(); - iMessage.Meta[ServiceBusMqClient.LockTokenMeta] = msg.LockToken.ToString(); - iMessage.Meta[ServiceBusMqClient.QueueNameMeta] = queueName; + iMessage.Meta = new Dictionary + { + [ServiceBusMqClient.LockTokenMeta] = msg.LockToken.ToString(), + [ServiceBusMqClient.QueueNameMeta] = queueName + }; } Type msgType = iMessage.GetType().GetGenericArguments()[0]; var messageHandlerFactory = mqMessageFactory.handlerMap[msgType]; @@ -71,7 +74,7 @@ public void HandleMessage(BrokeredMessage msg) messageHandler.ProcessMessage(mqClient, iMessage); } - catch (Exception ex) + catch (Exception) { throw; } diff --git a/src/ServiceStack.Azure/Properties/AssemblyInfo.cs b/src/ServiceStack.Azure/Properties/AssemblyInfo.cs index c959a44..ea241e1 100644 --- a/src/ServiceStack.Azure/Properties/AssemblyInfo.cs +++ b/src/ServiceStack.Azure/Properties/AssemblyInfo.cs @@ -1,36 +1,3 @@ -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("ServiceStack.Azure.Messaging")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("ServiceStack.Azure.Messaging")] -[assembly: AssemblyCopyright("Copyright © 2015")] -[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("eb41d580-f1da-4fef-a3c7-9be53238821e")] - -// 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: System.Runtime.InteropServices.ComVisible(false)] +[assembly: System.Runtime.InteropServices.Guid("eb41d580-f1da-4fef-a3c7-9be53238821e")] +[assembly: System.Reflection.AssemblyVersion("6.0.0.0")] diff --git a/src/ServiceStack.Azure/ServiceStack.Azure.Core.csproj b/src/ServiceStack.Azure/ServiceStack.Azure.Core.csproj new file mode 100644 index 0000000..c95c856 --- /dev/null +++ b/src/ServiceStack.Azure/ServiceStack.Azure.Core.csproj @@ -0,0 +1,26 @@ + + + + ServiceStack.Azure.Core + ServiceStack.Azure + ServiceStack.Azure + netstandard2.0;net6.0 + ServiceStack.Azure .NET Standard 2.0 + + .NET Standard 2.0 version of ServiceStack.Azure + + Azure;Windows;ServiceBus;Blob;Table;Storage;WebServices;Cache;CacheClient + + + + + + + + + + + + + + diff --git a/src/ServiceStack.Azure/ServiceStack.Azure.Source.csproj b/src/ServiceStack.Azure/ServiceStack.Azure.Source.csproj new file mode 100644 index 0000000..7bff49d --- /dev/null +++ b/src/ServiceStack.Azure/ServiceStack.Azure.Source.csproj @@ -0,0 +1,32 @@ + + + + ServiceStack.Azure + ServiceStack.Azure + netstandard2.0;net6.0 + ServiceStack integration for Azure Services + + ServiceStack integration for Azure Services in Azure and Windows ServiceBus, + Azure Blob Storage / Virtual File System, + Azure Table Storage / Cache Provider. + + Azure;Windows;ServiceBus;Blob;Table;Storage;WebServices;Cache;CacheClient + + + + + + + + + + + + + + + + + + + diff --git a/src/ServiceStack.Azure/ServiceStack.Azure.csproj b/src/ServiceStack.Azure/ServiceStack.Azure.csproj index 20bfa95..b11a63b 100644 --- a/src/ServiceStack.Azure/ServiceStack.Azure.csproj +++ b/src/ServiceStack.Azure/ServiceStack.Azure.csproj @@ -1,59 +1,38 @@  - net452;netstandard2.0 - ServiceStack.Azure ServiceStack.Azure - false - false - false - false - false - false - false - false + ServiceStack.Azure + net472;netstandard2.0;net6.0 + ServiceStack integration for Azure Services + + ServiceStack integration for Azure Services in Azure and Windows ServiceBus, + Azure Blob Storage / Virtual File System, + Azure Table Storage / Cache Provider. + + Azure;Windows;ServiceBus;Blob;Table;Storage;WebServices;Cache;CacheClient - - - true - true + + $(DefineConstants);NETCORE;NETSTANDARD2_0 + + + $(DefineConstants);NETCORE;NET6_0 - + + + - - $(DefineConstants);NET45 - True - False - ../servicestack.snk - - - - + + - - - - - - - - $(DefineConstants);NETSTANDARD2_0 - - - - - - - - - - - + + + - + diff --git a/src/ServiceStack.Azure/Storage/AzureAppendBlobVirtualDirectory.cs b/src/ServiceStack.Azure/Storage/AzureAppendBlobVirtualDirectory.cs index c49f46b..e6f9da3 100644 --- a/src/ServiceStack.Azure/Storage/AzureAppendBlobVirtualDirectory.cs +++ b/src/ServiceStack.Azure/Storage/AzureAppendBlobVirtualDirectory.cs @@ -12,59 +12,62 @@ namespace ServiceStack.Azure.Storage { public class AzureAppendBlobVirtualDirectory : AbstractVirtualDirectoryBase { - private readonly AzureAppendBlobVirtualFiles pathProvider; + public AzureAppendBlobVirtualFiles PathProvider { get; } - public AzureAppendBlobVirtualDirectory(AzureAppendBlobVirtualFiles pathProvider, string directoryPath) + public AzureAppendBlobVirtualDirectory(AzureAppendBlobVirtualFiles pathProvider, string dirPath) : base(pathProvider) { - this.pathProvider = pathProvider; - this.DirectoryPath = directoryPath; + this.PathProvider = pathProvider; + this.DirPath = dirPath; - if (directoryPath == "/" || directoryPath.IsNullOrEmpty()) + if (dirPath == "/" || dirPath.IsNullOrEmpty()) return; - var separatorIndex = directoryPath.LastIndexOf(pathProvider.RealPathSeparator, StringComparison.Ordinal); + var separatorIndex = dirPath.LastIndexOf(pathProvider.RealPathSeparator, StringComparison.Ordinal); ParentDirectory = new AzureAppendBlobVirtualDirectory(pathProvider, - separatorIndex == -1 ? string.Empty : directoryPath.Substring(0, separatorIndex)); + separatorIndex == -1 ? string.Empty : dirPath.Substring(0, separatorIndex)); } - public string DirectoryPath { get; set; } + public string DirPath { get; set; } + + [Obsolete("Use DirPath")] + public string DirectoryPath => DirPath; public override IEnumerable Directories { get { - var blobs = pathProvider.Container.ListBlobs(DirectoryPath == null + var blobs = PathProvider.Container.ListBlobs(DirPath == null ? null - : DirectoryPath + pathProvider.RealPathSeparator); + : DirPath + PathProvider.RealPathSeparator); return blobs.Where(q => q.GetType() == typeof(CloudBlobDirectory)) .Select(q => { var blobDir = (CloudBlobDirectory)q; - return new AzureAppendBlobVirtualDirectory(pathProvider, blobDir.Prefix.Trim(pathProvider.RealPathSeparator[0])); + return new AzureAppendBlobVirtualDirectory(PathProvider, blobDir.Prefix.Trim(PathProvider.RealPathSeparator[0])); }); } } public override DateTime LastModified => throw new NotImplementedException(); - public override IEnumerable Files => pathProvider.GetImmediateFiles(this.DirectoryPath); + public override IEnumerable Files => PathProvider.GetImmediateFiles(this.DirPath); // Azure Blob storage directories only exist if there are contents beneath them public bool Exists() { - var ret = pathProvider.Container.ListBlobs(this.DirectoryPath, false) - .Where(q => q.GetType() == typeof(CloudBlobDirectory)) - .Any(); + var ret = PathProvider.Container + .ListBlobs(this.DirPath, false) + .Any(q => q.GetType() == typeof(CloudBlobDirectory)); return ret; } - public override string Name => DirectoryPath?.SplitOnLast(pathProvider.RealPathSeparator).Last(); + public override string Name => DirPath?.SplitOnLast(PathProvider.RealPathSeparator).Last(); - public override string VirtualPath => DirectoryPath; + public override string VirtualPath => DirPath; public override IEnumerator GetEnumerator() { @@ -73,28 +76,44 @@ public override IEnumerator GetEnumerator() protected override IVirtualFile GetFileFromBackingDirectoryOrDefault(string fileName) { - fileName = pathProvider.CombineVirtualPath(this.DirectoryPath, pathProvider.SanitizePath(fileName)); - return pathProvider.GetFile(fileName); + fileName = PathProvider.CombineVirtualPath(this.DirPath, PathProvider.SanitizePath(fileName)); + return PathProvider.GetFile(fileName); } protected override IEnumerable GetMatchingFilesInDir(string globPattern) { - var dir = (this.DirectoryPath == null) ? null : this.DirectoryPath + pathProvider.RealPathSeparator; + var dir = (this.DirPath == null) ? null : this.DirPath + PathProvider.RealPathSeparator; - var ret = pathProvider.Container.ListBlobs(dir) + var ret = PathProvider.Container.ListBlobs(dir) .Where(q => q.GetType() == typeof(CloudAppendBlob)) .Where(q => { var x = ((CloudAppendBlob)q).Name.Glob(globPattern); return x; }) - .Select(q => new AzureAppendBlobVirtualFile(pathProvider, this).Init(q as CloudAppendBlob)); + .Select(q => new AzureAppendBlobVirtualFile(PathProvider, this).Init(q as CloudAppendBlob)); return ret; } protected override IVirtualDirectory GetDirectoryFromBackingDirectoryOrDefault(string directoryName) { - return new AzureAppendBlobVirtualDirectory(this.pathProvider, pathProvider.SanitizePath(DirectoryPath.CombineWith(directoryName))); + return new AzureAppendBlobVirtualDirectory(this.PathProvider, PathProvider.SanitizePath(DirPath.CombineWith(directoryName))); + } + + public override IEnumerable GetAllMatchingFiles(string globPattern, int maxDepth = int.MaxValue) + { + if (IsRoot) + { + return PathProvider.EnumerateFiles().Where(x => + (x.DirPath == null || x.DirPath.CountOccurrencesOf('/') < maxDepth-1) + && x.Name.Glob(globPattern)); + } + + return PathProvider.EnumerateFiles(DirPath).Where(x => + x.DirPath != null + && x.DirPath.CountOccurrencesOf('/') < maxDepth-1 + && x.DirPath.StartsWith(DirPath) + && x.Name.Glob(globPattern)); } } } \ No newline at end of file diff --git a/src/ServiceStack.Azure/Storage/AzureAppendBlobVirtualFile.cs b/src/ServiceStack.Azure/Storage/AzureAppendBlobVirtualFile.cs index 1165a92..a8b2e60 100644 --- a/src/ServiceStack.Azure/Storage/AzureAppendBlobVirtualFile.cs +++ b/src/ServiceStack.Azure/Storage/AzureAppendBlobVirtualFile.cs @@ -40,6 +40,8 @@ public AzureAppendBlobVirtualFile Init(CloudAppendBlob blob) public override string VirtualPath => FilePath; + public string DirPath => base.Directory.VirtualPath; + public override Stream OpenRead() { return Blob.OpenRead(); @@ -48,7 +50,8 @@ public override Stream OpenRead() public override void Refresh() { var blob = pathProvider.Container.GetAppendBlobReference(Blob.Name); - if (!blob.Exists()) return; + if (!blob.Exists()) + return; Init(blob); } diff --git a/src/ServiceStack.Azure/Storage/AzureAppendBlobVirtualFiles.cs b/src/ServiceStack.Azure/Storage/AzureAppendBlobVirtualFiles.cs index a1bd018..f50a664 100644 --- a/src/ServiceStack.Azure/Storage/AzureAppendBlobVirtualFiles.cs +++ b/src/ServiceStack.Azure/Storage/AzureAppendBlobVirtualFiles.cs @@ -132,13 +132,22 @@ public string GetDirPath(string filePath) : null; } + public string GetDirPath(CloudAppendBlob blob) => GetDirPath(blob.Parent?.Prefix); + + public IEnumerable EnumerateFiles(string dirPath = null) + { + return Container.ListBlobs(dirPath == null ? null : dirPath + this.RealPathSeparator, useFlatBlobListing:true) + .OfType() + .Select(q => new AzureAppendBlobVirtualFile(this, new AzureAppendBlobVirtualDirectory(this, GetDirPath(q))).Init(q)); + } + public IEnumerable GetImmediateFiles(string fromDirPath) { var dir = new AzureAppendBlobVirtualDirectory(this, fromDirPath); return Container.ListBlobs((fromDirPath == null) ? null : fromDirPath + this.RealPathSeparator) - .Where(q => q.GetType() == typeof(CloudAppendBlob)) - .Select(q => new AzureAppendBlobVirtualFile(this, dir).Init(q as CloudAppendBlob)); + .OfType() + .Select(q => new AzureAppendBlobVirtualFile(this, dir).Init(q)); } public string SanitizePath(string filePath) diff --git a/src/ServiceStack.Azure/Storage/AzureBlobVirtualDirectory.cs b/src/ServiceStack.Azure/Storage/AzureBlobVirtualDirectory.cs index 49f84e9..4893494 100644 --- a/src/ServiceStack.Azure/Storage/AzureBlobVirtualDirectory.cs +++ b/src/ServiceStack.Azure/Storage/AzureBlobVirtualDirectory.cs @@ -9,91 +9,105 @@ namespace ServiceStack.Azure.Storage { public class AzureBlobVirtualDirectory : AbstractVirtualDirectoryBase { - private readonly AzureBlobVirtualFiles pathProvider; + public AzureBlobVirtualFiles PathProvider { get; } - public AzureBlobVirtualDirectory(AzureBlobVirtualFiles pathProvider, string directoryPath) + public AzureBlobVirtualDirectory(AzureBlobVirtualFiles pathProvider, string dirPath) : base(pathProvider) { - this.pathProvider = pathProvider; - this.DirectoryPath = directoryPath; + this.PathProvider = pathProvider; + this.DirPath = dirPath; - if (directoryPath == "/" || directoryPath.IsNullOrEmpty()) + if (dirPath == "/" || dirPath.IsNullOrEmpty()) return; - var separatorIndex = directoryPath.LastIndexOf(pathProvider.RealPathSeparator, StringComparison.Ordinal); + var separatorIndex = dirPath.LastIndexOf(pathProvider.RealPathSeparator, StringComparison.Ordinal); ParentDirectory = new AzureBlobVirtualDirectory(pathProvider, - separatorIndex == -1 ? string.Empty : directoryPath.Substring(0, separatorIndex)); + separatorIndex == -1 ? string.Empty : dirPath.Substring(0, separatorIndex)); } - public string DirectoryPath { get; set; } + public string DirPath { get; set; } + + [Obsolete("Use DirPath")] + public string DirectoryPath => DirPath; public override IEnumerable Directories { get { - var blobs = pathProvider.Container.ListBlobs(DirectoryPath == null + var blobs = PathProvider.Container.ListBlobs(DirPath == null ? null - : DirectoryPath + pathProvider.RealPathSeparator); + : DirPath + PathProvider.RealPathSeparator); return blobs.Where(q => q.GetType() == typeof(CloudBlobDirectory)) .Select(q => { var blobDir = (CloudBlobDirectory)q; - return new AzureBlobVirtualDirectory(pathProvider, blobDir.Prefix.Trim(pathProvider.RealPathSeparator[0])); + return new AzureBlobVirtualDirectory(PathProvider, blobDir.Prefix.Trim(PathProvider.RealPathSeparator[0])); }); } } - public override DateTime LastModified => throw new NotImplementedException(); + // Azure CloudBlobDirectories can only exist if there is a file within that folder + // therefore we can use the last modified date of the files to determine the last modified date + public override DateTime LastModified => (Files != null && Files.Any()) ? Files.Max(f => f.LastModified) : DateTime.MinValue; - public override IEnumerable Files => pathProvider.GetImmediateFiles(this.DirectoryPath); + public override IEnumerable Files => PathProvider.GetImmediateFiles(this.DirPath); // Azure Blob storage directories only exist if there are contents beneath them public bool Exists() { - var ret = pathProvider.Container.ListBlobs(this.DirectoryPath, false) - .Where(q => q.GetType() == typeof(CloudBlobDirectory)) - .Any(); + var ret = PathProvider.Container + .ListBlobs(this.DirPath, false) + .Any(q => q.GetType() == typeof(CloudBlobDirectory)); return ret; } - public override string Name => DirectoryPath?.SplitOnLast(pathProvider.RealPathSeparator).Last(); + public override string Name => DirPath?.SplitOnLast(PathProvider.RealPathSeparator).Last(); - public override string VirtualPath => DirectoryPath; + public override string VirtualPath => DirPath; - public override IEnumerator GetEnumerator() - { - throw new NotImplementedException(); - } + public override IEnumerator GetEnumerator() => throw new NotImplementedException(); protected override IVirtualFile GetFileFromBackingDirectoryOrDefault(string fileName) { - fileName = pathProvider.CombineVirtualPath(this.DirectoryPath, pathProvider.SanitizePath(fileName)); - return pathProvider.GetFile(fileName); + fileName = PathProvider.CombineVirtualPath(this.DirPath, PathProvider.SanitizePath(fileName)); + return PathProvider.GetFile(fileName); } protected override IEnumerable GetMatchingFilesInDir(string globPattern) { - var dir = (this.DirectoryPath == null) ? null : this.DirectoryPath + pathProvider.RealPathSeparator; + var dir = (this.DirPath == null) ? null : this.DirPath + PathProvider.RealPathSeparator; - var ret = pathProvider.Container.ListBlobs(dir) + var ret = PathProvider.Container.ListBlobs(dir) .Where(q => q.GetType() == typeof(CloudBlockBlob)) .Where(q => { var x = ((CloudBlockBlob)q).Name.Glob(globPattern); return x; }) - .Select(q => new AzureBlobVirtualFile(pathProvider, this).Init(q as CloudBlockBlob)); + .Select(q => new AzureBlobVirtualFile(PathProvider, this).Init(q as CloudBlockBlob)); return ret; } - protected override IVirtualDirectory GetDirectoryFromBackingDirectoryOrDefault(string directoryName) - { - return new AzureBlobVirtualDirectory(this.pathProvider, pathProvider.SanitizePath(DirectoryPath.CombineWith(directoryName))); - } + protected override IVirtualDirectory GetDirectoryFromBackingDirectoryOrDefault(string directoryName) => + new AzureBlobVirtualDirectory(this.PathProvider, PathProvider.SanitizePath(DirPath.CombineWith(directoryName))); + public override IEnumerable GetAllMatchingFiles(string globPattern, int maxDepth = int.MaxValue) + { + if (IsRoot) + { + return PathProvider.EnumerateFiles().Where(x => + (x.DirPath == null || x.DirPath.CountOccurrencesOf('/') < maxDepth - 1) + && x.Name.Glob(globPattern)); + } + return PathProvider.EnumerateFiles(DirPath).Where(x => + x.DirPath != null + && x.DirPath.CountOccurrencesOf('/') < maxDepth - 1 + && x.DirPath.StartsWith(DirPath) + && x.Name.Glob(globPattern)); + } } } \ No newline at end of file diff --git a/src/ServiceStack.Azure/Storage/AzureBlobVirtualFile.cs b/src/ServiceStack.Azure/Storage/AzureBlobVirtualFile.cs index c4f7902..3b8e83e 100644 --- a/src/ServiceStack.Azure/Storage/AzureBlobVirtualFile.cs +++ b/src/ServiceStack.Azure/Storage/AzureBlobVirtualFile.cs @@ -40,6 +40,8 @@ public AzureBlobVirtualFile Init(CloudBlockBlob blob) public override string VirtualPath => FilePath; + public string DirPath => base.Directory.VirtualPath; + public override Stream OpenRead() { return Blob.OpenRead(); diff --git a/src/ServiceStack.Azure/Storage/AzureBlobVirtualFiles.cs b/src/ServiceStack.Azure/Storage/AzureBlobVirtualFiles.cs index 5a9c2b5..da0f912 100644 --- a/src/ServiceStack.Azure/Storage/AzureBlobVirtualFiles.cs +++ b/src/ServiceStack.Azure/Storage/AzureBlobVirtualFiles.cs @@ -52,6 +52,13 @@ public void WriteFile(string filePath, string textContents) public void WriteFile(string filePath, Stream stream) { var blob = Container.GetBlockBlobReference(SanitizePath(filePath)); + + if (stream.Length > 1014 * 1024 * 100) // 100 mb + { + blob.ServiceClient.DefaultRequestOptions.SingleBlobUploadThresholdInBytes = 1014 * 1024 * 10; + blob.ServiceClient.DefaultRequestOptions.ParallelOperationThreadCount = Environment.ProcessorCount; + } + blob.Properties.ContentType = MimeTypes.GetMimeType(filePath); blob.UploadFromStream(stream); } @@ -127,12 +134,21 @@ public string GetDirPath(string filePath) : null; } + public string GetDirPath(CloudBlockBlob blob) => GetDirPath(blob.Parent?.Prefix); + + public IEnumerable EnumerateFiles(string dirPath = null) + { + return Container.ListBlobs(dirPath == null ? null : dirPath + this.RealPathSeparator, useFlatBlobListing: true) + .OfType() + .Select(q => new AzureBlobVirtualFile(this, new AzureBlobVirtualDirectory(this, GetDirPath(q))).Init(q)); + } + public IEnumerable GetImmediateFiles(string fromDirPath) { var dir = new AzureBlobVirtualDirectory(this, fromDirPath); - return Container.ListBlobs((fromDirPath == null) ? null : fromDirPath + this.RealPathSeparator) - .Where(q => q.GetType() == typeof(CloudBlockBlob)) + return Container.ListBlobs(fromDirPath == null ? null : fromDirPath + this.RealPathSeparator) + .OfType() .Select(q => new AzureBlobVirtualFile(this, dir).Init(q as CloudBlockBlob)); } diff --git a/src/ServiceStack.Azure/Storage/AzureTableCacheClient.cs b/src/ServiceStack.Azure/Storage/AzureTableCacheClient.cs index 6aa4b16..a0a6d80 100644 --- a/src/ServiceStack.Azure/Storage/AzureTableCacheClient.cs +++ b/src/ServiceStack.Azure/Storage/AzureTableCacheClient.cs @@ -16,7 +16,7 @@ namespace ServiceStack.Azure.Storage { - public class AzureTableCacheClient : AdapterBase, ICacheClientExtended, IRemoveByPattern + public partial class AzureTableCacheClient : AdapterBase, ICacheClientExtended, IRemoveByPattern { TableCacheEntry CreateTableEntry(string rowKey, string data = null, DateTime? created = null, DateTime? expires = null) @@ -125,7 +125,7 @@ internal long AtomicIncDec(string key, long amount) } catch (StorageException ex) { - if (!ex.InnerException.HasStatus(HttpStatusCode.Conflict)) + if (!ex.HasStatus(HttpStatusCode.Conflict)) throw; } } @@ -141,7 +141,7 @@ internal long AtomicIncDec(string key, long amount) } catch (StorageException ex) { - if (!ex.InnerException.HasStatus(HttpStatusCode.PreconditionFailed)) + if (!ex.HasStatus(HttpStatusCode.PreconditionFailed)) throw; } } @@ -220,22 +220,20 @@ public void RemoveAll(IEnumerable keys) public bool Replace(string key, T value) { - return Replace(key, value); + return ReplaceInternal(key, Serialize(value)); } public bool Replace(string key, T value, TimeSpan expiresIn) { - var sVal = Serialize(value); - return ReplaceInternal(key, sVal, DateTime.UtcNow.Add(expiresIn)); + return ReplaceInternal(key, Serialize(value), DateTime.UtcNow.Add(expiresIn)); } public bool Replace(string key, T value, DateTime expiresAt) { - var sVal = Serialize(value); - return ReplaceInternal(key, sVal, expiresAt); + return ReplaceInternal(key, Serialize(value), expiresAt); } - internal bool ReplaceInternal(string key, string value, DateTime? expiresAt = null) + private bool ReplaceInternal(string key, string value, DateTime? expiresAt = null) { if (TryGetValue(key, out var entry)) { @@ -249,9 +247,9 @@ internal bool ReplaceInternal(string key, string value, DateTime? expiresAt = nu public bool Set(string key, T value) { - var sVal = Serialize(value); + var sVal = Serialize(value); var entry = CreateTableEntry(key, sVal); - return SetInternal(key, entry); + return SetInternal(entry); } public bool Set(string key, T value, TimeSpan expiresIn) @@ -262,12 +260,11 @@ public bool Set(string key, T value, TimeSpan expiresIn) public bool Set(string key, T value, DateTime expiresAt) { var sVal = Serialize(value); - var entry = CreateTableEntry(key, sVal, null, expiresAt); - return SetInternal(key, entry); + return SetInternal(entry); } - internal bool SetInternal(string key, TableCacheEntry entry) + internal bool SetInternal(TableCacheEntry entry) { var op = TableOperation.InsertOrReplace(entry); var result = table.Execute(op); @@ -305,6 +302,12 @@ public IEnumerable GetKeysByPattern(string pattern) .Select(q => q.RowKey); } + public void RemoveExpiredEntries() + { + GetKeysByPattern("*").Each(x => + GetEntry(x)); // removes if expired + } + public IEnumerable GetKeysByRegex(string regex) { // Very inefficient - query all keys and do client-side filter @@ -312,20 +315,22 @@ public IEnumerable GetKeysByRegex(string regex) var re = new Regex(regex, RegexOptions.Compiled | RegexOptions.Singleline); - return table.ExecuteQuery(query) + return table.ExecuteQuery(query) .Where(q => re.IsMatch(q.RowKey)) .Select(q => q.RowKey); } private string Serialize(T value) { - using (JsConfig.With(excludeTypeInfo: false)) + using (JsConfig.With(new Text.Config {ExcludeTypeInfo = false})) + { return serializer.SerializeToString(value); + } } private T Deserialize(string text) { - using (JsConfig.With(excludeTypeInfo: false)) + using (JsConfig.With(new Text.Config {ExcludeTypeInfo = false})) { return (text.IsNullOrEmpty()) ? default(T) : serializer.DeserializeFromString(text); diff --git a/src/ServiceStack.Azure/Storage/AzureTableCacheClientAsync.cs b/src/ServiceStack.Azure/Storage/AzureTableCacheClientAsync.cs new file mode 100644 index 0000000..1f716f0 --- /dev/null +++ b/src/ServiceStack.Azure/Storage/AzureTableCacheClientAsync.cs @@ -0,0 +1,313 @@ +using System.Collections.Generic; +using System.Linq; +using System; +using System.Text; +using System.Threading.Tasks; +using ServiceStack.Caching; +using ServiceStack.Logging; +using Microsoft.WindowsAzure.Storage; +using ServiceStack.Support; +using ServiceStack.Text; +using Microsoft.WindowsAzure.Storage.Table; +using ServiceStack.DataAnnotations; +using System.Net; +using System.Text.RegularExpressions; +using System.Threading; + +namespace ServiceStack.Azure.Storage +{ + public partial class AzureTableCacheClient + : AdapterBase, ICacheClientAsync, IRemoveByPatternAsync, IAsyncDisposable + { + private async Task TryGetValueAsync(string key, CancellationToken token=default) + { + var op = TableOperation.Retrieve(partitionKey, key); + var retrievedResult = await table.ExecuteAsync(op, token); + return retrievedResult.Result as TableCacheEntry; + } + + public async ValueTask DisposeAsync() + { + if (!FlushOnDispose) + return; + + await FlushAllAsync(); + } + + public async Task AddAsync(string key, T value, CancellationToken token=default) + { + var sVal = serializer.SerializeToString(value); + var entry = CreateTableEntry(key, sVal, null); + return await AddInternalAsync(key, entry, token); + } + + public Task AddAsync(string key, T value, TimeSpan expiresIn, CancellationToken token=default) + { + return AddAsync(key, value, DateTime.UtcNow.Add(expiresIn), token); + } + + public async Task AddAsync(string key, T value, DateTime expiresAt, CancellationToken token=default) + { + var sVal = serializer.SerializeToString(value); + + var entry = CreateTableEntry(key, sVal, null, expiresAt); + return await AddInternalAsync(key, entry, token); + } + + public async Task AddInternalAsync(string key, TableCacheEntry entry, CancellationToken token=default) + { + var op = TableOperation.Insert(entry); + var result = await table.ExecuteAsync(op, token); + return result.HttpStatusCode == 200; + } + + public Task DecrementAsync(string key, uint amount, CancellationToken token=default) + { + return AtomicIncDecAsync(key, amount * -1, token); + } + + internal async Task AtomicIncDecAsync(string key, long amount, CancellationToken token=default) + { + long count = 0; + bool updated = false; + + await ExecUtils.RetryUntilTrueAsync(async () => + { + var entry = await GetEntryAsync(key, token); + + if (entry == null) + { + count = amount; + entry = CreateTableEntry(key, Serialize(count)); + try + { + updated = (await table.ExecuteAsync(TableOperation.Insert(entry), token)).HttpStatusCode == (int)HttpStatusCode.NoContent; + } + catch (StorageException ex) + { + if (!ex.HasStatus(HttpStatusCode.Conflict)) + throw; + } + } + else + { + count = Deserialize(entry.Data) + amount; + entry.Data = Serialize(count); + var op = TableOperation.Replace(entry); + try + { + var result = (await table.ExecuteAsync(op, null, null, token)).HttpStatusCode; + updated = result == (int)HttpStatusCode.OK || result == (int)HttpStatusCode.NoContent; + } + catch (StorageException ex) + { + if (!ex.HasStatus(HttpStatusCode.PreconditionFailed)) + throw; + } + } + + return updated; + }, TimeSpan.FromSeconds(30)); + + return count; + } + + public async Task FlushAllAsync(CancellationToken token=default) + { + await foreach (var key in GetKeysByPatternAsync("*", token)) + { + await RemoveAsync(key, token); + } + } + + public async Task GetAsync(string key, CancellationToken token=default) + { + var entry = await GetEntryAsync(key, token); + if (entry != null) + return Deserialize(entry.Data); + return default; + } + + private async Task GetEntryAsync(string key, CancellationToken token=default) + { + var entry = await TryGetValueAsync(key, token); + if (entry != null) + { + if (entry.HasExpired) + { + await this.RemoveAsync(key, token); + return null; + } + return entry; + } + return null; + } + + public async Task> GetAllAsync(IEnumerable keys, CancellationToken token=default) + { + var valueMap = new Dictionary(); + foreach (var key in keys) + { + var value = await GetAsync(key, token); + valueMap[key] = value; + } + return valueMap; + } + + public Task IncrementAsync(string key, uint amount, CancellationToken token=default) + { + return AtomicIncDecAsync(key, amount, token); + } + + public async Task RemoveAsync(string key, CancellationToken token=default) + { + var entry = CreateTableEntry(key); + entry.ETag = "*"; // Avoids concurrency + var op = TableOperation.Delete(entry); + try + { + var result = await table.ExecuteAsync(op, token); + return result.HttpStatusCode == 200 || result.HttpStatusCode == 204; + } + catch (Microsoft.WindowsAzure.Storage.StorageException ex) + { + if (ex.RequestInformation.HttpStatusCode == (int)System.Net.HttpStatusCode.NotFound) + return false; + throw ex; + } + } + + public async Task RemoveAllAsync(IEnumerable keys, CancellationToken token=default) + { + foreach (var key in keys) + { + await RemoveAsync(key, token); + } + } + + public Task ReplaceAsync(string key, T value, CancellationToken token=default) + { + return ReplaceInternalAsync(key, Serialize(value), null, token); + } + + public Task ReplaceAsync(string key, T value, TimeSpan expiresIn, CancellationToken token=default) + { + return ReplaceInternalAsync(key, Serialize(value), DateTime.UtcNow.Add(expiresIn), token); + } + + public Task ReplaceAsync(string key, T value, DateTime expiresAt, CancellationToken token=default) + { + return ReplaceInternalAsync(key, Serialize(value), expiresAt, token); + } + + private async Task ReplaceInternalAsync(string key, string value, DateTime? expiresAt = null, CancellationToken token=default) + { + if (TryGetValue(key, out var entry)) + { + entry = CreateTableEntry(key, value, null, expiresAt); + var op = TableOperation.Replace(entry); + var result = await table.ExecuteAsync(op, token); + return result.HttpStatusCode == 200; + } + return false; + } + + public Task SetAsync(string key, T value, CancellationToken token=default) + { + var sVal = Serialize(value); + var entry = CreateTableEntry(key, sVal); + return SetInternalAsync(entry, token); + } + + public Task SetAsync(string key, T value, TimeSpan expiresIn, CancellationToken token=default) + { + return SetAsync(key, value, DateTime.UtcNow.Add(expiresIn), token); + } + + public Task SetAsync(string key, T value, DateTime expiresAt, CancellationToken token=default) + { + var sVal = Serialize(value); + var entry = CreateTableEntry(key, sVal, null, expiresAt); + return SetInternalAsync(entry, token); + } + + private async Task SetInternalAsync(TableCacheEntry entry, CancellationToken token=default) + { + var op = TableOperation.InsertOrReplace(entry); + var result = await table.ExecuteAsync(op, token); + return result.HttpStatusCode == 200 || result.HttpStatusCode == 204; // Success or "No content" + } + + public async Task SetAllAsync(IDictionary values, CancellationToken token=default) + { + foreach (var key in values.Keys) + { + await SetAsync(key, values[key], token); + } + } + + public async Task GetTimeToLiveAsync(string key, CancellationToken token=default) + { + var entry = await GetEntryAsync(key, token); + if (entry != null) + { + if (entry.ExpiryDate == null) + return TimeSpan.MaxValue; + + return entry.ExpiryDate - DateTime.UtcNow; + } + return null; + } + + public async IAsyncEnumerable GetKeysByPatternAsync(string pattern, CancellationToken token=default) + { + // Very inefficient - query all keys and do client-side filter + var query = new TableQuery(); + + var keys = (await table.ExecuteQueryAsync(query, token)) + .Where(q => q.RowKey.Glob(pattern)) + .Select(q => q.RowKey); + + foreach (var key in keys) + { + yield return key; + } + } + + public async Task RemoveExpiredEntriesAsync(CancellationToken token=default) + { + await foreach (var key in GetKeysByPatternAsync("*", token)) + { + await GetEntryAsync(key, token); // removes if expired + } + } + + public async IAsyncEnumerable GetKeysByRegexAsync(string regex, CancellationToken token=default) + { + // Very inefficient - query all keys and do client-side filter + var query = new TableQuery(); + + var re = new Regex(regex, RegexOptions.Compiled | RegexOptions.Singleline); + + var keys = (await table.ExecuteQueryAsync(query, token)) + .Where(q => re.IsMatch(q.RowKey)) + .Select(q => q.RowKey); + + foreach (var key in keys) + { + yield return key; + } + } + + public async Task RemoveByPatternAsync(string pattern, CancellationToken token=default) + { + await RemoveAllAsync(await GetKeysByPatternAsync(pattern, token).ToListAsync(token), token); + } + + public async Task RemoveByRegexAsync(string regex, CancellationToken token=default) + { + await RemoveAllAsync(await GetKeysByRegexAsync(regex, token).ToListAsync(token), token); + } + } +} + diff --git a/src/ServiceStack.Azure/Storage/CloudBlobContainerExtension.cs b/src/ServiceStack.Azure/Storage/CloudBlobContainerExtension.cs index f494d12..6257925 100644 --- a/src/ServiceStack.Azure/Storage/CloudBlobContainerExtension.cs +++ b/src/ServiceStack.Azure/Storage/CloudBlobContainerExtension.cs @@ -1,7 +1,10 @@ using System; using System.Collections.Generic; using System.IO; +using System.Net; using System.Text; +using System.Threading; +using System.Threading.Tasks; using Microsoft.WindowsAzure.Storage.Blob; using Microsoft.WindowsAzure.Storage.Blob.Protocol; using Microsoft.WindowsAzure.Storage; @@ -11,8 +14,7 @@ namespace ServiceStack.Azure.Storage { public static class CloudBlobContainerExtension { -#if NETSTANDARD2_0 - +#if NETCORE public static IEnumerable ListBlobs(this CloudBlobContainer container, string prefix = null, bool useFlatBlobListing = false) { @@ -83,17 +85,17 @@ public static Stream OpenRead(this CloudBlob blob) public static bool Exists(this CloudBlob blob) { - return blob.ExistsAsync().Result; + return blob.ExistsAsync().GetResult(); } public static TableResult Execute(this CloudTable table, TableOperation op) { - return table.ExecuteAsync(op).Result; + return table.ExecuteAsync(op).GetResult(); } public static bool CreateIfNotExists(this CloudTable table) { - return table.CreateIfNotExistsAsync().Result; + return table.CreateIfNotExistsAsync().GetResult(); } public static IEnumerable ExecuteQuery(this CloudTable table, TableQuery query) where TElement : ITableEntity, new() @@ -103,7 +105,7 @@ public static bool CreateIfNotExists(this CloudTable table) do { - var result = table.ExecuteQuerySegmentedAsync(query, continuationToken).Result; + var result = table.ExecuteQuerySegmentedAsync(query, continuationToken).GetResult(); continuationToken = result.ContinuationToken; elements.AddRange(result.Results); } while (continuationToken != null); @@ -111,5 +113,45 @@ public static bool CreateIfNotExists(this CloudTable table) return elements; } #endif + + public static async Task> ExecuteQueryAsync(this CloudTable table, TableQuery query, CancellationToken token = default) + where T : ITableEntity, new() + { + var runningQuery = new TableQuery { + FilterString = query.FilterString, + SelectColumns = query.SelectColumns + }; + + var items = new List(); + TableContinuationToken tct = null; + + do + { + runningQuery.TakeCount = query.TakeCount - items.Count; + + // ReSharper disable once MethodSupportsCancellation + var seg = await table.ExecuteQuerySegmentedAsync(runningQuery, tct); + tct = seg.ContinuationToken; + items.AddRange(seg); + + } while (tct != null && !token.IsCancellationRequested && (query.TakeCount == null || items.Count < query.TakeCount.Value)); + + return items; + } + + public static Task ExecuteAsync(this CloudTable table, TableOperation operation, CancellationToken token) + { + return table.ExecuteAsync(operation, requestOptions:null, operationContext:null, token); + } + + public static bool HasStatus(this StorageException ex, HttpStatusCode code) + { + if (ex.RequestInformation != null) + { + return ex.RequestInformation.HttpStatusCode == (int) code; + } + return (ex.InnerException ?? ex).HasStatus(code); + } + } } diff --git a/tests/Directory.Build.props b/tests/Directory.Build.props new file mode 100644 index 0000000..7eb7717 --- /dev/null +++ b/tests/Directory.Build.props @@ -0,0 +1,29 @@ + + + + 6.0.3 + latest + false + + + + DEBUG + + + + $(DefineConstants);NETFX;NET472 + + + + $(DefineConstants);NETCORE;NETSTANDARD2_0 + + + + $(DefineConstants);NET6_0;NET6_0_OR_GREATER + + + + $(DefineConstants);NETCORE;NETCORE_SUPPORT + + + diff --git a/tests/ServiceStack.Azure.Tests/CacheClientTestsAsyncBase.cs b/tests/ServiceStack.Azure.Tests/CacheClientTestsAsyncBase.cs new file mode 100644 index 0000000..5e9d839 --- /dev/null +++ b/tests/ServiceStack.Azure.Tests/CacheClientTestsAsyncBase.cs @@ -0,0 +1,336 @@ +using System; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using NUnit.Framework; +using ServiceStack.Auth; +using ServiceStack.Caching; +using ServiceStack.Text; + +namespace ServiceStack.Azure.Tests.Shared +{ + [TestFixture] + public abstract class CacheClientTestsAsyncBase + { + private readonly ICacheClientAsync Cache; + + public abstract ICacheClientAsync CreateClient(); + + protected CacheClientTestsAsyncBase() + { + Cache = CreateClient(); + } + + [SetUp] + public async Task SetUp() + { + await Cache.FlushAllAsync(); + } + + [Test] + public async Task Does_flush_all() + { + await 3.TimesAsync(async i => + await Cache.SetAsync(i.ToUrn(), new Item { Id = i, Name = "Name" + i })); + + Assert.That(await Cache.GetAsync(1.ToUrn()), Is.Not.Null); + + await Cache.FlushAllAsync(); + + Assert.That(await Cache.GetAsync(1.ToUrn()), Is.Null); + } + + [Test] + public async Task Can_set_and_remove_entry() + { + var key = 1.ToUrn(); + + var item = await Cache.GetAsync(key); + Assert.That(item, Is.Null); + + var whenNotExists = await Cache.SetAsync(key, new Item { Id = 1, Name = "Foo" }); + Assert.That(whenNotExists, Is.True); + var whenExists = await Cache.SetAsync(key, new Item { Id = 1, Name = "Foo" }); + Assert.That(whenExists, Is.True); + + item = await Cache.GetAsync(key); + Assert.That(item, Is.Not.Null); + Assert.That(item.Name, Is.EqualTo("Foo")); + + whenExists = await Cache.RemoveAsync(key); + Assert.That(whenExists, Is.True); + + whenNotExists = await Cache.RemoveAsync(key); + Assert.That(whenNotExists, Is.False); + } + + [Test] + public async Task Can_update_existing_entry() + { + var key = 1.ToUrn(); + + await Cache.SetAsync(key, new Item { Id = 1, Name = "Foo" }); + await Cache.SetAsync(key, new Item { Id = 2, Name = "Updated" }); + + var item = await Cache.GetAsync(key); + + Assert.That(item.Id, Is.EqualTo(2)); + Assert.That(item.Name, Is.EqualTo("Updated")); + } + + [Test] + public async Task Does_SetAll_and_GetAll() + { + var map = 3.Times(i => new Item { Id = i, Name = "Name" + i }) + .ToSafeDictionary(x => x.ToUrn()); + + await Cache.SetAllAsync(map); + + var cacheMap = await Cache.GetAllAsync(map.Keys); + + Assert.That(cacheMap, Is.EquivalentTo(map)); + } + + [Test] + public async Task Does_not_return_expired_items() + { + var key = 1.ToUrn(); + + await Cache.SetAsync(key, new Item { Id = 1, Name = "Foo" }, DateTime.UtcNow.AddSeconds(-1)); + Assert.That(await Cache.GetAsync(key), Is.Null); + + await Cache.RemoveAsync(key); + + await Cache.SetAsync(key, new Item { Id = 1, Name = "Foo" }, TimeSpan.FromMilliseconds(100)); + var entry = await Cache.GetAsync(key); + Assert.That(entry, Is.Not.Null); + Thread.Sleep(200); + + Assert.That(await Cache.GetAsync(key), Is.Null); + + await Cache.RemoveAsync(key); + + await Cache.SetAsync(key, new Item { Id = 1, Name = "Foo" }, DateTime.UtcNow.AddMilliseconds(200)); + entry = await Cache.GetAsync(key); + Assert.That(entry, Is.Not.Null); + Thread.Sleep(300); + + Assert.That(await Cache.GetAsync(key), Is.Null); + } + + [Test] + public async Task Can_increment_and_decrement_values() + { + Assert.That(await Cache.IncrementAsync("incr:a", 2), Is.EqualTo(2)); + Assert.That(await Cache.IncrementAsync("incr:a", 3), Is.EqualTo(5)); + + Assert.That(await Cache.DecrementAsync("decr:a", 2), Is.EqualTo(-2)); + Assert.That(await Cache.DecrementAsync("decr:a", 3), Is.EqualTo(-5)); + } + + [Test] + public async Task Can_increment_and_reset_values() + { + Assert.That(await Cache.IncrementAsync("incr:counter", 10), Is.EqualTo(10)); + await Cache.SetAsync("incr:counter", 0); + Assert.That(await Cache.IncrementAsync("incr:counter", 10), Is.EqualTo(10)); + } + + [Test] + public async Task Can_remove_multiple_items() + { + var map = 5.Times(i => new Item { Id = i, Name = "Name" + i }) + .ToSafeDictionary(x => x.ToUrn()); + + await Cache.SetAllAsync(map); + + await Cache.RemoveAllAsync(map.Keys); + + var cacheMap = await Cache.GetAllAsync(map.Keys); + + Assert.That(cacheMap.Count, Is.EqualTo(5)); + Assert.That(cacheMap.Values.All(x => x == null)); + } + + [Test] + public async Task Can_retrieve_IAuthSession() + { + IAuthSession session = new CustomAuthSession + { + Id = "sess-1", + UserAuthId = "1", + Custom = "custom" + }; + + var sessionKey = SessionFeature.GetSessionKey(session.Id); + await Cache.SetAsync(sessionKey, session, SessionFeature.DefaultSessionExpiry); + + var sessionCache = await Cache.GetAsync(sessionKey); + Assert.That(sessionCache, Is.Not.Null); + + var typedSession = sessionCache as CustomAuthSession; + Assert.That(typedSession, Is.Not.Null); + Assert.That(typedSession.Custom, Is.EqualTo("custom")); + } + + [Test] + public async Task Can_retrieve_TimeToLive_on_IAuthSession() + { + IAuthSession session = new CustomAuthSession + { + Id = "sess-1", + UserAuthId = "1", + Custom = "custom" + }; + + var sessionKey = SessionFeature.GetSessionKey(session.Id); + await Cache.RemoveAsync(sessionKey); + + var ttl = await Cache.GetTimeToLiveAsync(sessionKey); + Assert.That(ttl, Is.Null); + + await Cache.SetAsync(sessionKey, session); + ttl = await Cache.GetTimeToLiveAsync(sessionKey); + Assert.That(ttl.Value, Is.EqualTo(TimeSpan.MaxValue)); + + var sessionExpiry = SessionFeature.DefaultSessionExpiry; + await Cache.SetAsync(sessionKey, session, sessionExpiry); + ttl = await Cache.GetTimeToLiveAsync(sessionKey); + Assert.That(ttl.Value, Is.GreaterThan(TimeSpan.FromSeconds(0))); + Assert.That(ttl.Value, Is.LessThan(sessionExpiry). + Or.EqualTo(sessionExpiry).Within(TimeSpan.FromSeconds(1))); + } + + [Test] + public async Task Can_retrieve_IAuthSession_with_global_ExcludeTypeInfo_set() + { + JsConfig.ExcludeTypeInfo = true; + + IAuthSession session = new CustomAuthSession + { + Id = "sess-1", + UserAuthId = "1", + Custom = "custom" + }; + + var sessionKey = SessionFeature.GetSessionKey(session.Id); + await Cache.SetAsync(sessionKey, session, SessionFeature.DefaultSessionExpiry); + + var sessionCache = await Cache.GetAsync(sessionKey); + Assert.That(sessionCache, Is.Not.Null); + + var typedSession = sessionCache as CustomAuthSession; + Assert.That(typedSession, Is.Not.Null); + Assert.That(typedSession.Custom, Is.EqualTo("custom")); + + JsConfig.Reset(); + } + + [Test] + public async Task Can_cache_multiple_items_in_parallel() + { + var cache = CreateClient(); + var fns = 10.TimesAsync(async i => + await cache.SetAsync("concurrent-test", "Data: {0}".Fmt(i)) + ); + + await Task.WhenAll(fns); + + var entry = await cache.GetAsync("concurrent-test"); + Assert.That(entry, Does.StartWith("Data: ")); + } + + [Test] + public async Task Can_GetKeysByPattern() + { + if (!(Cache is ICacheClientExtended)) + return; + + JsConfig.ExcludeTypeInfo = true; + + for (int i = 0; i < 5; i++) + { + IAuthSession session = new CustomAuthSession + { + Id = "sess-" + i, + UserAuthId = i.ToString(), + Custom = "custom" + i + }; + + var sessionKey = SessionFeature.GetSessionKey(session.Id); + await Cache.SetAsync(sessionKey, session, SessionFeature.DefaultSessionExpiry); + await Cache.SetAsync("otherkey" + i, i); + } + + var sessionPattern = IdUtils.CreateUrn(""); + Assert.That(sessionPattern, Is.EqualTo("urn:iauthsession:")); +#if !NETFX + var sessionKeys = await Cache.GetKeysStartingWithAsync(sessionPattern).ToListAsync(); + + Assert.That(sessionKeys.Count, Is.EqualTo(5)); + Assert.That(sessionKeys.All(x => x.StartsWith("urn:iauthsession:"))); + + var allSessions = await Cache.GetAllAsync(sessionKeys); + Assert.That(allSessions.Values.Count(x => x != null), Is.EqualTo(sessionKeys.Count)); + + var allKeys = (await Cache.GetAllKeysAsync().ToListAsync()).ToList(); + Assert.That(allKeys.Count, Is.EqualTo(10)); +#endif + JsConfig.Reset(); + } + + [Test] + public async Task Can_Cache_AllFields() + { + JsConfig.DateHandler = DateHandler.ISO8601; + + var dto = new AllFields + { + Id = 1, + NullableId = 2, + Byte = 3, + Short = 4, + Int = 5, + Long = 6, + UShort = 7, + UInt = 8, + Float = 1.1f, + Double = 2.2d, + Decimal = 3.3m, + String = "String", + DateTime = DateTime.Now, + TimeSpan = new TimeSpan(1, 1, 1, 1, 1), + Guid = Guid.NewGuid(), + NullableTimeSpan = new TimeSpan(2, 2, 2), + NullableGuid = new Guid("4B6BB8AE-57B5-4B5B-8632-0C35AF0B3168"), + }; + + await Cache.SetAsync("allfields", dto); + var fromCache = await Cache.GetAsync("allfields"); + + Assert.That(fromCache.DateTime, Is.EqualTo(dto.DateTime)); + + Assert.That(fromCache.Equals(dto)); + + JsConfig.Reset(); + } + + [Test] + public async Task Can_RemoveAll_and_GetKeysStartingWith_with_prefix() + { + var cache = Cache.WithPrefix("prefix."); + + await cache.SetAsync("test_QUERY_Deposit__Query_Deposit_10_1", "A"); + await cache.SetAsync("test_QUERY_Deposit__0_1___CUSTOM", "B"); + + var keys = (await cache.GetKeysStartingWithAsync("test_QUERY_Deposit").ToListAsync()).ToList(); + Assert.That(keys.Count, Is.EqualTo(2)); + + await cache.RemoveAllAsync(keys); + + var newKeys = (await cache.GetKeysStartingWithAsync("test_QUERY_Deposit").ToListAsync()).ToList(); + Assert.That(newKeys.Count, Is.EqualTo(0)); + } + + } +} \ No newline at end of file diff --git a/tests/ServiceStack.Azure.Tests/CacheClientTestsBase.cs b/tests/ServiceStack.Azure.Tests/CacheClientTestsBase.cs index 38f190f..c7f9521 100644 --- a/tests/ServiceStack.Azure.Tests/CacheClientTestsBase.cs +++ b/tests/ServiceStack.Azure.Tests/CacheClientTestsBase.cs @@ -38,6 +38,87 @@ public override int GetHashCode() } } + public class AllFields + { + public int Id { get; set; } + public int? NullableId { get; set; } + public byte Byte { get; set; } + public short Short { get; set; } + public int Int { get; set; } + public long Long { get; set; } + public ushort UShort { get; set; } + public uint UInt { get; set; } + public ulong ULong { get; set; } + public float Float { get; set; } + public double Double { get; set; } + public decimal Decimal { get; set; } + public string String { get; set; } + public DateTime DateTime { get; set; } + public TimeSpan TimeSpan { get; set; } + public Guid Guid { get; set; } + public DateTime? NullableDateTime { get; set; } + public TimeSpan? NullableTimeSpan { get; set; } + public Guid? NullableGuid { get; set; } + + protected bool Equals(AllFields other) + { + return Id == other.Id && + NullableId == other.NullableId && + Byte == other.Byte && + Short == other.Short && + Int == other.Int && + Long == other.Long && + UShort == other.UShort && + UInt == other.UInt && + ULong == other.ULong && + Float.Equals(other.Float) && + Double.Equals(other.Double) && + Decimal == other.Decimal && + string.Equals(String, other.String) && + DateTime.Equals(other.DateTime) && + TimeSpan.Equals(other.TimeSpan) && + Guid.Equals(other.Guid) && + NullableDateTime.Equals(other.NullableDateTime) && + NullableTimeSpan.Equals(other.NullableTimeSpan) && + NullableGuid.Equals(other.NullableGuid); + } + + public override bool Equals(object obj) + { + if (ReferenceEquals(null, obj)) return false; + if (ReferenceEquals(this, obj)) return true; + if (obj.GetType() != this.GetType()) return false; + return Equals((AllFields)obj); + } + + public override int GetHashCode() + { + unchecked + { + var hashCode = Id; + hashCode = (hashCode * 397) ^ NullableId.GetHashCode(); + hashCode = (hashCode * 397) ^ Byte.GetHashCode(); + hashCode = (hashCode * 397) ^ Short.GetHashCode(); + hashCode = (hashCode * 397) ^ Int; + hashCode = (hashCode * 397) ^ Long.GetHashCode(); + hashCode = (hashCode * 397) ^ UShort.GetHashCode(); + hashCode = (hashCode * 397) ^ (int)UInt; + hashCode = (hashCode * 397) ^ ULong.GetHashCode(); + hashCode = (hashCode * 397) ^ Float.GetHashCode(); + hashCode = (hashCode * 397) ^ Double.GetHashCode(); + hashCode = (hashCode * 397) ^ Decimal.GetHashCode(); + hashCode = (hashCode * 397) ^ (String != null ? String.GetHashCode() : 0); + hashCode = (hashCode * 397) ^ DateTime.GetHashCode(); + hashCode = (hashCode * 397) ^ TimeSpan.GetHashCode(); + hashCode = (hashCode * 397) ^ Guid.GetHashCode(); + hashCode = (hashCode * 397) ^ NullableDateTime.GetHashCode(); + hashCode = (hashCode * 397) ^ NullableTimeSpan.GetHashCode(); + hashCode = (hashCode * 397) ^ NullableGuid.GetHashCode(); + return hashCode; + } + } + } + public class CustomAuthSession : AuthUserSession { [DataMember] @@ -334,5 +415,41 @@ public void Can_GetKeysByPattern() JsConfig.Reset(); } + + [Test] + public void Can_Cache_AllFields() + { + JsConfig.DateHandler = DateHandler.ISO8601; + + var dto = new AllFields + { + Id = 1, + NullableId = 2, + Byte = 3, + Short = 4, + Int = 5, + Long = 6, + UShort = 7, + UInt = 8, + Float = 1.1f, + Double = 2.2d, + Decimal = 3.3m, + String = "String", + DateTime = DateTime.Now, + TimeSpan = new TimeSpan(1, 1, 1, 1, 1), + Guid = Guid.NewGuid(), + NullableTimeSpan = new TimeSpan(2, 2, 2), + NullableGuid = new Guid("4B6BB8AE-57B5-4B5B-8632-0C35AF0B3168"), + }; + + Cache.Set("allfields", dto); + var fromCache = Cache.Get("allfields"); + + Assert.That(fromCache.DateTime, Is.EqualTo(dto.DateTime)); + + Assert.That(fromCache.Equals(dto)); + + JsConfig.Reset(); + } } } \ No newline at end of file diff --git a/tests/ServiceStack.Azure.Tests/Messaging/ConcurrencyTests.cs b/tests/ServiceStack.Azure.Tests/Messaging/ConcurrencyTests.cs new file mode 100644 index 0000000..6731c1d --- /dev/null +++ b/tests/ServiceStack.Azure.Tests/Messaging/ConcurrencyTests.cs @@ -0,0 +1,89 @@ +using System; +using System.IO; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using NUnit.Framework; +using ServiceStack.Messaging; +using ServiceStack.Azure.Messaging; +using ServiceStack.Configuration; +#if NET472 +using System.Threading.Tasks; +using Microsoft.ServiceBus; +using Microsoft.ServiceBus.Messaging; +#endif + +namespace ServiceStack.Azure.Tests.Messaging +{ + public class AzureServiceBusMqServerConcurrencyTests + { + static string ConnectionString + { + get + { + var connString = Environment.GetEnvironmentVariable("AZURE_BUS_CONNECTION_STRING"); + if (connString != null) + return connString; + + var assembly = typeof(AzureServiceBusMqServerIntroTests).Assembly; + var path = new Uri(assembly.CodeBase).LocalPath; + var configFile = Path.Combine(Path.GetDirectoryName(path), "settings.config"); + + return new TextFileSettings(configFile).Get("ConnectionString"); + } + } + + public AzureServiceBusMqServerConcurrencyTests() + { +#if !NETCORE + NamespaceManager nm = NamespaceManager.CreateFromConnectionString(ConnectionString); + Parallel.ForEach(nm.GetQueues(), qd => + { + var sbClient = + QueueClient.CreateFromConnectionString(ConnectionString, qd.Path, ReceiveMode.ReceiveAndDelete); + BrokeredMessage msg = null; + while ((msg = sbClient.Receive(new TimeSpan(0, 0, 1))) != null) + { + } + }); +#endif + } + + [Test] + [TestCase(4, 10)] + public void Can_handle_requests_concurrently_in_4_threads(int noOfThreads, int msgs) + { + var timesCalled = 0; + using var mqHost = new ServiceBusMqServer(ConnectionString); + var queueNames = QueueNames.AllQueueNames.Select(SafeQueueName).ToList(); +#if NETCORE + queueNames.ForEach(q => mqHost.ManagementClient.DeleteQueueAsync(q).GetAwaiter().GetResult()); +#else + queueNames.ForEach(q => mqHost.NamespaceManager.DeleteQueue(q)); +#endif + + mqHost.RegisterHandler(m => { + Interlocked.Increment(ref timesCalled); + Thread.Sleep(m.GetBody().ForMs); + return null; + }, noOfThreads); + + mqHost.Start(); + + var dto = new Wait {ForMs = 100}; + using var mqClient = mqHost.CreateMessageQueueClient(); + msgs.Times(i => mqClient.Publish(dto)); + + ExecUtils.RetryUntilTrue(() => timesCalled == msgs, TimeSpan.FromSeconds(5)); + } + + internal static string SafeQueueName(string queueName) => + queueName?.Replace(":", ".").Replace("[]", "Array"); + + public class Wait + { + public int ForMs { get; set; } + } + + } +} \ No newline at end of file diff --git a/tests/ServiceStack.Azure.Tests/Messaging/MqServerAppHostTests.cs b/tests/ServiceStack.Azure.Tests/Messaging/MqServerAppHostTests.cs index 7dfcbd8..f174a07 100644 --- a/tests/ServiceStack.Azure.Tests/Messaging/MqServerAppHostTests.cs +++ b/tests/ServiceStack.Azure.Tests/Messaging/MqServerAppHostTests.cs @@ -196,8 +196,8 @@ public override void Configure(Container container) [TestFixture] public abstract class MqServerAppHostTests { - protected const string ListeningOn = "http://*:1337/"; - public const string Host = "http://localhost:1337"; + protected const string ListeningOn = "http://*:2001/"; + public const string Host = "http://localhost:2001"; private const string BaseUri = Host + "/"; protected ServiceStackHost appHost; @@ -437,7 +437,7 @@ public void Can_Publish_In_Parallel() ((MqTestsAppHost)appHost).evt.WaitOne(); } - [Test] + [Test, Ignore("Benchmark")] [Explicit] public void CheckPerf() { diff --git a/tests/ServiceStack.Azure.Tests/NetCoreTestsRunner.cs b/tests/ServiceStack.Azure.Tests/NetCoreTestsRunner.cs deleted file mode 100644 index 302c4bf..0000000 --- a/tests/ServiceStack.Azure.Tests/NetCoreTestsRunner.cs +++ /dev/null @@ -1,49 +0,0 @@ -#if NUNITLITE - -using NUnitLite; -using NUnit.Common; -using System.Reflection; -using ServiceStack; -using ServiceStack.Text; -using System; -using System.Globalization; -using System.Threading; -using ServiceStack.Logging; - -namespace ServiceStack.Azure.Tests -{ - public class NetCoreTestsRunner - { - /// - /// The main program executes the tests. Output may be routed to - /// various locations, depending on the arguments passed. - /// - /// Run with --help for a full list of arguments supported - /// - public static int Main(string[] args) - { - var licenseKey = Environment.GetEnvironmentVariable("SERVICESTACK_LICENSE"); - if (string.IsNullOrEmpty(licenseKey)) - throw new ArgumentNullException("SERVICESTACK_LICENSE", "Add Environment variable for SERVICESTACK_LICENSE"); - - Licensing.RegisterLicense(licenseKey); - //"ActivatedLicenseFeatures: ".Print(LicenseUtils.ActivatedLicenseFeatures()); - LogManager.LogFactory = new ConsoleLogFactory(debugEnabled:true); - - - CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("en-US"); - JsConfig.InitStatics(); - //JsonServiceClient client = new JsonServiceClient(); - var writer = new ExtendedTextWrapper(Console.Out); - var result = new AutoRun(((IReflectableType)typeof(NetCoreTestsRunner)).GetTypeInfo().Assembly).Execute(args, writer, Console.In); - -#if DEBUG - "Press Any Key to Quit.".Print(); - Console.Read(); -#endif - return result; - } - } -} - -#endif diff --git a/tests/ServiceStack.Azure.Tests/ServiceStack.Azure.Tests.csproj b/tests/ServiceStack.Azure.Tests/ServiceStack.Azure.Tests.csproj index f010275..767193b 100644 --- a/tests/ServiceStack.Azure.Tests/ServiceStack.Azure.Tests.csproj +++ b/tests/ServiceStack.Azure.Tests/ServiceStack.Azure.Tests.csproj @@ -1,11 +1,11 @@  - net46;netcoreapp2.0 - ServiceStack.Azure.Tests - ServiceStack.Azure.Tests + net472;net6.0 portable + ServiceStack.Azure.Tests Library + ServiceStack.Azure.Tests false false false @@ -15,60 +15,22 @@ false false - + - - + + + + + + - - $(DefineConstants);NET45 - - - - - - - - - - - + - - $(DefineConstants);NETCORE_SUPPORT;NETCORE - - - - - Exe - $(DefineConstants);NUNITLITE - - - - - - - - - - - - - - - - - - - - - + + diff --git a/tests/ServiceStack.Azure.Tests/Storage/AzureAppendBlobVirtualPathProviderTests.cs b/tests/ServiceStack.Azure.Tests/Storage/AzureAppendBlobVirtualPathProviderTests.cs index 77d0f61..905fe70 100644 --- a/tests/ServiceStack.Azure.Tests/Storage/AzureAppendBlobVirtualPathProviderTests.cs +++ b/tests/ServiceStack.Azure.Tests/Storage/AzureAppendBlobVirtualPathProviderTests.cs @@ -19,7 +19,7 @@ public class AzureAppendBlobVirtualPathProviderTests : VirtualAppendPathProvider public const string ContainerName = "ss-ci-test-append"; // you must provide an azure account to run these tests - private readonly CloudStorageAccount storageAccount = CloudStorageAccount.Parse(""); + private readonly CloudStorageAccount storageAccount = CloudStorageAccount.Parse(Environment.GetEnvironmentVariable("AZURE_BLOB_CONNECTION_STRING")); public override IVirtualPathProvider GetPathProvider() { @@ -58,14 +58,8 @@ public void Can_have_many_items() var filePath = "file-{0}.txt".Fmt(i); pathProvider.DeleteFile(filePath); }); - - - } - } - - public abstract class VirtualAppendPathProviderTests { @@ -111,7 +105,6 @@ public void Can_create_file() } [Test] - public void Does_refresh_LastModified() { var pathProvider = GetPathProvider(); @@ -305,8 +298,7 @@ public void Does_resolve_nested_files_and_folders() Assert.That(pathProvider.GetAllFiles().ToList().Count, Is.EqualTo(0)); } - [Test] - + [Test] public void Does_append_to_file() { var pathProvider = GetPathProvider(); diff --git a/tests/ServiceStack.Azure.Tests/Storage/AzureBlobVirtualPathProviderTests.cs b/tests/ServiceStack.Azure.Tests/Storage/AzureBlobVirtualPathProviderTests.cs index 6e83d00..5a6ede8 100644 --- a/tests/ServiceStack.Azure.Tests/Storage/AzureBlobVirtualPathProviderTests.cs +++ b/tests/ServiceStack.Azure.Tests/Storage/AzureBlobVirtualPathProviderTests.cs @@ -18,6 +18,7 @@ public class AzureBlobVirtualPathProviderTests : VirtualPathProviderTests { public const string ContainerName = "ss-ci-test"; + // Requires 'Microsoft Azure Storage Emulator' running private readonly CloudStorageAccount storageAccount = CloudStorageAccount.DevelopmentStorageAccount; public override IVirtualPathProvider GetPathProvider() @@ -59,9 +60,7 @@ public void Can_have_many_items() var filePath = "file-{0}.txt".Fmt(i); pathProvider.DeleteFile(filePath); }); - } - } @@ -330,6 +329,31 @@ public void Does_resolve_nested_files_and_folders() Assert.That(pathProvider.GetAllFiles().ToList().Count, Is.EqualTo(0)); } + [Test] + public void Can_GetAllMatchingFiles_in_nested_directories() + { + var pathProvider = GetPathProvider(); + + var allFilePaths = new[] { + "a/b/c/testfile-abc1.txt", + "a/b/c/d/e/f/g/testfile-abcdefg1.txt", + }; + + allFilePaths.Each(x => pathProvider.WriteFile(x, x.SplitOnLast('.').First().SplitOnLast('/').Last())); + + Assert.That(pathProvider.GetDirectory("a/b/c").GetAllMatchingFiles("testfile-abc1.txt").Count(), Is.EqualTo(1)); + Assert.That(pathProvider.GetDirectory("a/b").GetAllMatchingFiles("testfile-abc1.txt").Count(), Is.EqualTo(1)); + Assert.That(pathProvider.GetDirectory("a").GetAllMatchingFiles("testfile-abc1.txt").Count(), Is.EqualTo(1)); + + Assert.That(pathProvider.GetDirectory("a/b/c/d/e/f/g").GetAllMatchingFiles("testfile-abcdefg1.txt").Count(), Is.EqualTo(1)); + Assert.That(pathProvider.GetDirectory("a/b/c/d/e/f").GetAllMatchingFiles("testfile-abcdefg1.txt").Count(), Is.EqualTo(1)); + Assert.That(pathProvider.GetDirectory("a/b/c/d/e").GetAllMatchingFiles("testfile-abcdefg1.txt").Count(), Is.EqualTo(1)); + Assert.That(pathProvider.GetDirectory("a/b/c/d").GetAllMatchingFiles("testfile-abcdefg1.txt").Count(), Is.EqualTo(1)); + Assert.That(pathProvider.GetDirectory("a/b/c").GetAllMatchingFiles("testfile-abcdefg1.txt").Count(), Is.EqualTo(1)); + Assert.That(pathProvider.GetDirectory("a/b").GetAllMatchingFiles("testfile-abcdefg1.txt").Count(), Is.EqualTo(1)); + Assert.That(pathProvider.GetDirectory("a").GetAllMatchingFiles("testfile-abcdefg1.txt").Count(), Is.EqualTo(1)); + } + [Test] [Ignore("Not supported on Azure Block Blobs")] public void Does_append_to_file() diff --git a/tests/ServiceStack.Azure.Tests/Storage/AzureTableCacheClientTestsAsync.cs b/tests/ServiceStack.Azure.Tests/Storage/AzureTableCacheClientTestsAsync.cs new file mode 100644 index 0000000..a2bf94b --- /dev/null +++ b/tests/ServiceStack.Azure.Tests/Storage/AzureTableCacheClientTestsAsync.cs @@ -0,0 +1,35 @@ +using ServiceStack.Azure.Tests.Shared; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using ServiceStack.Caching; +using ServiceStack.Azure.Storage; +using NUnit.Framework; + +namespace ServiceStack.Azure.Tests.Storage +{ + public class AzureTableCacheClientTestsAsync : CacheClientTestsAsyncBase + { + public override ICacheClientAsync CreateClient() + { + string connStr = "UseDevelopmentStorage=true;"; + return new AzureTableCacheClient(connStr); + } + + [Test] + public async Task Can_Increment_In_Parallel() + { + var cache = CreateClient(); + int count = 10; + var fns = count.TimesAsync(async i => + await cache.IncrementAsync("concurrent-inc-test", 1)); + + await Task.WhenAll(fns); + + var entry = await cache.GetAsync("concurrent-inc-test"); + Assert.That(entry, Is.EqualTo(10)); + } + } +}