Skip to content

Commit

Permalink
EmbedIO v3.0 (#344)
Browse files Browse the repository at this point in the history
* Improve XML docs.

* [ADD][BRK] FileSystemProvider may be immutable or not.

* Revert "[ADD][BRK] FileSystemProvider may be immutable or not."

This reverts commit 88a7d51.
The wrong file was committed.

* [ADD][BRK] Method IFileProvider.Start.

* [ADD][BRK] Support for mutable directories in FileSystemProvider.

* [ADD] Property MimeTypes.Default.

* [FIX] FileSystemProvider does not always return a MIME type for files.

* [ADD] Class ResourceFileProvider, to replace the functionality of ResourceFilesModule.

* [ADD] New ZipFileProvider

* Remove unused parameter.

* Minor adjustment to ZipFileProvider

* Assorted minor fixes / cleanup.

* [ADD] Class CompressionStream.

* [ADD][BRK] Refactored file server.

* Various fixes to FileModule.

* [ADD] ZipFileProvider extension methods

* Code Review and fix build issues with Unit test

* Fix issue with ContentType in Files

* [FIX] The default for FileModule.DirectoryListener should be null.

* [FIX][ADD][BRK] Improve ZipFileProvider, as follows:

* Give an option in the constructor to leave the underlying stream open.

* Implement IDisposable correctly.

* Improve XML docs.

* [ADD] Proeprty IHttpResponse.SendChunked

* [FIX][BRK][ENH] Improve FileModule performance.

* Generate ETags from file date and length instead of using MD5.

* Only one class for mapped resource information.

* Handle conditional requests and partial requests in a more
  RFC-compliant way.

* Change IMimeTypeProvider.TryGetMimeType to GetMimeType, returning
  null on not found.

* Fix tests.

* [ADD][BRK] Property IHttpContext.Age.

* Improve logging of request processing.

* Add necessary using blocks in sample program.

* Add the possibility to not start the browser automatically in sample program.

* Add logging of file cache purge.

* Flush the response stream before closing a HTTP context.

* Add the possibility of disabling file cache in sample program.

* [BRK] Remove useless property IFileProvider.CanSeekFiles.

* Use LINQ in MimeTypeProviderStack.GetMimeType.

* [ADD] Move some functionality from FileModule.OnRequestAsync to extension methods.

* [FIX] Correct file cache purge logging.

* Improve code structure in FileModule.

* [FIX] FileModule: client seems to hang for 15 seconds if response is being cached.

Turns out it was sending out an incorrect Content-Length,
thus the client was simply waiting for data that wasn't there.

* Use chunked encoding in FileModule if not caching.

* [FIX] FileModule: no default document applied if a URL path does not map to a directory.

* [FIX] missing session data in unit test

* Bump version

* Update AppVeyor

* Unit test ResourceFileProvider without a FileModule and a web server.

* [FIX] Ambiguous call when creating a HttpRedirectException with default status code.

* Improve coverage of ResourceFileProvider.

* Add methods to get resources, and byte ranges in resources, as byte arrays.

* Add class MockFileProvider to test FileModule without an actual file provider.

* [BRK] Make DLL name consistent with project name and NuGet package.

* [FIX] Context ID is always empty in Mono.

* [BRK] Remove unused property IHttpRequest.RequestTraceIdentifier.

Its only use was as a unique ID for a HTTP context.
Except on Mono, where RequestTraceIdentifier is always Guid.Empty.

* Make RouteVerbResolverCollection less log-noisy.

* Improve logging of served requests, especially when Debug messages are disabled.

* Include LICENSE file in package instead of relying on deprecated PackageLicenseUrl.

* Update appveyor.yml

* [FIX] Issue wit ubuntu test

* [FIX] Issue wit ubuntu test

* Add new assembly EmbedIO.Testing

* Review

* Improve some comments.

* Update README.md

* Rename class SystemHttpContext to TestHttpContext in Testing library.

* [FIX] Wrong resource prefix in Resource class.

* [BRK] Rename MimeTypes to MimeType; strip Type suffix from relevant propetty names.

* Split MimeType.Association to its own source file.

* Improve XML docs.

* Add internal method to check a Rfc2616 token without throwing.

* [ADD] Methods for validation of MIME types and media ranges.

* [ADD] Support for compression preference by MIME type or media range.

* Remove unused internal class FileCacheItemExtensions.

* [ADD] Method FileModule.ClearCache.

* [ADD] More standard request handlers.

* Rename RegisterControllerInternal to RegisterControllerTypeCore.

The new name is more consistent with the purpose of the method.

* [FIX] Potential problem if a controller factory returns a derived type overriding Dispose.

* Remove non-abstract constraint when using factory methods for Web API controllers.

A factory method may instantiate a concrete subclass.

* Rename TestFixture to EndToEndTestFixture.

* [FIX] Resource class has incorrect manifest resource prefix.

* Rename class Resource to StockResource, more suitable now that it is public.

* [FIX] ResourceFileProviderTest still references resources in EmbedIO.Tests assembly.

* Add access modifier.

* [ADD] Method MimeType.StripParameters to use before validating a MIME type.

* [FIX] Error 500 if response content type has parameters, e.g. "text/html; encoding=UTF-8".

* [FIX] MimeType.StripParameters does not strip optional white space.

* Preview2

* Add Xmldoc to Testing

* [FIX] ObjectDisposedException when cancelling a web server under Mono.

* [FIX] Improper handling of locks in WebSocketModule.

* Use a ConcurrentDictionary to manage contexts in WebSocketModule.

* [ADD] Content encoding negotiation as extension method on QValueList.

* Add unit tests for content encoding negotiation.

* [FIX] Incorrect content encoding resulting from negotiation (issue #310)

* Add Slack badge in README.

* Code Style

* Add "parameterless" and "dereferenced" to ReSpeller's dictionary.

* [BRK] Web API controllers do not need constructor parameters any longer.

* [ADD] Request data attributes for Web API controllers.

* Set ContentEncoding in extension methods that send strings as responses.

* [BRK] HttpException.SendResponseAsync should take a CancellationToken.

* [ADD][BRK] Most HTTP exceptions can have a plain-text message attached.

* Rename source file of generic type.

* Add missing XML documentation.

* [ADD] Non-generic request data attributes for web API controllers.

* [BRK] Make class FormDataAttribute sealed.

* Add missing XML documentation.

* [[FIX][BRK] Parsed form data should be a read-only dictionary.

* Avoid annoying warning about Hungarian notation.

* Make GetRequestFormDataAsync remember a previous result for the same context.

* [BRK] Remove class RequestParser as it just duplicates functionality.

* [FIX] Extension methods should throw NRE when @this is null.

* [ADD] Method NameValueCollectionExtensions.ContainsKey.

* [ADD] Class LockableNameValueCollection: a NVC that can be made read-only.

* [ADD] Utility methods to convert NVCs to dictionaries.

* [BRK] Form data is now a read-only NameValueCollection.

* [ADD] FormFieldAttribute to receive form field values in Web API controllers.

* Make all properties of WebApiController public, so they can be used by attributes.

Request data attributes may benefit from access to Request, User, etc.

Given the short lifetime and restricted context of controllers, plus
the fact that the remaining protected properties were just shortcuts for
properties of HttpContext, the advantages of exposing them far outweigh
encapsulation concerns.

* Remove superfluous using directive.

* [ADD] Web API controller methods can also return void or Task.

* Rename FormDataParser to UrlEncodedDataParser; make it parse URL queries too.

* [FIX] A form field may have an empty name.

* [ADD] Support for data extraction from URL queries, similarly to forms.

* Add unit tests for QueryData and QueryField attributes.

* Remove unused InternalsVisibleTo attribute.

* Expose class CookieCollection, renamed to CookieList to avoid conflicts.

* Make class PeriodicTask sealed.

* Eliminate some annoying warnings.

* [ADD] HttpDate class to parse and format dates and times according to RFCs.

* [FIX] Incorrect DOW in Expires header.

* Minor aesthetic change.

* Improve UrlEncodedDataParser and expose it in Utilities.

* [ADD][BRK] Support for HttpClient in TestWebServer.

* [ADD][BRK] Improve TestWebServer and fix tests.

* Remove unnecessary code regions.

* [BRK] Make StockResource.Prefix private, as it does not need to be exposed.

* [FIX] HTML5 does not need namespaces; even less if they are XHTML namespaces.

* Improve XML docs for MimeType.

* Add missing XML documentation in EmbedIO.Testing.

* Start work on unit tests for Utilities classes.

* Remove optional TestFixture attributes.

* More unit tests for Utilities classes.

* Fix ambiguous reference in XML documentation.

* Fix erroneous statement in XML documentation.

* [FIX] DataDictionary<,>.GetOrAdd should check for an existing value first.

* [FIX] ConcurrentDataDictionary<,>.GetOrAdd should check for an existing value first.

* [FIX] Non-null key is not always enforced in DataDictionary<,>.

* [FIX] DataDictionary<,>.TryAdd adds null values to dictionary.

* Fix wrong class name in XML documentation.

* Add unit tests for DataDictionary<,>.

* Minor typo

* Remove Useless property'

* Remove commented code for WebSocket Extensions'

* Code Style'

* Reorder using directives.

* Fix XML documentation for UrlEncodedDataParser.Parse.

* [BRK] Remove WebApiModuleBase.OnParameterConversionErrorAsync callback.

It made sense when there was no HttpException.
Now it just makes debugging harder.

* Improve InvalidCastException messages when using non-generic data request attrbutes.

* Add some contextual info to 400 Bad Request responses.

* Initialize early and cache endpoints (tentative fix for #315).

* Update SWAN and Unit test nugets

* Update README.md

* Update README.md

WIP

* [ADD][BRK] Improve exception handling in web servers, as follows:

* [ADD] IHttpException interface for exceptions that generate their own
  HTTP status codes.

* [ADD] HttpExceptionHandler delegate, to handle exceptions that
  implement IHttpException.

* [ADD] HttpExceptionHandler static class with standard handlers for
  HTTP exceptions.

* [ADD] IWebModule.OnHttpException and IWebServer.OnHttpException
  properties.

* [FIX][BRK] HttpException should not handle response generation by
  itself; instead, HTTP exceptions should only act on response code and
  headers, leaving response content rendering to handler callbacks set
  at a server and/or module level (similarly to what happens with
  unhandled exceptions).

* [FIX][BRK] Parameter path of ExceptionHandlerCallback delegate is
  redundant (always set to context.Request.Url.AbsolutePath).

* [ADD] Fluent extension methods, on both Web modules and servers,
  to set handlers for HTTP exceptions and for unhandled (non-HTTP)
  exceptions.

* [ADD] Public constants for the header names used by the
  ExceptionHandler.EmptyResponseWithHeaders method.

* Add unit tests for HTTP exception handling.

* Add unit tests for unhandled exception handling.

* [ADD] FormDataAttribute and QueryDataAttribute can work on non-string parameters.

* Remove redundant using directives.

* [FIX] Synchronous test method declared async.

* [FIX] Missing new keyword on overrides.

* ReSharper-assisted code review.

* [BRK] Remove redundant SyncRoot property in CookieList.

Breaking change because of binary incompatibility.

* [FIX][BRK] QValueList.FindPreferredIndex can take an IEnumerable<string>.

* Update README.md

* Update README.md

* Update README.md

* Use a HTTP exception for the ultimate "not found" response.

* Update README.md

* Update toc.yml

* Apply better unit testing criteria.

* [FIX] DataDictionary<,> behaves inconsistently when cast as ICollection<>.

* Add unit tests for ConcurrentDataDictionary<,>.

* [FIX] ConcurrentDataDictionary<,>.TryAdd should always simulate adding a null value.

* This commit needs to be reviewed

* [FIX] LocalSessionManager gets confused when using CookiePath.

* [FIX] Minor compiler warning

* [FIX] Resolves issue with encode string parameters

* [FIX] The concept of "critical exception" is a little too broad.

* [ADD][BRK] FromString static class to standardize conversions from string.

* [ADD][BRK] Pass the parameter name to request data attributes.

[QueryField] and [FormField] can be used without specifying a field
name: the parameter name will be used as field name.

* [DEL] TransformAsync extension method

* [FIX] Typo in file name.

* [BRK] Remove the need for request handlers to return a boolean.

* Use new-style typed methods in TestController.

* [FIX] WebServerBase<>.Start waits forever if Prepare throws. #318

* [FIX] FileModule.Dispose throws if Start has not been called. #319

* [ADD] Reflection extensions and web api clean up

* [FIX] Minor issue CORS and warnings

* [FIX] Minor warnings and remove useless API

* Fix wrong tag in XML docs.

* [ADD] Methods UrlPath.Split and UrlPath.UnsafeSplit to split URL paths into segments.

* Partially revert "[ADD] Reflection extensions and web api clean up"

This reverts commit 19c8388, except for
the eklimination of unused method WebApiModuleBase.TaskToBoolTask.

* [FIX] Synchronous controller methods don't work.

* Add unit tests for UrlPath.

* Dictionaries are unordered: unit tests should not expect them to be ordered.

* [FIX] Verify CORS module

* [FIX] Bad passthrought

* Fix XML docs.

* Move housekeeping from WebModuleCollection to WebModule; save a try block.

* Improve XML docs.

* [ADD][BRK] Implement changes to WebModuleBase and derived classes to address #321:

* [BRK] Make WebModuleBase.IsFinalHandler abstract.

* Change WebSocketModule.IsFinalHandler to true.

* [ADD][BRK] Allow to set ModuleGroup.IsFinalHandler in constructor.

* [BRK] Rename IHttpContext.Handled to read-only IsHandled; add method SetHandled.

* Improve XML docs.

* Update README.md

* [ADD][BRK] Add CancellationToken and RequestedPath properties to IHttpContext.

* [FIX] Request data attributes with both generic and non-generic interfaces fail.

Non-generic data request interfaces aren't even probed if there is no
suitable generic interface.

This commit solves the problem by deferring throwing an
InvalidOperationException until non-generic data request interfaces
have been probed (and hopefully used.)

* Update README.md

* Avoid warning about order of class members.

* [ADD] Method QValueList.TryGetWeight to get the weight of a candidate.

* [FIX] PreferCompression = false not respected (GitHub issue #330)

* [ADD] new SWAN preview 002

* Update SWAN 2 preview 3

* Update to SWAN preview 4

* Update to SWAN Lite Preview 005

* Update litelib

* [ADD] DataObject property and HttpExceptionHandler.JsonDataResponse

* [UPD] Swan and dependencies

* [FIX] Client-sent  cookies are erroneously checked for path and domain (#338)

* Update SWAN to 2.0.0-rc002

* Don't use ExceptionMessage extension, it's gone.

* [ADD][BRK] ISession should not derive from IDataDictionary<,> (#335)

* [BRK] Reorder members and improve XML docs in IHttpException.

* Clarify XML docs, stating that some HTTP exception handlers will ignore DataObject.

* [BRK] Replace JsonDataResponse with a more general way to use response serializers for HTTP ecxeptions.

* [UPD] SWAN 2 FINAL

* [FIX] Null HTTP exception messages are replaced by the CLR at throw time.

* [ADD][BRK] Make DataResponse only send DataObject; add FullDataResponse to also send the message.

* [ADD][BRK] Introduce the concept of base route (route pattern ending in "/").

* Added name param to WithWebApi method

* Added configure param to WithLocalSessionManager method

* Use overloads

* Added name param to WithRouting method

* Use overload

* Added name param to With* file methods

* Use overloads

* Added configure param to WithModule method

* Use overloads

* Optimize RouteMatcher.Match for parameterless routes.

* Relax slash checking on routes; normalize later.

* Optimize route splitting.

* [ADD][BRK] (Re)introduce routing at module collection level.

* Rename IWebModule.BaseUrlPath to BaseRoute

* Add property IHttpContext.Route (a RouteMatch of the requested path
  against the module's BaseRoute); change IHttpContext.RequestedPath
  implementations to return Route.SubPath

* Add method IWebModule.MatchUrlPath; matching is done by each module
  instead of having a base URL path on module collections

* Remove base URL path from WebModuleCollection

* [UPD] LiteLib library in Sample

* Update appveyor.yml
  • Loading branch information
geoperez authored Aug 19, 2019
1 parent 7532632 commit b26ce9b
Show file tree
Hide file tree
Showing 399 changed files with 21,283 additions and 13,137 deletions.
10 changes: 5 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ ipch/

# ReSharper is a .NET coding add-in
_ReSharper*/
*.DotSettings.user
*.[Rr]e[Ss]harper

# TeamCity is a build add-in
Expand Down Expand Up @@ -155,12 +156,11 @@ packages/*
!packages/repositories.config
project.lock.json
TestResult.xml
/src/Unosquare.Labs.EmbedIO.Samples/mydbfile.db
/src/EmbedIO.Samples/mydbfile.db
.vs/
/src/Unosquare.Labs.EmbedIO.Command/nuget.config
/src/Unosquare.Labs.EmbedIO/nuget.config
/src/Unosquare.Labs.EmbedIO.Samples/nuget.config
/test/Unosquare.Labs.EmbedIO.Tests/nuget.config
/src/EmbedIO/nuget.config
/src/EmbedIO.Samples/nuget.config
/test/EmbedIO.Tests/nuget.config
*.targets
/.vscode
/_site
Expand Down
6 changes: 3 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
language: csharp
solution: Unosquare.Labs.EmbedIO.Lib.sln
solution: EmbedIO.Lib.sln
notifications:
email: false
slack: unolabs:cbusXPH6pBwZ35rVDzi4k4ve
Expand All @@ -13,6 +13,6 @@ matrix:
- os: osx
osx_image: xcode9.1
install:
- dotnet restore Unosquare.Labs.EmbedIO.sln
- dotnet restore EmbedIO.sln
script:
- dotnet test ./test/Unosquare.Labs.EmbedIO.Tests/Unosquare.Labs.EmbedIO.Tests.csproj -c Release -f netcoreapp2.2
- dotnet test ./test/EmbedIO.Tests/EmbedIO.Tests.csproj -c Release
14 changes: 11 additions & 3 deletions Unosquare.Labs.EmbedIO.sln → EmbedIO.sln
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,20 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
ProjectSection(SolutionItems) = preProject
.travis.yml = .travis.yml
appveyor.yml = appveyor.yml
LICENSE = LICENSE
README.md = README.md
StyleCop.Analyzers.ruleset = StyleCop.Analyzers.ruleset
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{39AC0FCD-3DBB-4C9B-87EE-873D31165F28}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Unosquare.Labs.EmbedIO", "src\Unosquare.Labs.EmbedIO\Unosquare.Labs.EmbedIO.csproj", "{76B8EFC5-EDEF-4E31-9E78-164E8687B1AB}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EmbedIO", "src\EmbedIO\EmbedIO.csproj", "{76B8EFC5-EDEF-4E31-9E78-164E8687B1AB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Unosquare.Labs.EmbedIO.Tests", "test\Unosquare.Labs.EmbedIO.Tests\Unosquare.Labs.EmbedIO.Tests.csproj", "{C91F303C-DFF3-4260-8A66-0EBEF53F69F5}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EmbedIO.Tests", "test\EmbedIO.Tests\EmbedIO.Tests.csproj", "{C91F303C-DFF3-4260-8A66-0EBEF53F69F5}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Unosquare.Labs.EmbedIO.Samples", "src\Unosquare.Labs.EmbedIO.Samples\Unosquare.Labs.EmbedIO.Samples.csproj", "{5B312B76-1C92-4C50-9A44-BAF738377306}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EmbedIO.Samples", "src\EmbedIO.Samples\EmbedIO.Samples.csproj", "{5B312B76-1C92-4C50-9A44-BAF738377306}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EmbedIO.Testing", "src\EmbedIO.Testing\EmbedIO.Testing.csproj", "{822A86B3-4294-44D6-8C5E-53EC508E40AC}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Expand All @@ -39,6 +42,10 @@ Global
{5B312B76-1C92-4C50-9A44-BAF738377306}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5B312B76-1C92-4C50-9A44-BAF738377306}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5B312B76-1C92-4C50-9A44-BAF738377306}.Release|Any CPU.Build.0 = Release|Any CPU
{822A86B3-4294-44D6-8C5E-53EC508E40AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{822A86B3-4294-44D6-8C5E-53EC508E40AC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{822A86B3-4294-44D6-8C5E-53EC508E40AC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{822A86B3-4294-44D6-8C5E-53EC508E40AC}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand All @@ -47,6 +54,7 @@ Global
{76B8EFC5-EDEF-4E31-9E78-164E8687B1AB} = {97BC259A-4E78-4BA8-8F4D-2656BC78BB34}
{C91F303C-DFF3-4260-8A66-0EBEF53F69F5} = {39AC0FCD-3DBB-4C9B-87EE-873D31165F28}
{5B312B76-1C92-4C50-9A44-BAF738377306} = {97BC259A-4E78-4BA8-8F4D-2656BC78BB34}
{822A86B3-4294-44D6-8C5E-53EC508E40AC} = {97BC259A-4E78-4BA8-8F4D-2656BC78BB34}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {197F095C-03FC-4632-8C1F-CC038D75CEAB}
Expand Down
52 changes: 17 additions & 35 deletions Unosquare.Labs.EmbedIO.sln.DotSettings → EmbedIO.sln.DotSettings
Original file line number Diff line number Diff line change
Expand Up @@ -424,7 +424,6 @@
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=AnnotateNotNullParameter/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=AnnotateNotNullTypeMember/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnusedMember_002EGlobal/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/JsInspections/LanguageLevel/@EntryValue">ECMAScript 2016</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/DEFAULT_INTERNAL_MODIFIER/@EntryValue">Implicit</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/DEFAULT_PRIVATE_MODIFIER/@EntryValue">Implicit</s:String>
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/ALIGN_LINQ_QUERY/@EntryValue">True</s:Boolean>
Expand All @@ -434,7 +433,18 @@
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/ANONYMOUS_METHOD_DECLARATION_BRACES/@EntryValue">END_OF_LINE</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/EMPTY_BLOCK_STYLE/@EntryValue">TOGETHER_SAME_LINE</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/INITIALIZER_BRACES/@EntryValue">END_OF_LINE</s:String>
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/KEEP_EXISTING_DECLARATION_PARENS_ARRANGEMENT/@EntryValue">False</s:Boolean>
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/OUTDENT_BINARY_OPS/@EntryValue">True</s:Boolean>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/PLACE_ACCESSOR_ATTRIBUTE_ON_SAME_LINE_EX/@EntryValue">NEVER</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/PLACE_ACCESSORHOLDER_ATTRIBUTE_ON_SAME_LINE_EX/@EntryValue">NEVER</s:String>
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/PLACE_CONSTRUCTOR_INITIALIZER_ON_SAME_LINE/@EntryValue">False</s:Boolean>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/PLACE_FIELD_ATTRIBUTE_ON_SAME_LINE_EX/@EntryValue">NEVER</s:String>
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/PLACE_TYPE_CONSTRAINTS_ON_SAME_LINE/@EntryValue">False</s:Boolean>
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_BEFORE_ARROW_WITH_EXPRESSIONS/@EntryValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_BEFORE_BINARY_OPSIGN/@EntryValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_BEFORE_EXTENDS_COLON/@EntryValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_LINES/@EntryValue">False</s:Boolean>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_MULTIPLE_TYPE_PARAMEER_CONSTRAINTS_STYLE/@EntryValue">CHOP_ALWAYS</s:String>
<s:Boolean x:Key="/Default/CodeStyle/Generate/=Implementations/@KeyIndexDefined">True</s:Boolean>
<s:String x:Key="/Default/CodeStyle/Generate/=Implementations/Options/=Mutable/@EntryIndexedValue">True</s:String>
<s:Boolean x:Key="/Default/CodeStyle/Generate/=Overrides/@KeyIndexDefined">True</s:Boolean>
Expand All @@ -455,40 +465,6 @@
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=TypesAndNamespaces/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb_AaBb" /&gt;</s:String>
<s:Int64 x:Key="/Default/CodeStyle/Naming/CSharpAutoNaming/AutoNamingCompletedVersion/@EntryValue">2</s:Int64>
<s:Boolean x:Key="/Default/CodeStyle/Naming/CSharpAutoNaming/IsNotificationDisabled/@EntryValue">True</s:Boolean>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=JS_005FBLOCK_005FSCOPE_005FCONSTANT/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=JS_005FBLOCK_005FSCOPE_005FFUNCTION/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=JS_005FBLOCK_005FSCOPE_005FVARIABLE/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=JS_005FCLASS/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=JS_005FCONSTRUCTOR/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=JS_005FFUNCTION/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=JS_005FGLOBAL_005FVARIABLE/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=JS_005FLABEL/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=JS_005FLOCAL_005FCONSTRUCTOR/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=JS_005FLOCAL_005FVARIABLE/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=JS_005FOBJECT_005FPROPERTY_005FOF_005FFUNCTION/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=JS_005FPARAMETER/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=TS_005FCLASS/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=TS_005FENUM/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=TS_005FENUM_005FMEMBER/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=TS_005FINTERFACE/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="I" Suffix="" Style="AaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=TS_005FMIXED_005FENUM/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=TS_005FMODULE/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=TS_005FMODULE_005FEXPORTED/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=TS_005FMODULE_005FLOCAL/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=TS_005FPRIVATE_005FMEMBER_005FACCESSOR/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=TS_005FPRIVATE_005FSTATIC_005FTYPE_005FFIELD/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=TS_005FPRIVATE_005FTYPE_005FFIELD/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=TS_005FPRIVATE_005FTYPE_005FMETHOD/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=TS_005FPROTECTED_005FMEMBER_005FACCESSOR/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=TS_005FPROTECTED_005FSTATIC_005FTYPE_005FFIELD/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=TS_005FPROTECTED_005FTYPE_005FFIELD/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=TS_005FPROTECTED_005FTYPE_005FMETHOD/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=TS_005FPUBLIC_005FMEMBER_005FACCESSOR/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=TS_005FPUBLIC_005FSTATIC_005FTYPE_005FFIELD/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=TS_005FPUBLIC_005FTYPE_005FFIELD/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=TS_005FPUBLIC_005FTYPE_005FMETHOD/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=TS_005FTYPE_005FALIAS/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=TS_005FTYPE_005FPARAMETER/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="T" Suffix="" Style="AaBb" /&gt;</s:String>
<s:String x:Key="/Default/Connection/XmlConnectionList/@EntryValue">&lt;Configurator&gt;&lt;ConnectList /&gt;&lt;/Configurator&gt;</s:String>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpKeepExistingMigration/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpPlaceEmbeddedOnSameLineMigration/@EntryIndexedValue">True</s:Boolean>
Expand All @@ -497,9 +473,15 @@
<s:String x:Key="/Default/GlobalFilterSettingsManager/AppliedDefaultAttributeFilterString/@EntryValue">System.CodeDom.Compiler.GeneratedCodeAttribute</s:String>
<s:String x:Key="/Default/GlobalFilterSettingsManager/AttributeFilterXml/@EntryValue">&lt;data&gt;&lt;AttributeFilter ClassMask="System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute" IsEnabled="True" /&gt;&lt;AttributeFilter ClassMask="System.CodeDom.Compiler.GeneratedCodeAttribute" IsEnabled="True" /&gt;&lt;/data&gt;</s:String>
<s:Boolean x:Key="/Default/ReSpeller/DontCheckInheritedMembers/@EntryValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=dereferenced/@EntryIndexedValue">True</s:Boolean>

<s:Boolean x:Key="/Default/UserDictionary/Words/=EmbedIO/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=inheritdoc/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=opcode/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=parameterless/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=sqlite/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=subprotocol/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=subprotocols/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Unosquare/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=unregister/@EntryIndexedValue">True</s:Boolean>
</wpf:ResourceDictionary>
10 changes: 6 additions & 4 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The MIT License (MIT)

Copyright (c) 2014-2018 Unosquare, Mario A. Di Vece and Geovanni Perez
Copyright (c) 2014-2019 Unosquare, Mario A. Di Vece and Geovanni Perez

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand All @@ -20,16 +20,18 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

-------------------------------------------------------------------------
Portions of this software are distributed under the following licenses:
-------------------------------------------------------------------------
---------------------------------------------------------------------------
Portions of this software are redistributed under the following licenses:
---------------------------------------------------------------------------

Component name : MimeTypeMap
Used in : EmbedIO.MimeTypes class
Copyright holder: Samuel Neff
License type : MIT
License URL : https://github.com/samuelneff/MimeTypeMap/blob/master/LICENSE

Component name : System.Net classes
Used in : Several types in EmbedIO.Net and EmbedIO.Net.Internal namespaces
Copyright holder: The .NET Foundation
License type : MIT X11
License URL : https://github.com/mono/mono/blob/master/LICENSE
Loading

0 comments on commit b26ce9b

Please sign in to comment.