diff --git a/.gitignore b/.gitignore index 81b11e4d..62fa9116 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,7 @@ +# NuGet Packages Directory +packages + +.vs/ bin/ obj/ .idea/ diff --git a/LICENSE b/LICENSE index 9daf02d2..5df016fa 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2007-2011, Demis Bellot, ServiceStack. +Copyright (c) 2007-2016, Demis Bellot, ServiceStack. http://www.servicestack.net All rights reserved. diff --git a/README.md b/README.md index af359794..a5b63bf4 100644 --- a/README.md +++ b/README.md @@ -15,38 +15,31 @@ or clone this repo to download the source: git clone git://github.com/ServiceStack/ServiceStack.Examples.git -## Live Demo +## [Live Demos](https://github.com/ServiceStackApps/LiveDemos) -A live demo and tutorials are available at the following locations: +[Live demos](https://github.com/ServiceStackApps/LiveDemos) and tutorials are available at the following locations: -### [Backbone.js TODO app with REST and Redis backend](http://servicestack.net/Backbone.Todos/) -[![Backbone REST and Redis TODOs](http://servicestack.net/showcase/img/todos-400x350.png)](http://servicestack.net/Backbone.Todos/) +### [Backbone.js TODO app with REST and Redis backend](http://todos.servicestack.net) +[![Backbone REST and Redis TODOs](http://servicestack.net/showcase/img/todos-400x350.png)](http://todos.servicestack.net) -### [Creating a Hello World Web service from scratch](http://servicestack.net/ServiceStack.Hello/) -[![ServiceStacks Hello, World!](http://servicestack.net/showcase/img/hello-400x350.png)](http://servicestack.net/ServiceStack.Hello/) +### [Creating a Hello World Web service from scratch](http://mono.servicestack.net/ServiceStack.Hello/) +[![ServiceStacks Hello, World!](http://servicestack.net/showcase/img/hello-400x350.png)](http://mono.servicestack.net/ServiceStack.Hello/) -### [GitHub-like browser to manage remote filesystem over REST](http://servicestack.net/RestFiles/) -[![GitHub-like REST Files](http://servicestack.net/showcase/img/restfiles-400x350.png)](http://servicestack.net/RestFiles/) +### [GitHub-like browser to manage remote filesystem over REST](http://restfiles.servicestack.net) +[![GitHub-like REST Files](http://servicestack.net/showcase/img/restfiles-400x350.png)](http://restfiles.servicestack.net) -### [Creating a StackOverflow-like app in Redis](http://servicestack.net/RedisStackOverflow/) -[![Redis StackOverflow](http://servicestack.net/showcase/img/redisstackoverflow-400x350.png)](http://servicestack.net/RedisStackOverflow/) +### [Creating a StackOverflow-like app in Redis](http://redisstackoverflow.servicestack.net) +[![Redis StackOverflow](http://servicestack.net/showcase/img/redisstackoverflow-400x350.png)](http://redisstackoverflow.servicestack.net) -### [Northwind dataset services](http://servicestack.net/ServiceStack.Northwind/) -[![Redis StackOverflow](http://servicestack.net/showcase/img/northwind-400x350.png)](http://servicestack.net/ServiceStack.Northwind/) - -### [Complete REST Web service example](http://servicestack.net/ServiceStack.MovieRest/) -[![REST at the Movies!](http://servicestack.net/showcase/img/movierest-400x350.png)](http://servicestack.net/ServiceStack.MovieRest/) - -### [Calling Web Services with Ajax](http://servicestack.net/ServiceStack.Examples.Clients/) -[![Ajax Example](http://servicestack.net/showcase/img/ajaxexample-400x350.png)](http://servicestack.net/ServiceStack.Examples.Clients/) +### [Northwind dataset services](http://northwind.servicestack.net) +[![Redis StackOverflow](http://servicestack.net/showcase/img/northwind-400x350.png)](http://northwind.servicestack.net) ### Other examples -* [Calling Web Services with Mono Touch](http://www.servicestack.net/monotouch/remote-info/) -* [Calling Web Services using Silverlight](http://servicestack.net/ServiceStack.Examples.Clients/Silverlight.htm) -* [Calling SOAP 1.1 Web Service Examples](http://servicestack.net/ServiceStack.Examples.Clients/Soap11.aspx) -* [Calling SOAP 1.2 Web Service Examples](http://servicestack.net/ServiceStack.Examples.Clients/Soap12.aspx) +* [Calling Web Services with Mono Touch](http://mono.servicestack.net/monotouch/remote-info/) +* [Calling Web Services using Silverlight](http://mono.servicestack.net/ServiceStack.Examples.Clients/Silverlight.htm) +* [Calling SOAP 1.1 Web Service Examples](http://mono.servicestack.net/ServiceStack.Examples.Clients/Soap11.aspx) +* [Calling SOAP 1.2 Web Service Examples](http://mono.servicestack.net/ServiceStack.Examples.Clients/Soap12.aspx) -_All live examples hosted on CentOS/Nginx/FastCGI/Mono_ ### Troubleshooting diff --git a/lib/Moq.dll b/lib/Moq.dll deleted file mode 100644 index abcb72ee..00000000 Binary files a/lib/Moq.dll and /dev/null differ diff --git a/lib/Moq.xml b/lib/Moq.xml deleted file mode 100644 index a29e2306..00000000 --- a/lib/Moq.xml +++ /dev/null @@ -1,2930 +0,0 @@ - - - - Moq - - - - - A that returns an empty default value - for invocations that do not have expectations or return values, with loose mocks. - This is the default behavior for a mock. - - - - - Interface to be implemented by classes that determine the - default value of non-expected invocations. - - - - - Provides a value for the given member and arguments. - - The member to provide a default - value for. - Optional arguments passed in - to the call that requires a default value. - - - Type to mock, which can be an interface or a class. - - Provides a mock implementation of . - - - Only abstract and virtual members of classes can be mocked. - - The behavior of the mock with regards to the expectations and the actual calls is determined - by the optional that can be passed to the - constructor. - - - - The following example shows setting expectations with specific values - for method invocations: - - //setup - data - var order = new Order(TALISKER, 50); - var mock = new Mock<IWarehouse>(); - - //setup - expectations - mock.Expect(x => x.HasInventory(TALISKER, 50)).Returns(true); - - //exercise - order.Fill(mock.Object); - - //verify - Assert.True(order.IsFilled); - - The following example shows how to use the class - to specify conditions for arguments instead of specific values: - - //setup - data - var order = new Order(TALISKER, 50); - var mock = new Mock<IWarehouse>(); - - //setup - expectations - //shows how to expect a value within a range - mock.Expect(x => x.HasInventory( - It.IsAny<string>(), - It.IsInRange(0, 100, Range.Inclusive))) - .Returns(false); - - //shows how to throw for unexpected calls. contrast with the "verify" approach of other mock libraries. - mock.Expect(x => x.Remove( - It.IsAny<string>(), - It.IsAny<int>())) - .Throws(new InvalidOperationException()); - - //exercise - order.Fill(mock.Object); - - //verify - Assert.False(order.IsFilled); - - - - - - Helper interface used to hide the base - members from the fluent API to make it much cleaner - in Visual Studio intellisense. - - - - - - - - - - - - - - - - - Adds an interface implementation to the mock, - allowing expectations to be set for it. - - - This method can only be called before the first use - of the mock property, at which - point the runtime type has already been generated - and no more interfaces can be added to it. - - Also, must be an - interface and not a class, which must be specified - when creating the mock instead. - - - The mock type - has already been generated by accessing the property. - The specified - is not an interface. - - The following example creates a mock for the main interface - and later adds to it to verify - it's called by the consumer code: - - var mock = new Mock<IProcessor>(); - mock.Expect(x => x.Execute("ping")); - - // add IDisposable interface - var disposable = mock.As<IDisposable>(); - disposable.Expect(d => d.Dispose()).Verifiable(); - - - Type of interface to cast the mock to. - - - - Sets an expectation on the mocked type for a call to - to a value returning method. - - Type of the return value. Typically omitted as it can be inferred from the expression. - - If more than one expectation is set for the same method or property, - the latest one wins and is the one that will be executed. - - Lambda expression that specifies the expected method invocation. - - - mock.Expect(x => x.HasInventory("Talisker", 50)).Returns(true); - - - - - - Sets an expectation on the mocked type for a call to - to a void method. - - - If more than one expectation is set for the same method or property, - the latest one wins and is the one that will be executed. - - Lambda expression that specifies the expected method invocation. - - - var mock = new Mock<IProcessor>(); - mock.Expect(x => x.Execute("ping")); - - - - - - Sets an expectation on the mocked type for a call to - to a property getter. - - - If more than one expectation is set for the same property getter, - the latest one wins and is the one that will be executed. - - Type of the property. Typically omitted as it can be inferred from the expression. - Lambda expression that specifies the expected property getter. - - - mock.ExpectGet(x => x.Suspended) - .Returns(true); - - - - - - Sets an expectation on the mocked type for a call to - to a property setter. - - - If more than one expectation is set for the same property setter, - the latest one wins and is the one that will be executed. - - Type of the property. Typically omitted as it can be inferred from the expression. - Lambda expression that specifies the expected property setter. - - - mock.ExpectSet(x => x.Suspended); - - - - - - Sets an expectation on the mocked type for a call to - to a property setter with a specific value. - - - More than one expectation can be set for the setter with - different values. - - Type of the property. Typically omitted as it can be inferred from the expression. - Lambda expression that specifies the expected property setter. - The value expected to be set for the property. - - - mock.ExpectSet(x => x.Suspended, true); - - - - - - Implements . - - - - - Implements . - - - - - Verifies that a specific invocation matching the given - expression was performed on the mock. Use in conjuntion - with the default . - - - This example assumes that the mock has been used, - and later we want to verify that a given invocation - with specific parameters was performed: - - var mock = new Mock<IProcessor>(); - // exercise mock - //... - // Will throw if the test code didn't call Execute with a "ping" string argument. - mock.Verify(proc => proc.Execute("ping")); - - - The invocation was not performed on the mock. - Expression to verify. - - - - Verifies that a specific invocation matching the given - expression was performed on the mock. Use in conjuntion - with the default . - - - This example assumes that the mock has been used, - and later we want to verify that a given invocation - with specific parameters was performed: - - var mock = new Mock<IWarehouse>(); - // exercise mock - //... - // Will throw if the test code didn't call HasInventory. - mock.Verify(warehouse => warehouse.HasInventory(TALISKER, 50)); - - - The invocation was not performed on the mock. - Expression to verify. - Type of return value from the expression. - - - - Verifies that a property was read on the mock. - Use in conjuntion with the default . - - - This example assumes that the mock has been used, - and later we want to verify that a given property - was retrieved from it: - - var mock = new Mock<IWarehouse>(); - // exercise mock - //... - // Will throw if the test code didn't retrieve the IsClosed property. - mock.VerifyGet(warehouse => warehouse.IsClosed); - - - The invocation was not performed on the mock. - Expression to verify. - Type of the property to verify. Typically omitted as it can - be inferred from the expression's return type. - - - - Verifies that a property has been set on the mock. - Use in conjuntion with the default . - - - This example assumes that the mock has been used, - and later we want to verify that a given invocation - with specific parameters was performed: - - var mock = new Mock<IWarehouse>(); - // exercise mock - //... - // Will throw if the test code didn't set the IsClosed property. - mock.VerifySet(warehouse => warehouse.IsClosed); - - - The invocation was not performed on the mock. - Expression to verify. - Type of the property to verify. Typically omitted as it can - be inferred from the expression's return type. - - - - Verifies that a property has been set on the mock to the given value. - Use in conjuntion with the default . - - - This example assumes that the mock has been used, - and later we want to verify that a given invocation - with specific parameters was performed: - - var mock = new Mock<IWarehouse>(); - // exercise mock - //... - // Will throw if the test code didn't set the IsClosed property to true - mock.VerifySet(warehouse => warehouse.IsClosed, true); - - - The invocation was not performed on the mock. - Expression to verify. - The value that should have been set on the property. - Type of the property to verify. Typically omitted as it can - be inferred from the expression's return type. - - - - Exposes the mocked object instance. - - - - - Specifies the behavior to use when returning default values for - unexpected invocations. - - - - - Behavior of the mock, according to the value set in the constructor. - - - - - Implements the fluent API. - - - - - Defines the Callback verb and overloads. - - - - - Specifies a callback to invoke when the method is called. - - Callback method to invoke. - - The following example specifies a callback to set a boolean - value that can be used later: - - bool called = false; - mock.Expect(x => x.Execute()) - .Callback(() => called = true); - - - - - - Specifies a callback to invoke when the method is called that receives the original - arguments. - - Argument type of the invoked method. - Callback method to invoke. - - Invokes the given callback with the concrete invocation argument value. - - Notice how the specific string argument is retrieved by simply declaring - it as part of the lambda expression for the callback: - - - mock.Expect(x => x.Execute(It.IsAny<string>())) - .Callback((string command) => Console.WriteLine(command)); - - - - - - Specifies a callback to invoke when the method is called that receives the original - arguments. - - Type of the first argument of the invoked method. - Type of the second argument of the invoked method. - Callback method to invoke. - - Invokes the given callback with the concrete invocation arguments values. - - Notice how the specific arguments are retrieved by simply declaring - them as part of the lambda expression for the callback: - - - mock.Expect(x => x.Execute( - It.IsAny<string>(), - It.IsAny<string>())) - .Callback((string arg1, string arg2) => Console.WriteLine(arg1 + arg2)); - - - - - - Specifies a callback to invoke when the method is called that receives the original - arguments. - - Type of the first argument of the invoked method. - Type of the second argument of the invoked method. - Type of the third argument of the invoked method. - Callback method to invoke. - - Invokes the given callback with the concrete invocation arguments values. - - Notice how the specific arguments are retrieved by simply declaring - them as part of the lambda expression for the callback: - - - mock.Expect(x => x.Execute( - It.IsAny<string>(), - It.IsAny<string>(), - It.IsAny<int>())) - .Callback((string arg1, string arg2, int arg3) => Console.WriteLine(arg1 + arg2 + arg3)); - - - - - - Specifies a callback to invoke when the method is called that receives the original - arguments. - - Type of the first argument of the invoked method. - Type of the second argument of the invoked method. - Type of the third argument of the invoked method. - Type of the fourth argument of the invoked method. - Callback method to invoke. - - Invokes the given callback with the concrete invocation arguments values. - - Notice how the specific arguments are retrieved by simply declaring - them as part of the lambda expression for the callback: - - - mock.Expect(x => x.Execute( - It.IsAny<string>(), - It.IsAny<string>(), - It.IsAny<int>(), - It.IsAny<bool>())) - .Callback((string arg1, string arg2, int arg3, bool arg4) => Console.WriteLine(arg1 + arg2 + arg3 + arg4)); - - - - - - Defines occurrence members to constraint expectations. - - - - - The expected invocation can happen at most once. - - - - var mock = new Mock<ICommand>(); - mock.Expect(foo => foo.Execute("ping")) - .AtMostOnce(); - - - - - - The expected invocation can happen at most specified number of times. - - - - var mock = new Mock<ICommand>(); - mock.Expect(foo => foo.Execute("ping")) - .AtMost( 5 ); - - - - - - Defines the Verifiable verb. - - - - - Marks the expectation as verifiable, meaning that a call - to will check if this particular - expectation was met. - - - The following example marks the expectation as verifiable: - - mock.Expect(x => x.Execute("ping")) - .Returns(true) - .Verifiable(); - - - - - - Defines the Raises verb. - - - - - Specifies the mocked event that will be raised - when the expectation is met. - - The mocked event, retrieved from - or . - - The event args to pass when raising the event. - - The following example shows how to set an expectation that will - raise an event when it's met: - - var mock = new Mock<IContainer>(); - // create handler to associate with the event to raise - var handler = mock.CreateEventHandler(); - // associate the handler with the event to raise - mock.Object.Added += handler; - // set the expectation and the handler to raise - mock.Expect(add => add.Add(It.IsAny<string>(), It.IsAny<object>())) - .Raises(handler, EventArgs.Empty); - - - - - - Specifies the mocked event that will be raised - when the expectation is met. - - The mocked event, retrieved from - or . - - A function that will build the - to pass when raising the event. - - - - - Specifies the mocked event that will be raised - when the expectation is met. - - The mocked event, retrieved from - or . - - A function that will build the - to pass when raising the event. - Type of the argument received by the expected invocation. - - - - - Specifies the mocked event that will be raised - when the expectation is met. - - The mocked event, retrieved from - or . - - A function that will build the - to pass when raising the event. - Type of the first argument received by the expected invocation. - Type of the second argument received by the expected invocation. - - - - - Specifies the mocked event that will be raised - when the expectation is met. - - The mocked event, retrieved from - or . - - A function that will build the - to pass when raising the event. - Type of the first argument received by the expected invocation. - Type of the second argument received by the expected invocation. - Type of the third argument received by the expected invocation. - - - - - Specifies the mocked event that will be raised - when the expectation is met. - - The mocked event, retrieved from - or . - - A function that will build the - to pass when raising the event. - Type of the first argument received by the expected invocation. - Type of the second argument received by the expected invocation. - Type of the third argument received by the expected invocation. - Type of the fourth argument received by the expected invocation. - - - - - Marks a method as a matcher, which allows complete replacement - of the built-in class with your own argument - matching rules. - - - The argument matching is used to determine whether a concrete - invocation in the mock matches a given expectation. This - matching mechanism is fully extensible. - - There are two parts of a matcher: the compiler matcher - and the runtime matcher. - - - Compiler matcher - Used to satisfy the compiler requirements for the - argument. Needs to be a method optionally receiving any arguments - you might need for the matching, but with a return type that - matches that of the argument. - - Let's say I want to match a lists of orders that contains - a particular one. I might create a compiler matcher like the following: - - - public static class Orders - { - [Matcher] - public static IEnumerable<Order> Contains(Order order) - { - return null; - } - } - - Now we can invoke this static method instead of an argument in an - invocation: - - var order = new Order { ... }; - var mock = new Mock<IRepository<Order>>(); - - mock.Expect(x => x.Save(Orders.Contains(order))) - .Throws<ArgumentException>(); - - Note that the return value from the compiler matcher is irrelevant. - This method will never be called, and is just used to satisfy the - compiler and to signal Moq that this is not a method that we want - to be invoked at runtime. - - - - Runtime matcher - - The runtime matcher is the one that will actually perform evaluation - when the test is run, and is defined by convention to have the - same signature as the compiler matcher, but where the return - value is the first argument to the call, which contains the - object received by the actual invocation at runtime: - - public static bool Contains(IEnumerable<Order> orders, Order order) - { - return orders.Contains(order); - } - - At runtime, the mocked method will be invoked with a specific - list of orders. This value will be passed to this runtime - matcher as the first argument, while the second argument is the - one specified in the expectation (x.Save(Orders.Contains(order))). - - The boolean returned determines whether the given argument has been - matched. If all arguments to the expected method are matched, then - the expectation is verified. - - - - - - Using this extensible infrastructure, you can easily replace the entire - set of matchers with your own. You can also avoid the - typical (and annoying) lengthy expressions that result when you have - multiple arguments that use generics. - - - The following is the complete example explained above: - - public static class Orders - { - [Matcher] - public static IEnumerable<Order> Contains(Order order) - { - return null; - } - - public static bool Contains(IEnumerable<Order> orders, Order order) - { - return orders.Contains(order); - } - } - - And the concrete test using this matcher: - - var order = new Order { ... }; - var mock = new Mock<IRepository<Order>>(); - - mock.Expect(x => x.Save(Orders.Contains(order))) - .Throws<ArgumentException>(); - - // use mock, invoke Save, and have the matcher filter. - - - - - - Casts the expression to a lambda expression, removing - a cast if there's any. - - - - - Casts the body of the lambda expression to a . - - If the body is not a method call. - - - - Converts the body of the lambda expression into the referenced by it. - - - - - Checks whether the body of the lambda expression is a property access. - - - - - Checks whether the expression is a property access. - - - - - Checks whether the body of the lambda expression is a property indexer, which is true - when the expression is an whose - has - equal to . - - - - - Checks whether the expression is a property indexer, which is true - when the expression is an whose - has - equal to . - - - - - Creates an expression that casts the given expression to the - type. - - - - - TODO: remove this code when https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=331583 - is fixed. - - - - - Base class for visitors of expression trees. - - - Provides the functionality of the internal visitor base class that - comes with Linq. - Matt's comments on the implementation: - - In this variant there is only one visitor class that dispatches calls to the general - Visit function out to specific VisitXXX methods corresponding to different node types. - Note not every node type gets it own method, for example all binary operators are - treated in one VisitBinary method. The nodes themselves do not directly participate - in the visitation process. They are treated as just data. - The reason for this is that the quantity of visitors is actually open ended. - You can write your own. Therefore no semantics of visiting is coupled into the node classes. - It’s all in the visitors. The default visit behavior for node XXX is baked into the base - class’s version of VisitXXX. - - - Another variant is that all VisitXXX methods return a node. - The Expression tree nodes are immutable. In order to change the tree you must construct - a new one. The default VisitXXX methods will construct a new node if any of its sub-trees change. - If no changes are made then the same node is returned. That way if you make a change - to a node (by making a new node) deep down in a tree, the rest of the tree is rebuilt - automatically for you. - - See: http://blogs.msdn.com/mattwar/archive/2007/07/31/linq-building-an-iqueryable-provider-part-ii.aspx. - - Matt Warren: http://blogs.msdn.com/mattwar - Documented by InSTEDD: http://www.instedd.org - - - - Default constructor used by derived visitors. - - - - - Visits the , determining which - of the concrete Visit methods to call. - - - - - Visits the generic , determining and - calling the appropriate Visit method according to the - , which will result - in calls to , - or . - - - - - - - Visits the initializer by - calling the for the - . - - - - - Visits the expression by - calling with the expression. - - - - - Visits the by calling - with the , - and - expressions. - - - - - Visits the by calling - with the - expression. - - - - - Visits the , by default returning the - same without further behavior. - - - - - Visits the by calling - with the , - and - expressions. - - - - - Visits the returning it - by default without further behavior. - - - - - Visits the by calling - with the - expression. - - - - - Visits the by calling - with the expression, - and then with the . - - - - - - - Visits the by iterating - the list and visiting each in it. - - - - - - - Visits the by calling - with the expression. - - - - - - - Visits the by calling - with the . - - - - - - - Visits the by calling - with the - . - - - - - - - Visits the by - calling for each in the - collection. - - - - - - - Visits the by - calling for each - in the collection. - - - - - - - Visits the by calling - with the expression. - - - - - - - Visits the by calling - with the - expressions. - - - - - - - Visits the by calling - with the - expression, then with the - . - - - - - Visits the by calling - with the - expression, and then with the - . - - - - - - - Visits the by calling - with the - expressions. - - - - - - - Visits the by calling - with the - expressions. - - - - - - - Provides partial evaluation of subtrees, whenever they can be evaluated locally. - - Matt Warren: http://blogs.msdn.com/mattwar - Documented by InSTEDD: http://www.instedd.org - - - - Performs evaluation and replacement of independent sub-trees - - The root of the expression tree. - A function that decides whether a given expression - node can be part of the local function. - A new tree with sub-trees evaluated and replaced. - - - - Performs evaluation and replacement of independent sub-trees - - The root of the expression tree. - A new tree with sub-trees evaluated and replaced. - - - - Evaluates and replaces sub-trees when first candidate is reached (top-down) - - - - - Performs bottom-up analysis to determine which nodes can possibly - be part of an evaluated sub-tree. - - - - - Checks an argument to ensure it isn't null. - - The argument value to check. - The name of the argument. - - - - Checks a string argument to ensure it isn't null or empty. - - The argument value to check. - The name of the argument. - - - - Defines the Returns verb for property get expectations. - - Type of the property. - - - - Base interface for . - - - - - Specifies the value to return. - - The value to return, or . - - Return a true value from the property getter call: - - mock.ExpectGet(x => x.Suspended) - .Returns(true); - - - - - - Specifies a function that will calculate the value to return for the property. - - The function that will calculate the return value. - - Return a calculated value when the property is retrieved: - - mock.ExpectGet(x => x.Suspended) - .Returns(() => returnValues[0]); - - The lambda expression to retrieve the return value is lazy-executed, - meaning that its value may change depending on the moment the property - is retrieved and the value the returnValues array has at - that moment. - - - - - Defines the Callback verb for property getter expectations. - - - Type of the property. - - - - Specifies a callback to invoke when the property is retrieved. - - Callback method to invoke. - - Invokes the given callback with the property value being set. - - mock.ExpectGet(x => x.Suspended) - .Callback(() => called = true) - .Returns(true); - - - - - - Implements the fluent API. - - - - - Implements the fluent API. - - - - - Defines the Returns verb. - - Type of the return value from the expression. - - - - Specifies the value to return. - - The value to return, or . - - Return a true value from the method call: - - mock.Expect(x => x.Execute("ping")) - .Returns(true); - - - - - - Specifies a function that will calculate the value to return from the method. - - The function that will calculate the return value. - - Return a calculated value when the method is called: - - mock.Expect(x => x.Execute("ping")) - .Returns(() => returnValues[0]); - - The lambda expression to retrieve the return value is lazy-executed, - meaning that its value may change depending on the moment the method - is executed and the value the returnValues array has at - that moment. - - - - - Specifies a function that will calculate the value to return from the method, - retrieving the arguments for the invocation. - - Type of the argument of the invoked method. - The function that will calculate the return value. - - Return a calculated value which is evaluated lazily at the time of the invocation. - - The lookup list can change between invocations and the expectation - will return different values accordingly. Also, notice how the specific - string argument is retrieved by simply declaring it as part of the lambda - expression: - - - mock.Expect(x => x.Execute(It.IsAny<string>())) - .Returns((string command) => returnValues[command]); - - - - - - Specifies a function that will calculate the value to return from the method, - retrieving the arguments for the invocation. - - Type of the first argument of the invoked method. - Type of the second argument of the invoked method. - The function that will calculate the return value. - - Return a calculated value which is evaluated lazily at the time of the invocation. - - The return value is calculated from the value of the actual method invocation arguments. - Notice how the arguments are retrieved by simply declaring them as part of the lambda - expression: - - - mock.Expect(x => x.Execute( - It.IsAny<string>(), - It.IsAny<string>())) - .Returns((string arg1, string arg2) => arg1 + arg2); - - - - - - Specifies a function that will calculate the value to return from the method, - retrieving the arguments for the invocation. - - Type of the first argument of the invoked method. - Type of the second argument of the invoked method. - Type of the third argument of the invoked method. - The function that will calculate the return value. - - Return a calculated value which is evaluated lazily at the time of the invocation. - - The return value is calculated from the value of the actual method invocation arguments. - Notice how the arguments are retrieved by simply declaring them as part of the lambda - expression: - - - mock.Expect(x => x.Execute( - It.IsAny<string>(), - It.IsAny<string>(), - It.IsAny<int>())) - .Returns((string arg1, string arg2, int arg3) => arg1 + arg2 + arg3); - - - - - - Specifies a function that will calculate the value to return from the method, - retrieving the arguments for the invocation. - - Type of the first argument of the invoked method. - Type of the second argument of the invoked method. - Type of the third argument of the invoked method. - Type of the fourth argument of the invoked method. - The function that will calculate the return value. - - Return a calculated value which is evaluated lazily at the time of the invocation. - - The return value is calculated from the value of the actual method invocation arguments. - Notice how the arguments are retrieved by simply declaring them as part of the lambda - expression: - - - mock.Expect(x => x.Execute( - It.IsAny<string>(), - It.IsAny<string>(), - It.IsAny<int>(), - It.IsAny<bool>())) - .Returns((string arg1, string arg2, int arg3, bool arg4) => arg1 + arg2 + arg3 + arg4); - - - - - - Defines the Throws verb. - - - - - Specifies the exception to throw when the method is invoked. - - Exception instance to throw. - - This example shows how to throw an exception when the method is - invoked with an empty string argument: - - mock.Expect(x => x.Execute("")) - .Throws(new ArgumentException()); - - - - - - Specifies the type of exception to throw when the method is invoked. - - Type of exception to instantiate and throw when the expectation is met. - - This example shows how to throw an exception when the method is - invoked with an empty string argument: - - mock.Expect(x => x.Execute("")) - .Throws<ArgumentException>(); - - - - - - Implements the fluent API. - - - - - Implements the fluent API. - - - - - Defines the Callback verb and overloads for callbacks on - expectations that return a value. - - Type of the return value of the expectation. - - - - Specifies a callback to invoke when the method is called. - - Callback method to invoke. - - The following example specifies a callback to set a boolean - value that can be used later: - - bool called = false; - mock.Expect(x => x.Execute()) - .Callback(() => called = true) - .Returns(true); - - Note that in the case of value-returning methods, after the Callback - call you can still specify the return value. - - - - - Specifies a callback to invoke when the method is called that receives the original - arguments. - - Type of the argument of the invoked method. - Callback method to invoke. - - Invokes the given callback with the concrete invocation argument value. - - Notice how the specific string argument is retrieved by simply declaring - it as part of the lambda expression for the callback: - - - mock.Expect(x => x.Execute(It.IsAny<string>())) - .Callback((string command) => Console.WriteLine(command)) - .Returns(true); - - - - - - Specifies a callback to invoke when the method is called that receives the original - arguments. - - Type of the first argument of the invoked method. - Type of the second argument of the invoked method. - Callback method to invoke. - - Invokes the given callback with the concrete invocation arguments values. - - Notice how the specific arguments are retrieved by simply declaring - them as part of the lambda expression for the callback: - - - mock.Expect(x => x.Execute( - It.IsAny<string>(), - It.IsAny<string>())) - .Callback((string arg1, string arg2) => Console.WriteLine(arg1 + arg2)) - .Returns(true); - - - - - - Specifies a callback to invoke when the method is called that receives the original - arguments. - - Type of the first argument of the invoked method. - Type of the second argument of the invoked method. - Type of the third argument of the invoked method. - Callback method to invoke. - - Invokes the given callback with the concrete invocation arguments values. - - Notice how the specific arguments are retrieved by simply declaring - them as part of the lambda expression for the callback: - - - mock.Expect(x => x.Execute( - It.IsAny<string>(), - It.IsAny<string>(), - It.IsAny<int>())) - .Callback((string arg1, string arg2, int arg3) => Console.WriteLine(arg1 + arg2 + arg3)) - .Returns(true); - - - - - - Specifies a callback to invoke when the method is called that receives the original - arguments. - - Type of the first argument of the invoked method. - Type of the second argument of the invoked method. - Type of the third argument of the invoked method. - Type of the fourth argument of the invoked method. - Callback method to invoke. - - Invokes the given callback with the concrete invocation arguments values. - - Notice how the specific arguments are retrieved by simply declaring - them as part of the lambda expression for the callback: - - - mock.Expect(x => x.Execute( - It.IsAny<string>(), - It.IsAny<string>(), - It.IsAny<int>(), - It.IsAny<bool>())) - .Callback((string arg1, string arg2, int arg3, bool arg4) => Console.WriteLine(arg1 + arg2 + arg3 + arg4)) - .Returns(true); - - - - - - Implemented by all generated mock object instances. - - - - - Implemented by all generated mock object instances. - - - - - Reference the Mock that contains this as the mock.Object value. - - - - - Reference the Mock that contains this as the mock.Object value. - - - - - Implements the actual interception and method invocation for - all mocks. - - - - - Get an eventInfo for a given event name. Search type ancestors depth first if necessary. - - Name of the event, with the set_ or get_ prefix already removed - - - - Given a type return all of its ancestors, both types and interfaces. - - The type to find immediate ancestors of - - - - Implements the fluent API. - - - - - Defines the Never verb. - - - - - The expected invocation is never expected to happen. - - - - var mock = new Mock<ICommand>(); - mock.Expect(foo => foo.Execute("ping")) - .Never(); - - - - is always verified inmediately as - the invocations are performed, like strict mocks do - with unexpected invocations. - - - - - Implements the fluent API. - - - - - Implements the fluent API. - - - - - Implements the fluent API. - - - - - Defines the Callback verb for property setter expectations. - - - - Type of the property. - - - - Specifies a callback to invoke when the property is set that receives the - property value being set. - - Callback method to invoke. - - Invokes the given callback with the property value being set. - - mock.ExpectSet(x => x.Suspended) - .Callback((bool state) => Console.WriteLine(state)); - - - - - - Allows the specification of a matching condition for an - argument in a method invocation, rather than a specific - argument value. "It" refers to the argument being matched. - - - This class allows the expectation to match a method invocation - with an arbitrary value, with a value in a specified range, or - even one that matches a given predicate. - - - - - Matches any value of the given type. - - - Typically used when the actual argument value for a method - call is not relevant. - - - - // Throws an exception for a call to Remove with any string value. - mock.Expect(x => x.Remove(It.IsAny<string>())).Throws(new InvalidOperationException()); - - - Type of the value. - - - - Matches any value that satisfies the given predicate. - - Type of the argument to check. - The predicate used to match the method argument. - - Allows the specification of a predicate to perform matching - of method call arguments. - - - This example shows how to return the value 1 whenever the argument to the - Do method is an even number. - - mock.Expect(x => x.Do(It.Is<int>(i => i % 2 == 0))) - .Returns(1); - - This example shows how to throw an exception if the argument to the - method is a negative number: - - mock.Expect(x => x.GetUser(It.Is<int>(i => i < 0))) - .Throws(new ArgumentException()); - - - - - - Matches any value that is in the range specified. - - Type of the argument to check. - The lower bound of the range. - The upper bound of the range. - The kind of range. See . - - The following example shows how to expect a method call - with an integer argument within the 0..100 range. - - mock.Expect(x => x.HasInventory( - It.IsAny<string>(), - It.IsInRange(0, 100, Range.Inclusive))) - .Returns(false); - - - - - - Matches a string argument if it matches the given regular expression pattern. - - The pattern to use to match the string argument value. - - The following example shows how to expect a call to a method where the - string argument matches the given regular expression: - - mock.Expect(x => x.Check(It.IsRegex("[a-z]+"))).Returns(1); - - - - - - Matches a string argument if it matches the given regular expression pattern. - - The pattern to use to match the string argument value. - The options used to interpret the pattern. - - The following example shows how to expect a call to a method where the - string argument matches the given regular expression, in a case insensitive way: - - mock.Expect(x => x.Check(It.IsRegex("[a-z]+", RegexOptions.IgnoreCase))).Returns(1); - - - - - - Matcher to treat static functions as matchers. - - mock.Expect(x => x.StringMethod(A.MagicString())); - - pbulic static class A - { - [Matcher] - public static string MagicString() { return null; } - public static bool MagicString(string arg) - { - return arg == "magic"; - } - } - - Will success if: mock.Object.StringMethod("magic"); - and fail with any other call. - - - - - We need this non-generics base class so that - we can use from - generic code. - - - - - Base class for mocks and static helper class with methods that - apply to mocked objects, such as to - retrieve a from an object instance. - - - - - Base mock interface exposing non-generic members. - - - - - Creates a handler that can be associated to an event receiving - the given and can be used - to raise the event. - - Type of - data passed in to the event. - - This example shows how to invoke an event with a custom event arguments - class in a view that will cause its corresponding presenter to - react by changing its state: - - var mockView = new Mock<IOrdersView>(); - var mockedEvent = mockView.CreateEventHandler<OrderEventArgs>(); - - var presenter = new OrdersPresenter(mockView.Object); - - // Check that the presenter has no selection by default - Assert.Null(presenter.SelectedOrder); - - // Create a mock event handler of the appropriate type - var handler = mockView.CreateEventHandler<OrderEventArgs>(); - // Associate it with the event we want to raise - mockView.Object.Cancel += handler; - // Finally raise the event with a specific arguments data - handler.Raise(new OrderEventArgs { Order = new Order("moq", 500) }); - - // Now the presenter reacted to the event, and we have a selected order - Assert.NotNull(presenter.SelectedOrder); - Assert.Equal("moq", presenter.SelectedOrder.ProductName); - - - - - - Creates a handler that can be associated to an event receiving - a generic and can be used - to raise the event. - - - This example shows how to invoke a generic event in a view that will - cause its corresponding presenter to react by changing its state: - - var mockView = new Mock<IOrdersView>(); - var mockedEvent = mockView.CreateEventHandler(); - - var presenter = new OrdersPresenter(mockView.Object); - - // Check that the presenter is not in the "Canceled" state - Assert.False(presenter.IsCanceled); - - // Create a mock event handler of the appropriate type - var handler = mockView.CreateEventHandler(); - // Associate it with the event we want to raise - mockView.Object.Cancel += handler; - // Finally raise the event - handler.Raise(EventArgs.Empty); - - // Now the presenter reacted to the event, and changed its state - Assert.True(presenter.IsCanceled); - - - - - - Verifies that all verifiable expectations have been met. - - - This example sets up an expectation and marks it as verifiable. After - the mock is used, a call is issued on the mock - to ensure the method in the expectation was invoked: - - var mock = new Mock<IWarehouse>(); - mock.Expect(x => x.HasInventory(TALISKER, 50)).Verifiable().Returns(true); - ... - // other test code - ... - // Will throw if the test code has didn't call HasInventory. - mock.Verify(); - - - Not all verifiable expectations were met. - - - - Verifies all expectations regardless of whether they have - been flagged as verifiable. - - - This example sets up an expectation without marking it as verifiable. After - the mock is used, a call is issued on the mock - to ensure that all expectations are met: - - var mock = new Mock<IWarehouse>(); - mock.Expect(x => x.HasInventory(TALISKER, 50)).Returns(true); - ... - // other test code - ... - // Will throw if the test code has didn't call HasInventory, even - // that expectation was not marked as verifiable. - mock.VerifyAll(); - - - At least one expectation was not met. - - - - Whether the base member virtual implementation will be called - for mocked classes if no expectation is met. Defaults to . - - - - - Determines how to generate default values for loose mocks on - unexpected invocations. - - - - - The mocked object instance. - - - - - Retrieves the mock object for the given object instance. - - Type of the mock to retrieve. Can be omitted as it's inferred - from the object instance passed in as the instance. - The instance of the mocked object. - The mock associated with the mocked object. - The received instance - was not created by Moq. - - The following example shows how to add a new expectation to an object - instance which is not the original but rather - the object associated with it: - - // Typed instance, not the mock, is retrieved from some test API. - HttpContextBase context = GetMockContext(); - - // context.Request is the typed object from the "real" API - // so in order to add an expectation to it, we need to get - // the mock that "owns" it - Mock<HttpRequestBase> request = Mock.Get(context.Request); - mock.Expect(req => req.AppRelativeCurrentExecutionFilePath) - .Returns(tempUrl); - - - - - - Initializes the mock - - - - - Returns the mocked object value. - - - - - Implements . - - - - - Implements . - - - - - Gets the interceptor target for the given expression and root mock, - building the intermediate hierarchy of mock objects if necessary. - - - - - Implements . - - Type of event argument class. - - - - Implements - - - - - Base class for mocks and static helper class with methods that - apply to mocked objects, such as to - retrieve a from an object instance. - - - - - Exposes the list of extra interfaces implemented by the mock. - - - - - Implements . - - - - - Implements . - - - - - Implements . - - - - - Specifies the class that will determine the default - value to return when invocations are made that - have no expectations and need to return a default - value (for loose mocks). - - - - - The mocked object instance. Implements . - - - - - Retrieves the type of the mocked object, its generic type argument. - This is used in the auto-mocking of hierarchy access. - - - - - Represents a generic event that has been mocked and can - be rised. - - - - - Provided solely to allow the interceptor to determine when the attached - handler is coming from this mocked event so we can assign the - corresponding EventInfo for it. - - - - - Raises the associated event with the given - event argument data. - - - - - Provides support for attaching a to - a generic event. - - Event to convert. - - - - Event raised whenever the mocked event is rised. - - - - - Options to customize the behavior of the mock. - - - - - Causes the mock to always throw - an exception for invocations that don't have a - corresponding expectation. - - - - - Will never throw exceptions, returning default - values when necessary (null for reference types, - zero for value types or empty enumerables and arrays). - - - - - Default mock behavior, which equals . - - - - - Exception thrown by mocks when expectations are not met, - the mock is not properly setup, etc. - - - A distinct exception type is provided so that exceptions - thrown by the mock can be differentiated in tests that - expect other exceptions to be thrown (i.e. ArgumentException). - - Richer exception hierarchy/types are not provided as - tests typically should not catch or expect exceptions - from the mocks. These are typically the result of changes - in the tested class or its collaborators implementation, and - result in fixes in the mock setup so that they dissapear and - allow the test to pass. - - - - - - Supports the serialization infrastructure. - - Serialization information. - Streaming context. - - - - Supports the serialization infrastructure. - - Serialization information. - Streaming context. - - - - Made internal as it's of no use for - consumers, but it's important for - our own tests. - - - - - Used by the mock factory to accumulate verification - failures. - - - - - Supports the serialization infrastructure. - - - - - Utility factory class to use to construct multiple - mocks when consistent verification is - desired for all of them. - - - If multiple mocks will be created during a test, passing - the desired (if different than the - or the one - passed to the factory constructor) and later verifying each - mock can become repetitive and tedious. - - This factory class helps in that scenario by providing a - simplified creation of multiple mocks with a default - (unless overriden by calling - ) and posterior verification. - - - - The following is a straightforward example on how to - create and automatically verify strict mocks using a : - - var factory = new MockFactory(MockBehavior.Strict); - - var foo = factory.Create<IFoo>(); - var bar = factory.Create<IBar>(); - - // no need to call Verifiable() on the expectation - // as we'll be validating all expectations anyway. - foo.Expect(f => f.Do()); - bar.Expect(b => b.Redo()); - - // exercise the mocks here - - factory.VerifyAll(); - // At this point all expectations are already checked - // and an optional MockException might be thrown. - // Note also that because the mocks are strict, any invocation - // that doesn't have a matching expectation will also throw a MockException. - - The following examples shows how to setup the factory - to create loose mocks and later verify only verifiable expectations: - - var factory = new MockFactory(MockBehavior.Loose); - - var foo = factory.Create<IFoo>(); - var bar = factory.Create<IBar>(); - - // this expectation will be verified at the end of the "using" block - foo.Expect(f => f.Do()).Verifiable(); - - // this expectation will NOT be verified - foo.Expect(f => f.Calculate()); - - // this expectation will be verified at the end of the "using" block - bar.Expect(b => b.Redo()).Verifiable(); - - // exercise the mocks here - // note that because the mocks are Loose, members - // called in the interfaces for which no matching - // expectations exist will NOT throw exceptions, - // and will rather return default values. - - factory.Verify(); - // At this point verifiable expectations are already checked - // and an optional MockException might be thrown. - - The following examples shows how to setup the factory with a - default strict behavior, overriding that default for a - specific mock: - - var factory = new MockFactory(MockBehavior.Strict); - - // this particular one we want loose - var foo = factory.Create<IFoo>(MockBehavior.Loose); - var bar = factory.Create<IBar>(); - - // set expectations - - // exercise the mocks here - - factory.Verify(); - - - - - - - Initializes the factory with the given - for newly created mocks from the factory. - - The behavior to use for mocks created - using the factory method if not overriden - by using the overload. - - - - Creates a new mock with the default - specified at factory construction time. - - Type to mock. - A new . - - - var factory = new MockFactory(MockBehavior.Strict); - - var foo = factory.Create<IFoo>(); - // use mock on tests - - factory.VerifyAll(); - - - - - - Creates a new mock with the default - specified at factory construction time and with the - the given constructor arguments for the class. - - - The mock will try to find the best match constructor given the - constructor arguments, and invoke that to initialize the instance. - This applies only to classes, not interfaces. - - Type to mock. - Constructor arguments for mocked classes. - A new . - - - var factory = new MockFactory(MockBehavior.Default); - - var mock = factory.Create<MyBase>("Foo", 25, true); - // use mock on tests - - factory.Verify(); - - - - - - Creates a new mock with the given . - - Type to mock. - Behavior to use for the mock, which overrides - the default behavior specified at factory construction time. - A new . - - The following example shows how to create a mock with a different - behavior to that specified as the default for the factory: - - var factory = new MockFactory(MockBehavior.Strict); - - var foo = factory.Create<IFoo>(MockBehavior.Loose); - - - - - - Creates a new mock with the given - and with the the given constructor arguments for the class. - - - The mock will try to find the best match constructor given the - constructor arguments, and invoke that to initialize the instance. - This applies only to classes, not interfaces. - - Type to mock. - Behavior to use for the mock, which overrides - the default behavior specified at factory construction time. - Constructor arguments for mocked classes. - A new . - - The following example shows how to create a mock with a different - behavior to that specified as the default for the factory, passing - constructor arguments: - - var factory = new MockFactory(MockBehavior.Default); - - var mock = factory.Create<MyBase>(MockBehavior.Strict, "Foo", 25, true); - - - - - - Implements creation of a new mock within the factory. - - Type to mock. - The behavior for the new mock. - Optional arguments for the construction of the mock. - - - - Verifies all verifiable expectations on all mocks created - by this factory. - - - One or more mocks had expectations that were not satisfied. - - - - Verifies all verifiable expectations on all mocks created - by this factory. - - - One or more mocks had expectations that were not satisfied. - - - - Invokes for each mock - in , and accumulates the resulting - that might be - thrown from the action. - - The action to execute against - each mock. - - - - Whether the base member virtual implementation will be called - for mocked classes if no expectation is met. Defaults to . - - - - - Specifies the behavior to use when returning default values for - unexpected invocations on loose mocks. - - - - - Gets the mocks that have been created by this factory and - that will get verified together. - - - - - 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 Mock type has already been initialized by accessing its Object property. Adding interfaces must be done before that.. - - - - - Looks up a localized string similar to Can only add interfaces to the mock.. - - - - - Looks up a localized string similar to Can't set return value for void method {0}.. - - - - - Looks up a localized string similar to Constructor arguments cannot be passed for interface mocks.. - - - - - Looks up a localized string similar to A matching constructor for the given arguments was not found on the mocked type.. - - - - - Looks up a localized string similar to Invalid expectation on a non-overridable member: - {0}. - - - - - Looks up a localized string similar to A lambda expression is expected as the argument to It.Is<T>.. - - - - - Looks up a localized string similar to Invocation {0} should not have been made.. - - - - - Looks up a localized string similar to Expression is not a method invocation: {0}. - - - - - Looks up a localized string similar to Expression is not a property access: {0}. - - - - - Looks up a localized string similar to Expression {0} involves a field access, which is not supported. Use properties instead.. - - - - - Looks up a localized string similar to Type to mock must be an interface or an abstract or non-sealed class. . - - - - - Looks up a localized string similar to Cannot retrieve a mock with the given object type {0} as it's not the main type of the mock or any of its additional interfaces. - Please cast the argument to one of the supported types: {1}. - Remember that there's no generics covariance in the CLR, so your object must be one of these types in order for the call to succeed.. - - - - - Looks up a localized string similar to Member {0}.{1} does not exist.. - - - - - Looks up a localized string similar to Method {0}.{1} is public. Use strong-typed Expect overload instead: - mock.Expect(x => x.{1}()); - . - - - - - Looks up a localized string similar to {0} invocation failed with mock behavior {1}. - {2}. - - - - - Looks up a localized string similar to Expected only {0} calls to {1}.. - - - - - Looks up a localized string similar to Expected only one call to {0}.. - - - - - Looks up a localized string similar to All invocations on the mock must have a corresponding expectation.. - - - - - Looks up a localized string similar to The given invocation was not performed on the mock.. - - - - - Looks up a localized string similar to Object instance was not created by Moq.. - - - - - Looks up a localized string similar to Property {0}.{1} does not exist.. - - - - - Looks up a localized string similar to Property {0}.{1} is write-only.. - - - - - Looks up a localized string similar to Property {0}.{1} is read-only.. - - - - - Looks up a localized string similar to Cannot raise a mocked event unless it has been associated (attached) to a concrete event in a mocked object.. - - - - - Looks up a localized string similar to Invocation needs to return a value and therefore must have a corresponding expectation that provides it.. - - - - - Looks up a localized string similar to To set expectations for public property {0}.{1}, use the typed overloads, such as: - mock.Expect(x => x.{1}).Returns(value); - mock.ExpectGet(x => x.{1}).Returns(value); //equivalent to previous one - mock.ExpectSet(x => x.{1}).Callback(callbackDelegate); - . - - - - - Looks up a localized string similar to Expression {0} is not supported.. - - - - - Looks up a localized string similar to Only property accesses are supported in intermediate invocations on an expectation. Unsupported expression {0}.. - - - - - Looks up a localized string similar to Expression contains intermediate property access {0}.{1} which is of type {2} and cannot be mocked. Unsupported expression {3}.. - - - - - Looks up a localized string similar to Member {0} is not supported for protected mocking.. - - - - - Looks up a localized string similar to To set expectations for protected property {0}.{1}, use: - mock.Expect<{2}>(x => x.{1}).Returns(value); - mock.ExpectGet(x => x.{1}).Returns(value); //equivalent to previous one - mock.ExpectSet(x => x.{1}).Callback(callbackDelegate);. - - - - - Looks up a localized string similar to The following expectations were not met: - {0}. - - - - - Allows expectations to be set for protected members by using their - name as a string, rather than strong-typing them which is not possible - due to their visibility. - - - - - Sets an expectation on the void method with the given - , optionally specifying - arguments for the method call. - - Name of the void method to be invoke. - Optional arguments for the invocation. - - - - Sets an expectation on a property or a non void method with the given - , optionally specifying - arguments for the method call. - - Name of the method or property to be invoke. - Optional arguments for the invocation. - Return type of the method or property. - - - - Sets an expectation on a property getter with the given - . - - Name of the property. - Type of the property. - - - - Sets an expectation on a property setter with the given - . - - Name of the property. - Type of the property. - - - - Allows the specification of a matching condition for an - argument in a protected member expectation, rather than a specific - argument value. "ItExpr" refers to the argument being matched. - - - Use this variant of argument matching instead of - for protected expectations. - This class allows the expectation to match a method invocation - with an arbitrary value, with a value in a specified range, or - even one that matches a given predicate. - - - - - Matches any value of the given type. - - - Typically used when the actual argument value for a method - call is not relevant. - - - - // Throws an exception for a call to Remove with any string value. - mock.Protected() - .Expect("Remove", ItExpr.IsAny<string>()) - .Throws(new InvalidOperationException()); - - - Type of the value. - - - - Matches any value that satisfies the given predicate. - - Type of the argument to check. - The predicate used to match the method argument. - - Allows the specification of a predicate to perform matching - of method call arguments. - - - This example shows how to return the value 1 whenever the argument to the - Do method is an even number. - - mock.Protected() - .Expect("Do", ItExpr.Is<int>(i => i % 2 == 0)) - .Returns(1); - - This example shows how to throw an exception if the argument to the - method is a negative number: - - mock.Protected() - .Expect("GetUser", ItExpr.Is<int>(i => i < 0)) - .Throws(new ArgumentException()); - - - - - - Matches any value that is in the range specified. - - Type of the argument to check. - The lower bound of the range. - The upper bound of the range. - The kind of range. See . - - The following example shows how to expect a method call - with an integer argument within the 0..100 range. - - mock.Protected() - .Expect("HasInventory", - ItExpr.IsAny<string>(), - ItExpr.IsInRange(0, 100, Range.Inclusive)) - .Returns(false); - - - - - - Matches a string argument if it matches the given regular expression pattern. - - The pattern to use to match the string argument value. - - The following example shows how to expect a call to a method where the - string argument matches the given regular expression: - - mock.Protected() - .Expect("Check", ItExpr.IsRegex("[a-z]+")) - .Returns(1); - - - - - - Matches a string argument if it matches the given regular expression pattern. - - The pattern to use to match the string argument value. - The options used to interpret the pattern. - - The following example shows how to expect a call to a method where the - string argument matches the given regular expression, in a case insensitive way: - - mock.Protected() - .Expect("Check", ItExpr.IsRegex("[a-z]+", RegexOptions.IgnoreCase)) - .Returns(1); - - - - - - Enables the Protected() method on , - allowing expectations to be set for protected members by using their - name as a string, rather than strong-typing them which is not possible - due to their visibility. - - - - - Enable protected expectations for the mock. - - Mocked object type. Typically omitted as it can be inferred from the mock instance. - The mock to set the protected expectations on. - - - - - - - - - - - - Kind of range to use in a filter specified through - . - - - - - The range includes the to and - from values. - - - - - The range does not include the to and - from values. - - - - - Determines the way default values are generated - calculated for loose mocks. - - - - - Default behavior, which generates empty values for - value types (i.e. default(int)), empty array and - enumerables, and nulls for all other reference types. - - - - - Whenever the default value generated by - is null, replaces this value with a mock (if the type - can be mocked). - - - For sealed classes, a null value will be generated. - - - - - Core implementation of the interface. - - - Type to mock. - - - - Initializes an instance of the mock with default behavior and with - the given constructor arguments for the class. (Only valid when is a class) - - - The mock will try to find the best match constructor given the constructor arguments, and invoke that - to initialize the instance. This applies only for classes, not interfaces. - - - var mock = new Mock<MyProvider>(someArgument, 25); - - Optional constructor arguments if the mocked type is a class. - - - - Initializes an instance of the mock with default behavior. - - - var mock = new Mock<IFormatProvider>(); - - - - - Initializes an instance of the mock with the specified behavior. - - - var mock = new Mock<IFormatProvider>(MockBehavior.Relaxed); - - Behavior of the mock. - - - - Initializes an instance of the mock with a specific behavior with - the given constructor arguments for the class. - - - The mock will try to find the best match constructor given the constructor arguments, and invoke that - to initialize the instance. This applies only to classes, not interfaces. - - - var mock = new Mock<MyProvider>(someArgument, 25); - - Behavior of the mock. - Optional constructor arguments if the mocked type is a class. - - - - Returns the mocked object value. - - - - - Implements . - - Lambda expression that specifies the expected method invocation. - - - - Implements . - - Type of the return value. Typically omitted as it can be inferred from the expression. - Lambda expression that specifies the expected method invocation. - - - - Implements . - - Type of the property. Typically omitted as it can be inferred from the expression. - Lambda expression that specifies the expected property getter. - - - - Implements . - - Type of the property. Typically omitted as it can be inferred from the expression. - Lambda expression that specifies the expected property setter. - - - - Implements . - - Type of the property. Typically omitted as it can be inferred from the expression. - Lambda expression that specifies the expected property setter. - The value expected to be set for the property. - - - - Implements . - - Expression to verify. - - - - Implements . - - Expression to verify. - Type of return value from the expression. - - - - Implements . - - Expression to verify. - Type of the property to verify. Typically omitted as it can - be inferred from the expression's return type. - - - - Implements . - - Expression to verify. - Type of the property to verify. Typically omitted as it can - be inferred from the expression's return type. - - - - Implements . - - Expression to verify. - The value that should have been set on the property. - Type of the property to verify. Typically omitted as it can - be inferred from the expression's return type. - - - - Implements . - - - - - Implements . - - - - - Implements . - - Type of interface to cast the mock to. - - - - Exposes the mocked object instance. - - - - - A that returns an empty default value - for non-mockeable types, and mocks for all other types (interfaces and - non-sealed classes) that can be mocked. - - - - - Provides a typed for a - specific type of . - - The type of event arguments required by the event. - - The mocked event can either be a or custom - event handler which follows .NET practice of providing object sender, EventArgs args - kind of signature. - - - - - Raises the associated event with the given - event argument data. - - Data to pass to the event. - - - - Provides support for attaching a to - a generic event. - - Event to convert. - - - - Provided solely to allow the interceptor to determine when the attached - handler is coming from this mocked event so we can assign the - corresponding EventInfo for it. - - - - - Adds Stub extension method to a mock so that you can - stub properties. - - - - - Specifies that the given property should have stub behavior, - meaning that setting its value will cause it to be saved and - later returned when the property is requested. - - Mocked type, inferred from the object - where this method is being applied (does not need to be specified). - Type of the property, inferred from the property - expression (does not need to be specified). - The instance to stub. - Property expression to stub. - - If you have an interface with an int property Value, you might - stub it using the following straightforward call: - - var mock = new Mock<IHaveValue>(); - mock.Stub(v => v.Value); - - After the Stub call has been issued, setting and - retrieving the object value will behave as expected: - - IHaveValue v = mock.Object; - - v.Value = 5; - Assert.Equal(5, v.Value); - - - - - - Specifies that the given property should have stub behavior, - meaning that setting its value will cause it to be saved and - later returned when the property is requested. This overload - allows setting the initial value for the property. - - Mocked type, inferred from the object - where this method is being applied (does not need to be specified). - Type of the property, inferred from the property - expression (does not need to be specified). - The instance to stub. - Property expression to stub. - Initial value for the property. - - If you have an interface with an int property Value, you might - stub it using the following straightforward call: - - var mock = new Mock<IHaveValue>(); - mock.Stub(v => v.Value, 5); - - After the Stub call has been issued, setting and - retrieving the object value will behave as expected: - - IHaveValue v = mock.Object; - // Initial value was stored - Assert.Equal(5, v.Value); - - // New value set which changes the initial value - v.Value = 6; - Assert.Equal(6, v.Value); - - - - - - Stubs all properties on the mock, setting the default value to - the one generated as specified by the - property. - - Mocked type, typically omitted as it can be inferred from the mock argument. - The mock to stub. - - If the mock is set to , - the mocked default values will also be stubbed recursively. - - - - diff --git a/lib/ServiceStack.Common.Tests.dll b/lib/ServiceStack.Common.Tests.dll deleted file mode 100644 index 5d74477e..00000000 Binary files a/lib/ServiceStack.Common.Tests.dll and /dev/null differ diff --git a/lib/nunit.framework.dll b/lib/nunit.framework.dll deleted file mode 100644 index 2729ddf2..00000000 Binary files a/lib/nunit.framework.dll and /dev/null differ diff --git a/lib/nunit.framework.xml b/lib/nunit.framework.xml deleted file mode 100644 index 911ebf8b..00000000 --- a/lib/nunit.framework.xml +++ /dev/null @@ -1,5622 +0,0 @@ - - - - nunit.framework - - - - - EmptyStringConstraint tests whether a string is empty. - - - - - EmptyConstraint tests a whether a string or collection is empty, - postponing the decision about which test is applied until the - type of the actual argument is known. - - - - - The Constraint class is the base of all built-in or - user-defined constraints in NUnit. It provides the operator - overloads used to combine constraints. - - - - - Static UnsetObject used to detect derived constraints - failing to set the actual value. - - - - - If true, all string comparisons will ignore case - - - - - If true, strings in error messages will be clipped - - - - - If true, arrays will be treated as collections, allowing - those of different dimensions to be compared - - - - - If non-zero, equality comparisons within the specified - tolerance will succeed. - - - - - IComparer object used in comparisons for some constraints. - - - - - The actual value being tested against a constraint - - - - - Flag the constraint to use a tolerance when determining equality. - Currently only used for doubles and floats. - - Tolerance to be used - Self. - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - Self. - - - - Write the failure message to the MessageWriter provided - as an argument. The default implementation simply passes - the constraint and the actual value to the writer, which - then displays the constraint description and the value. - - Constraints that need to provide additional details, - such as where the error occured can override this. - - The MessageWriter on which to display the message - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Write the actual value for a failing constraint test to a - MessageWriter. The default implementation simply writes - the raw value of actual, leaving it to the writer to - perform any formatting. - - The writer on which the actual value is displayed - - - - This operator creates a constraint that is satisfied only if both - argument constraints are satisfied. - - - - - This operator creates a constraint that is satisfied if either - of the argument constraints is satisfied. - - - - - This operator creates a constraint that is satisfied if the - argument constraint is not satisfied. - - - - - Flag the constraint to ignore case and return self. - - - - - Flag the constraint to suppress string clipping - and return self. - - - - - Flag the constraint to compare arrays as collections - and return self. - - - - - Class used to detect any derived constraints - that fail to set the actual value in their - Matches override. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - SubstringConstraint can test whether a string contains - the expected substring. - - - - - Initializes a new instance of the class. - - The expected. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - StartsWithConstraint can test whether a string starts - with an expected substring. - - - - - Initializes a new instance of the class. - - The expected string - - - - Test whether the constraint is matched by the actual value. - This is a template method, which calls the IsMatch method - of the derived class. - - - - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - EndsWithConstraint can test whether a string ends - with an expected substring. - - - - - Initializes a new instance of the class. - - The expected string - - - - Test whether the constraint is matched by the actual value. - This is a template method, which calls the IsMatch method - of the derived class. - - - - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - RegexConstraint can test whether a string matches - the pattern provided. - - - - - Initializes a new instance of the class. - - The pattern. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - ConstraintBuilder is used to resolve the Not and All properties, - which serve as prefix operators for constraints. With the addition - of an operand stack, And and Or could be supported, but we have - left them out in favor of a simpler, more type-safe implementation. - Use the & and | operator overloads to combine constraints. - - - - - Implicitly convert ConstraintBuilder to an actual Constraint - at the point where the syntax demands it. - - - - - - - Resolves the chain of constraints using an - EqualConstraint as base. - - - - - Resolves the chain of constraints using a - SameAsConstraint as base. - - - - - Resolves the chain of constraints using a - LessThanConstraint as base. - - - - - Resolves the chain of constraints using a - GreaterThanConstraint as base. - - - - - Resolves the chain of constraints using a - LessThanOrEqualConstraint as base. - - - - - Resolves the chain of constraints using a - LessThanOrEqualConstraint as base. - - - - - Resolves the chain of constraints using a - GreaterThanOrEqualConstraint as base. - - - - - Resolves the chain of constraints using a - GreaterThanOrEqualConstraint as base. - - - - - Resolves the chain of constraints using an - ExactTypeConstraint as base. - - - - - Resolves the chain of constraints using an - InstanceOfTypeConstraint as base. - - - - - Resolves the chain of constraints using an - AssignableFromConstraint as base. - - - - - Resolves the chain of constraints using a - ContainsConstraint as base. This constraint - will, in turn, make use of the appropriate - second-level constraint, depending on the - type of the actual argument. - - - - - Resolves the chain of constraints using a - CollectionContainsConstraint as base. - - The expected object - - - - Resolves the chain of constraints using a - StartsWithConstraint as base. - - - - - Resolves the chain of constraints using a - StringEndingConstraint as base. - - - - - Resolves the chain of constraints using a - StringMatchingConstraint as base. - - - - - Resolves the chain of constraints using a - CollectionEquivalentConstraint as base. - - - - - Resolves the chain of constraints using a - CollectionContainingConstraint as base. - - - - - Resolves the chain of constraints using a - CollectionSubsetConstraint as base. - - - - - Resolves the chain of constraints using a - PropertyConstraint as base - - - - - Resolves the chain of constraints using a - PropertyCOnstraint on Length as base - - - - - - - Resolves the chain of constraints using a - PropertyCOnstraint on Length as base - - - - - - - Modifies the ConstraintBuilder by pushing a Prop operator on the - ops stack and the name of the property on the opnds stack. - - - - - - - Resolve a constraint that has been recognized by applying - any pending operators and returning the resulting Constraint. - - A constraint that incorporates all pending operators - - - - Resolves the chain of constraints using - EqualConstraint(null) as base. - - - - - Resolves the chain of constraints using - EqualConstraint(true) as base. - - - - - Resolves the chain of constraints using - EqualConstraint(false) as base. - - - - - Resolves the chain of constraints using - Is.NaN as base. - - - - - Resolves the chain of constraints using - Is.Empty as base. - - - - - Resolves the chain of constraints using - Is.Unique as base. - - - - - Modifies the ConstraintBuilder by pushing a Not operator on the stack. - - - - - Modifies the ConstraintBuilder by pushing a Not operator on the stack. - - - - - Modifies the ConstraintBuilder by pushing an All operator on the stack. - - - - - Modifies the ConstraintBuilder by pushing a Some operator on the stack. - - - - - Modifies the constraint builder by pushing All and Not operators on the stack - - - - - CollectionConstraint is the abstract base class for - constraints that operate on collections. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Protected method to be implemented by derived classes - - - - - - - CollectionTally counts (tallies) the number of - occurences of each object in one or more enuerations. - - - - - Construct a CollectionTally object from a collection - - - - - - Remove the counts for a collection from the tally, - so long as their are sufficient items to remove. - The tallies are not permitted to become negative. - - The collection to remove - True if there were enough items to remove, otherwise false - - - - Test whether all the counts are equal to a given value - - The value to be looked for - True if all counts are equal to the value, otherwise false - - - - Get the count of the number of times an object is present in the tally - - - - - EmptyCollectionConstraint tests whether a colletion is empty. - - - - - Check that the collection is empty - - - - - - - Write the constraint description to a MessageWriter - - - - - - UniqueItemsConstraint tests whether all the items in a - collection are unique. - - - - - Check that all items are unique. - - - - - - - Write a description of this constraint to a MessageWriter - - - - - - CollectionContainsConstraint is used to test whether a collection - contains an expected object as a member. - - - - - Construct a CollectionContainsConstraint - - - - - - Test whether the expected item is contained in the collection - - - - - - - Write a descripton of the constraint to a MessageWriter - - - - - - CollectionEquivalentCOnstraint is used to determine whether two - collections are equivalent. - - - - - Construct a CollectionEquivalentConstraint - - - - - - Test whether two collections are equivalent - - - - - - - Write a description of this constraint to a MessageWriter - - - - - - CollectionSubsetConstraint is used to determine whether - one collection is a subset of another - - - - - Construct a CollectionSubsetConstraint - - The collection that the actual value is expected to be a subset of - - - - Test whether the actual collection is a subset of - the expected collection provided. - - - - - - - Write a description of this constraint to a MessageWriter - - - - - - EqualConstraint is able to compare an actual value with the - expected value provided in its constructor. - - - - - Initializes a new instance of the class. - - The expected value. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write a failure message. Overridden to provide custom - failure messages for EqualConstraint. - - The MessageWriter to write to - - - - Write description of this constraint - - The MessageWriter to write to - - - - Helper method to compare two arrays - - - - - Method to compare two DirectoryInfo objects - - first directory to compare - second directory to compare - true if equivalent, false if not - - - - Display the failure information for two collections that did not match. - - The MessageWriter on which to display - The expected collection. - The actual collection - The depth of this failure in a set of nested collections - - - - Displays a single line showing the types and sizes of the expected - and actual collections or arrays. If both are identical, the value is - only shown once. - - The MessageWriter on which to display - The expected collection or array - The actual collection or array - The indentation level for the message line - - - - Displays a single line showing the point in the expected and actual - arrays at which the comparison failed. If the arrays have different - structures or dimensions, both values are shown. - - The MessageWriter on which to display - The expected array - The actual array - Index of the failure point in the underlying collections - The indentation level for the message line - - - - Abstract base class used for prefixes - - - - - The base constraint - - - - - Construct given a base constraint - - - - - - Set all modifiers applied to the prefix into - the base constraint before matching - - - - - NotConstraint negates the effect of some other constraint - - - - - Initializes a new instance of the class. - - The base constraint to be negated. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for if the base constraint fails, false if it succeeds - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Write the actual value for a failing constraint test to a MessageWriter. - - The writer on which the actual value is displayed - - - - AllItemsConstraint applies another constraint to each - item in a collection, succeeding if they all succeed. - - - - - Construct an AllItemsConstraint on top of an existing constraint - - - - - - Apply the item constraint to each item in the collection, - failing if any item fails. - - - - - - - Write a description of this constraint to a MessageWriter - - - - - - SomeItemsConstraint applies another constraint to each - item in a collection, succeeding if any of them succeeds. - - - - - Construct a SomeItemsConstraint on top of an existing constraint - - - - - - Apply the item constraint to each item in the collection, - failing if any item fails. - - - - - - - Write a description of this constraint to a MessageWriter - - - - - - SomeItemsConstraint applies another constraint to each - item in a collection, succeeding if any of them succeeds. - - - - - Construct a SomeItemsConstraint on top of an existing constraint - - - - - - Apply the item constraint to each item in the collection, - failing if any item fails. - - - - - - - Write a description of this constraint to a MessageWriter - - - - - - SameAsConstraint tests whether an object is identical to - the object passed to its constructor - - - - - Initializes a new instance of the class. - - The expected object. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - TypeConstraint is the abstract base for constraints - that take a Type as their expected value. - - - - - The expected Type used by the constraint - - - - - Construct a TypeConstraint for a given Type - - - - - - Write the actual value for a failing constraint test to a - MessageWriter. TypeCOnstraints override this method to write - the name of the type. - - The writer on which the actual value is displayed - - - - ExactTypeConstraint is used to test that an object - is of the exact type provided in the constructor - - - - - Construct an ExactTypeConstraint for a given Type - - - - - - Test that an object is of the exact type specified - - - - - - - Write the description of this constraint to a MessageWriter - - - - - - InstanceOfTypeConstraint is used to test that an object - is of the same type provided or derived from it. - - - - - Construct an InstanceOfTypeConstraint for the type provided - - - - - - Test whether an object is of the specified type or a derived type - - - - - - - Write a description of this constraint to a MessageWriter - - - - - - AssignableFromConstraint is used to test that an object - can be assigned from a given Type. - - - - - Construct an AssignableFromConstraint for the type provided - - - - - - Test whether an object can be assigned from the specified type - - - - - - - Write a description of this constraint to a MessageWriter - - - - - - Abstract base class for constraints that compare values to - determine if one is greater than, equal to or less than - the other. - - - - - The value against which a comparison is to be made - - - - - If true, less than returns success - - - - - if true, equal returns success - - - - - if true, greater than returns success - - - - - The predicate used as a part of the description - - - - - Initializes a new instance of the class. - - The value against which to make a comparison. - if set to true less succeeds. - if set to true equal succeeds. - if set to true greater succeeds. - String used in describing the constraint. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Tests whether a value is greater than the value supplied to its constructor - - - - - Initializes a new instance of the class. - - The expected value. - - - - Tests whether a value is greater than or equal to the value supplied to its constructor - - - - - Initializes a new instance of the class. - - The expected value. - - - - Tests whether a value is less than the value supplied to its constructor - - - - - Initializes a new instance of the class. - - The expected value. - - - - Tests whether a value is less than or equal to the value supplied to its constructor - - - - - Initializes a new instance of the class. - - The expected value. - - - - The Numerics class contains common operations on numeric values. - - - - - Checks the type of the object, returning true if - the object is a numeric type. - - The object to check - true if the object is a numeric type - - - - Checks the type of the object, returning true if - the object is a floating point numeric type. - - The object to check - true if the object is a floating point numeric type - - - - Checks the type of the object, returning true if - the object is a fixed point numeric type. - - The object to check - true if the object is a fixed point numeric type - - - - Test two numeric values for equality, performing the usual numeric - conversions and using a provided or default tolerance. If the value - referred to by tolerance is null, this method may set it to a default. - - The expected value - The actual value - A reference to the numeric tolerance in effect - True if the values are equal - - - - Compare two numeric values, performing the usual numeric conversions. - - The expected value - The actual value - - - - - ContainsConstraint tests a whether a string contains a substring - or a collection contains an object. It postpones the decision of - which test to use until the type of the actual argument is known. - This allows testing whether a string is contained in a collection - or as a substring of another string using the same syntax. - - - - - Initializes a new instance of the class. - - The expected. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Summary description for PropertyConstraint. - - - - - Initializes a new instance of the class. - - The name. - The constraint to apply to the property. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Write the actual value for a failing constraint test to a - MessageWriter. The default implementation simply writes - the raw value of actual, leaving it to the writer to - perform any formatting. - - The writer on which the actual value is displayed - - - - BinaryOperation is the abstract base of all constraints - that combine two other constraints in some fashion. - - - - - The first constraint being combined - - - - - The second constraint being combined - - - - - Construct a BinaryOperation from two other constraints - - The first constraint - The second constraint - - - - AndConstraint succeeds only if both members succeed. - - - - - Create an AndConstraint from two other constraints - - The first constraint - The second constraint - - - - Apply both member constraints to an actual value, succeeding - succeeding only if both of them succeed. - - The actual value - True if the constraints both succeeded - - - - Write a description for this contraint to a MessageWriter - - The MessageWriter to receive the description - - - - OrConstraint succeeds if either member succeeds - - - - - Create an OrConstraint from two other constraints - - The first constraint - The second constraint - - - - Apply the member constraints to an actual value, succeeding - succeeding as soon as one of them succeeds. - - The actual value - True if either constraint succeeded - - - - Write a description for this contraint to a MessageWriter - - The MessageWriter to receive the description - - - - The Is class is a helper class with properties and methods - that supply a number of constraints used in Asserts. - - - - - Is.Null returns a static constraint that tests for null - - - - - Is.True returns a static constraint that tests whether a value is true - - - - - Is.False returns a static constraint that tests whether a value is false - - - - - Is.NaN returns a static constraint that tests whether a value is an NaN - - - - - Is.Empty returns a static constraint that tests whether a string or collection is empty - - - - - Is.Unique returns a static constraint that tests whether a collection contains all unque items. - - - - - Is.EqualTo returns a constraint that tests whether the - actual value equals the supplied argument - - - - - - - Is.SameAs returns a constraint that tests whether the - actual value is the same object as the supplied argument. - - - - - - - Is.GreaterThan returns a constraint that tests whether the - actual value is greater than the suppled argument - - - - - Is.GreaterThanOrEqualTo returns a constraint that tests whether the - actual value is greater than or equal to the suppled argument - - - - - Is.AtLeast is a synonym for Is.GreaterThanOrEqualTo - - - - - Is.LessThan returns a constraint that tests whether the - actual value is less than the suppled argument - - - - - Is.LessThanOrEqualTo returns a constraint that tests whether the - actual value is less than or equal to the suppled argument - - - - - Is.AtMost is a synonym for Is.LessThanOrEqualTo - - - - - Is.TypeOf returns a constraint that tests whether the actual - value is of the exact type supplied as an argument. - - - - - Is.InstanceOfType returns a constraint that tests whether - the actual value is of the type supplied as an argument - or a derived type. - - - - - Is.AssignableFrom returns a constraint that tests whether - the actual value is assignable from the type supplied as - an argument. - - - - - - - Is.EquivalentTo returns a constraint that tests whether - the actual value is a collection containing the same - elements as the collection supplied as an arument - - - - - Is.SubsetOf returns a constraint that tests whether - the actual value is a subset of the collection - supplied as an arument - - - - - Is.Not returns a ConstraintBuilder that negates - the constraint that follows it. - - - - - Is.All returns a ConstraintBuilder, which will apply - the following constraint to all members of a collection, - succeeding if all of them succeed. This property is - a synonym for Has.AllItems. - - - - - The Iz class is a synonym for Is intended for use in VB, - which regards Is as a keyword. - - - - - The Text class is a helper class with properties and methods - that supply a number of constraints used with strings. - - - - - Contains returns a constraint that succeeds if the actual - value contains the substring supplied as an argument. - - - - - DoesNotContain returns a constraint that fails if the actual - value contains the substring supplied as an argument. - - - - - StartsWith returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - DoesNotStartWith returns a constraint that fails if the actual - value starts with the substring supplied as an argument. - - - - - EndsWith returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - DoesNotEndWith returns a constraint that fails if the actual - value ends with the substring supplied as an argument. - - - - - Matches returns a constraint that succeeds if the actual - value matches the pattern supplied as an argument. - - - - - - - DoesNotMatch returns a constraint that failss if the actual - value matches the pattern supplied as an argument. - - - - - - - Text.All returns a ConstraintBuilder, which will apply - the following constraint to all members of a collection, - succeeding if all of them succeed. - - - - - The List class is a helper class with properties and methods - that supply a number of constraints used with lists and collections. - - - - - List.Map returns a ListMapper, which can be used to map - the original collection to another collection. - - - - - - - ListMapper is used to transform a collection used as an actual argument - producing another collection to be used in the assertion. - - - - - Construct a ListMapper based on a collection - - The collection to be transformed - - - - Produces a collection containing all the values of a property - - The collection of property values - - - - - Summary description for HasNoPrefixB. - - - - - Returns a new ConstraintBuilder, which will apply the - following constraint to a named property of the object - being tested. - - The name of the property - - - - Returns a new PropertyConstraint checking for the - existence of a particular property value. - - The name of the property to look for - The expected value of the property - - - - Returns a new PropertyConstraint for the Length property - - - - - - - Returns a new PropertyConstraint or the Count property - - - - - - - Returns a new CollectionContainsConstraint checking for the - presence of a particular object in the collection. - - The expected object - - - - Has.No returns a ConstraintBuilder that negates - the constraint that follows it. - - - - - Has.AllItems returns a ConstraintBuilder, which will apply - the following constraint to all members of a collection, - succeeding if all of them succeed. - - - - - Has.Some returns a ConstraintBuilder, which will apply - the following constraint to all members of a collection, - succeeding if any of them succeed. It is a synonym - for Has.Item. - - - - - Has.None returns a ConstraintBuilder, which will apply - the following constraint to all members of a collection, - succeeding only if none of them succeed. - - - - - Nested class that allows us to restrict the number - of key words that may appear after Has.No. - - - - - Return a ConstraintBuilder conditioned to apply - the following constraint to a property. - - The property name - A ConstraintBuilder - - - - Return a Constraint that succeeds if the expected object is - not contained in a collection. - - The expected object - A Constraint - - - - The Assert class contains a collection of static methods that - implement the most common assertions used in NUnit. - - - - - We don't actually want any instances of this object, but some people - like to inherit from it to add other static methods. Hence, the - protected constructor disallows any instances of this object. - - - - - The Equals method throws an AssertionException. This is done - to make sure there is no mistake by calling this function. - - - - - - - override the default ReferenceEquals to throw an AssertionException. This - implementation makes sure there is no mistake in calling this function - as part of Assert. - - - - - - - Asserts that a condition is true. If the condition is false the method throws - an . - - The evaluated condition - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false the method throws - an . - - The evaluated condition - The message to display if the condition is false - - - - Asserts that a condition is true. If the condition is false the method throws - an . - - The evaluated condition - - - - Asserts that a condition is false. If the condition is true the method throws - an . - - The evaluated condition - The message to display if the condition is true - Arguments to be used in formatting the message - - - - Asserts that a condition is false. If the condition is true the method throws - an . - - The evaluated condition - The message to display if the condition is true - - - - Asserts that a condition is false. If the condition is true the method throws - an . - - The evaluated condition - - - - Verifies that the object that is passed in is not equal to null - If the object is null then an - is thrown. - - The object that is to be tested - The message to be displayed when the object is null - Arguments to be used in formatting the message - - - - Verifies that the object that is passed in is not equal to null - If the object is null then an - is thrown. - - The object that is to be tested - The message to be displayed when the object is null - - - - Verifies that the object that is passed in is not equal to null - If the object is null then an - is thrown. - - The object that is to be tested - - - - Verifies that the object that is passed in is equal to null - If the object is not null then an - is thrown. - - The object that is to be tested - The message to be displayed when the object is not null - Arguments to be used in formatting the message - - - - Verifies that the object that is passed in is equal to null - If the object is not null then an - is thrown. - - The object that is to be tested - The message to be displayed when the object is not null - - - - Verifies that the object that is passed in is equal to null - If the object is not null null then an - is thrown. - - The object that is to be tested - - - - Verifies that the double is passed is an NaN value. - If the object is not NaN then an - is thrown. - - The value that is to be tested - The message to be displayed when the object is not null - Arguments to be used in formatting the message - - - - Verifies that the double is passed is an NaN value. - If the object is not NaN then an - is thrown. - - The object that is to be tested - The message to be displayed when the object is not null - - - - Verifies that the double is passed is an NaN value. - If the object is not NaN then an - is thrown. - - The object that is to be tested - - - - Assert that a string is empty - that is equal to string.Empty - - The string to be tested - The message to be displayed on failure - Arguments to be used in formatting the message - - - - Assert that a string is empty - that is equal to string.Emtpy - - The string to be tested - The message to be displayed on failure - - - - Assert that a string is empty - that is equal to string.Emtpy - - The string to be tested - - - - Assert that an array, list or other collection is empty - - An array, list or other collection implementing ICollection - The message to be displayed on failure - Arguments to be used in formatting the message - - - - Assert that an array, list or other collection is empty - - An array, list or other collection implementing ICollection - The message to be displayed on failure - - - - Assert that an array,list or other collection is empty - - An array, list or other collection implementing ICollection - - - - Assert that a string is not empty - that is not equal to string.Empty - - The string to be tested - The message to be displayed on failure - Arguments to be used in formatting the message - - - - Assert that a string is empty - that is equal to string.Emtpy - - The string to be tested - The message to be displayed on failure - - - - Assert that a string is empty - that is equal to string.Emtpy - - The string to be tested - - - - Assert that an array, list or other collection is empty - - An array, list or other collection implementing ICollection - The message to be displayed on failure - Arguments to be used in formatting the message - - - - Assert that an array, list or other collection is empty - - An array, list or other collection implementing ICollection - The message to be displayed on failure - - - - Assert that an array,list or other collection is empty - - An array, list or other collection implementing ICollection - - - - Asserts that an object may be assigned a value of a given Type. - - The expected Type. - The object under examination - - - - Asserts that an object may be assigned a value of a given Type. - - The expected Type. - The object under examination - The messge to display in case of failure - - - - Asserts that an object may be assigned a value of a given Type. - - The expected Type. - The object under examination - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object may not be assigned a value of a given Type. - - The expected Type. - The object under examination - - - - Asserts that an object may not be assigned a value of a given Type. - - The expected Type. - The object under examination - The messge to display in case of failure - - - - Asserts that an object may not be assigned a value of a given Type. - - The expected Type. - The object under examination - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object is an instance of a given type. - - The expected Type - The object being examined - - - - Asserts that an object is an instance of a given type. - - The expected Type - The object being examined - A message to display in case of failure - - - - Asserts that an object is an instance of a given type. - - The expected Type - The object being examined - A message to display in case of failure - An array of objects to be used in formatting the message - - - - Asserts that an object is not an instance of a given type. - - The expected Type - The object being examined - - - - Asserts that an object is not an instance of a given type. - - The expected Type - The object being examined - A message to display in case of failure - - - - Asserts that an object is not an instance of a given type. - - The expected Type - The object being examined - A message to display in case of failure - An array of objects to be used in formatting the message - - - - Verifies that two ints are equal. If they are not, then an - is thrown. - - The expected value - The actual value - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that two ints are equal. If they are not, then an - is thrown. - - The expected value - The actual value - The message that will be displayed on failure - - - - Verifies that two ints are equal. If they are not, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two longs are equal. If they are not, then an - is thrown. - - The expected value - The actual value - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that two longs are equal. If they are not, then an - is thrown. - - The expected value - The actual value - The message that will be displayed on failure - - - - Verifies that two longs are equal. If they are not, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two uints are equal. If they are not, then an - is thrown. - - The expected value - The actual value - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that two uints are equal. If they are not, then an - is thrown. - - The expected value - The actual value - The message that will be displayed on failure - - - - Verifies that two uints are equal. If they are not, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two ulongs are equal. If they are not, then an - is thrown. - - The expected value - The actual value - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that two ulongs are equal. If they are not, then an - is thrown. - - The expected value - The actual value - The message that will be displayed on failure - - - - Verifies that two ulongs are equal. If they are not, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two decimals are equal. If they are not, then an - is thrown. - - The expected value - The actual value - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that two decimal are equal. If they are not, then an - is thrown. - - The expected value - The actual value - The message that will be displayed on failure - - - - Verifies that two decimals are equal. If they are not, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two doubles are equal considering a delta. If the - expected value is infinity then the delta value is ignored. If - they are not equals then an is - thrown. - - The expected value - The actual value - The maximum acceptable difference between the - the expected and the actual - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that two doubles are equal considering a delta. If the - expected value is infinity then the delta value is ignored. If - they are not equals then an is - thrown. - - The expected value - The actual value - The maximum acceptable difference between the - the expected and the actual - The message that will be displayed on failure - - - - Verifies that two doubles are equal considering a delta. If the - expected value is infinity then the delta value is ignored. If - they are not equals then an is - thrown. - - The expected value - The actual value - The maximum acceptable difference between the - the expected and the actual - - - - Verifies that two floats are equal considering a delta. If the - expected value is infinity then the delta value is ignored. If - they are not equals then an is - thrown. - - The expected value - The actual value - The maximum acceptable difference between the - the expected and the actual - The message displayed upon failure - Arguments to be used in formatting the message - - - - Verifies that two floats are equal considering a delta. If the - expected value is infinity then the delta value is ignored. If - they are not equals then an is - thrown. - - The expected value - The actual value - The maximum acceptable difference between the - the expected and the actual - The message displayed upon failure - - - - Verifies that two floats are equal considering a delta. If the - expected value is infinity then the delta value is ignored. If - they are not equals then an is - thrown. - - The expected value - The actual value - The maximum acceptable difference between the - the expected and the actual - - - - Verifies that two objects are equal. Two objects are considered - equal if both are null, or if both have the same value. All - non-numeric types are compared by using the Equals method. - Arrays are compared by comparing each element using the same rules. - If they are not equal an is thrown. - - The value that is expected - The actual value - The message to display if objects are not equal - Arguments to be used in formatting the message - - - - Verifies that two objects are equal. Two objects are considered - equal if both are null, or if both have the same value. All - non-numeric types are compared by using the Equals method. - If they are not equal an is thrown. - - The value that is expected - The actual value - The message to display if objects are not equal - - - - Verifies that two objects are equal. Two objects are considered - equal if both are null, or if both have the same value. All - non-numeric types are compared by using the Equals method. - If they are not equal an is thrown. - - The value that is expected - The actual value - - - - Asserts that two objects are not equal. If they are equal - an is thrown. - - The expected object - The actual object - The message to be displayed when the two objects are the same object. - Arguments to be used in formatting the message - - - - Asserts that two objects are not equal. If they are equal - an is thrown. - - The expected object - The actual object - The message to be displayed when the objects are the same - - - - Asserts that two objects are not equal. If they are equal - an is thrown. - - The expected object - The actual object - - - - Asserts that two ints are not equal. If they are equal - an is thrown. - - The expected object - The actual object - The message to be displayed when the two objects are the same object. - Arguments to be used in formatting the message - - - - Asserts that two ints are not equal. If they are equal - an is thrown. - - The expected object - The actual object - The message to be displayed when the objects are the same - - - - Asserts that two ints are not equal. If they are equal - an is thrown. - - The expected object - The actual object - - - - Asserts that two longss are not equal. If they are equal - an is thrown. - - The expected object - The actual object - The message to be displayed when the two objects are the same object. - Arguments to be used in formatting the message - - - - Asserts that two longs are not equal. If they are equal - an is thrown. - - The expected object - The actual object - The message to be displayed when the objects are the same - - - - Asserts that two longs are not equal. If they are equal - an is thrown. - - The expected object - The actual object - - - - Asserts that two uints are not equal. If they are equal - an is thrown. - - The expected object - The actual object - The message to be displayed when the two objects are the same object. - Arguments to be used in formatting the message - - - - Asserts that two uints are not equal. If they are equal - an is thrown. - - The expected object - The actual object - The message to be displayed when the objects are the same - - - - Asserts that two uints are not equal. If they are equal - an is thrown. - - The expected object - The actual object - - - - Asserts that two ulongs are not equal. If they are equal - an is thrown. - - The expected object - The actual object - The message to be displayed when the two objects are the same object. - Arguments to be used in formatting the message - - - - Asserts that two ulongs are not equal. If they are equal - an is thrown. - - The expected object - The actual object - The message to be displayed when the objects are the same - - - - Asserts that two ulong are not equal. If they are equal - an is thrown. - - The expected object - The actual object - - - - Asserts that two decimals are not equal. If they are equal - an is thrown. - - The expected object - The actual object - The message to be displayed when the two objects are the same object. - Arguments to be used in formatting the message - - - - Asserts that two decimals are not equal. If they are equal - an is thrown. - - The expected object - The actual object - The message to be displayed when the objects are the same - - - - Asserts that two decimals are not equal. If they are equal - an is thrown. - - The expected object - The actual object - - - - Asserts that two floats are not equal. If they are equal - an is thrown. - - The expected object - The actual object - The message to be displayed when the two objects are the same object. - Arguments to be used in formatting the message - - - - Asserts that two floats are not equal. If they are equal - an is thrown. - - The expected object - The actual object - The message to be displayed when the objects are the same - - - - Asserts that two floats are not equal. If they are equal - an is thrown. - - The expected object - The actual object - - - - Asserts that two doubles are not equal. If they are equal - an is thrown. - - The expected object - The actual object - The message to be displayed when the two objects are the same object. - Arguments to be used in formatting the message - - - - Asserts that two doubles are not equal. If they are equal - an is thrown. - - The expected object - The actual object - The message to be displayed when the objects are the same - - - - Asserts that two doubles are not equal. If they are equal - an is thrown. - - The expected object - The actual object - - - - Asserts that two objects refer to the same object. If they - are not the same an is thrown. - - The expected object - The actual object - The message to be displayed when the two objects are not the same object. - Arguments to be used in formatting the message - - - - Asserts that two objects refer to the same object. If they - are not the same an is thrown. - - The expected object - The actual object - The message to be displayed when the object is null - - - - Asserts that two objects refer to the same object. If they - are not the same an is thrown. - - The expected object - The actual object - - - - Asserts that two objects do not refer to the same object. If they - are the same an is thrown. - - The expected object - The actual object - The message to be displayed when the two objects are the same object. - Arguments to be used in formatting the message - - - - Asserts that two objects do not refer to the same object. If they - are the same an is thrown. - - The expected object - The actual object - The message to be displayed when the objects are the same - - - - Asserts that two objects do not refer to the same object. If they - are the same an is thrown. - - The expected object - The actual object - - - - Verifies that the first value is greater than the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message that will be displayed on failure - - - - Verifies that the first value is greater than the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message that will be displayed on failure - - - - Verifies that the first value is greater than the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message that will be displayed on failure - - - - Verifies that the first value is greater than the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message that will be displayed on failure - - - - Verifies that the first value is greater than the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message that will be displayed on failure - - - - Verifies that the first value is greater than the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message that will be displayed on failure - - - - Verifies that the first value is greater than the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message that will be displayed on failure - - - - Verifies that the first value is greater than the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message that will be displayed on failure - - - - Verifies that the first value is greater than the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message that will be displayed on failure - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message that will be displayed on failure - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message that will be displayed on failure - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message that will be displayed on failure - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message that will be displayed on failure - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message that will be displayed on failure - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message that will be displayed on failure - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message that will be displayed on failure - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Asserts that an object is contained in a list. - - The expected object - The list to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that an object is contained in a list. - - The expected object - The list to be examined - The message to display in case of failure - - - - Asserts that an object is contained in a list. - - The expected object - The list to be examined - - - - Throws an with the message and arguments - that are passed in. This is used by the other Assert functions. - - The message to initialize the with. - Arguments to be used in formatting the message - - - - Throws an with the message that is - passed in. This is used by the other Assert functions. - - The message to initialize the with. - - - - Throws an . - This is used by the other Assert functions. - - - - - Throws an with the message and arguments - that are passed in. This causes the test to be reported as ignored. - - The message to initialize the with. - Arguments to be used in formatting the message - - - - Throws an with the message that is - passed in. This causes the test to be reported as ignored. - - The message to initialize the with. - - - - Throws an . - This causes the test to be reported as ignored. - - - - - NOTE: The use of asserters for extending NUnit has - now been replaced by the use of constraints. This - method is marked obsolete. - - Test the condition asserted by an asserter and throw - an assertion exception using provided message on failure. - - An object that implements IAsserter - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - A Constraint to be applied - The actual value to test - - - - Apply a constraint to an actual value, succeedingt if the constraint - is satisfied and throwing an assertion exception on failure. - - A Constraint to be applied - The actual value to test - The message that will be displayed on failure - - - - Apply a constraint to an actual value, succeedingt if the constraint - is satisfied and throwing an assertion exception on failure. - - A Constraint to be applied - The actual value to test - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false the method throws - an . - - The evaluated condition - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false the method throws - an . - - The evaluated condition - The message to display if the condition is false - - - - Asserts that a condition is true. If the condition is false the method throws - an . - - The evaluated condition - - - - Verifies that the first value is greater than or equal to the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message that will be displayed on failure - - - - Verifies that the first value is greater than or equal to the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message that will be displayed on failure - - - - Verifies that the first value is greater or equal to than the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message that will be displayed on failure - - - - Verifies that the first value is greater or equal to than the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message that will be displayed on failure - - - - Verifies that the first value is greater or equal to than the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message that will be displayed on failure - - - - Verifies that the first value is greater than or equal to the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message that will be displayed on failure - - - - Verifies that the first value is greater than or equal to the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message that will be displayed on failure - - - - Verifies that the first value is greater than or equal to the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message that will be displayed on failure - - - - Verifies that the first value is greater than the second - value. If they are not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message that will be displayed on failure - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message that will be displayed on failure - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message that will be displayed on failure - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message that will be displayed on failure - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message that will be displayed on failure - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message that will be displayed on failure - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message that will be displayed on failure - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message that will be displayed on failure - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Gets the number of assertions executed so far and - resets the counter to zero. - - - - - Enumeration indicating how the expected message parameter is to be used - - - - Expect an exact match - - - Expect a message containing the parameter string - - - Match the regular expression provided as a parameter - - - - ExpectedExceptionAttribute - - - - - - Constructor for a non-specific exception - - - - - Constructor for a given type of exception - - The type of the expected exception - - - - Constructor for a given exception name - - The full name of the expected exception - - - - Constructor for a given type of exception and expected message text - - The type of the expected exception - The expected message text - - - - Constructor for a given exception name and expected message text - - The full name of the expected exception - The expected messge text - - - - Gets or sets the expected exception type - - - - - Gets or sets the full Type name of the expected exception - - - - - Gets or sets the expected message text - - - - - Gets or sets the user message displayed in case of failure - - - - - Gets or sets the type of match to be performed on the expected message - - - - - Gets the name of a method to be used as an exception handler - - - - - A set of Assert methods operationg on one or more collections - - - - - The Equals method throws an AssertionException. This is done - to make sure there is no mistake by calling this function. - - - - - - - override the default ReferenceEquals to throw an AssertionException. This - implementation makes sure there is no mistake in calling this function - as part of Assert. - - - - - - - Asserts that all items contained in collection are of the type specified by expectedType. - - IEnumerable containing objects to be considered - System.Type that all objects in collection must be instances of - - - - Asserts that all items contained in collection are of the type specified by expectedType. - - IEnumerable containing objects to be considered - System.Type that all objects in collection must be instances of - The message that will be displayed on failure - - - - Asserts that all items contained in collection are of the type specified by expectedType. - - IEnumerable containing objects to be considered - System.Type that all objects in collection must be instances of - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that all items contained in collection are not equal to null. - - IEnumerable containing objects to be considered - - - - Asserts that all items contained in collection are not equal to null. - - IEnumerable containing objects to be considered - The message that will be displayed on failure - - - - Asserts that all items contained in collection are not equal to null. - - IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Ensures that every object contained in collection exists within the collection - once and only once. - - IEnumerable of objects to be considered - - - - Ensures that every object contained in collection exists within the collection - once and only once. - - IEnumerable of objects to be considered - The message that will be displayed on failure - - - - Ensures that every object contained in collection exists within the collection - once and only once. - - IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are exactly equal. The collections must have the same count, - and contain the exact same objects in the same order. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - - - - Asserts that expected and actual are exactly equal. The collections must have the same count, - and contain the exact same objects in the same order. - If comparer is not null then it will be used to compare the objects. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The IComparer to use in comparing objects from each IEnumerable - - - - Asserts that expected and actual are exactly equal. The collections must have the same count, - and contain the exact same objects in the same order. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The message that will be displayed on failure - - - - Asserts that expected and actual are exactly equal. The collections must have the same count, - and contain the exact same objects in the same order. - If comparer is not null then it will be used to compare the objects. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The IComparer to use in comparing objects from each IEnumerable - The message that will be displayed on failure - - - - Asserts that expected and actual are exactly equal. The collections must have the same count, - and contain the exact same objects in the same order. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are exactly equal. The collections must have the same count, - and contain the exact same objects in the same order. - If comparer is not null then it will be used to compare the objects. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The IComparer to use in comparing objects from each IEnumerable - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - - - - Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The message that will be displayed on failure - - - - Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are not exactly equal. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - - - - Asserts that expected and actual are not exactly equal. - If comparer is not null then it will be used to compare the objects. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The IComparer to use in comparing objects from each IEnumerable - - - - Asserts that expected and actual are not exactly equal. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The message that will be displayed on failure - - - - Asserts that expected and actual are not exactly equal. - If comparer is not null then it will be used to compare the objects. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The IComparer to use in comparing objects from each IEnumerable - The message that will be displayed on failure - - - - Asserts that expected and actual are not exactly equal. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are not exactly equal. - If comparer is not null then it will be used to compare the objects. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The IComparer to use in comparing objects from each IEnumerable - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are not equivalent. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - - - - Asserts that expected and actual are not equivalent. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The message that will be displayed on failure - - - - Asserts that expected and actual are not equivalent. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that collection contains actual as an item. - - IEnumerable of objects to be considered - Object to be found within collection - - - - Asserts that collection contains actual as an item. - - IEnumerable of objects to be considered - Object to be found within collection - The message that will be displayed on failure - - - - Asserts that collection contains actual as an item. - - IEnumerable of objects to be considered - Object to be found within collection - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that collection does not contain actual as an item. - - IEnumerable of objects to be considered - Object that cannot exist within collection - - - - Asserts that collection does not contain actual as an item. - - IEnumerable of objects to be considered - Object that cannot exist within collection - The message that will be displayed on failure - - - - Asserts that collection does not contain actual as an item. - - IEnumerable of objects to be considered - Object that cannot exist within collection - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that superset is not a subject of subset. - - The IEnumerable superset to be considered - The IEnumerable subset to be considered - - - - Asserts that superset is not a subject of subset. - - The IEnumerable superset to be considered - The IEnumerable subset to be considered - The message that will be displayed on failure - - - - Asserts that superset is not a subject of subset. - - The IEnumerable superset to be considered - The IEnumerable subset to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that superset is a subset of subset. - - The IEnumerable superset to be considered - The IEnumerable subset to be considered - - - - Asserts that superset is a subset of subset. - - The IEnumerable superset to be considered - The IEnumerable subset to be considered - The message that will be displayed on failure - - - - Asserts that superset is a subset of subset. - - The IEnumerable superset to be considered - The IEnumerable subset to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Assert that an array, list or other collection is empty - - An array, list or other collection implementing IEnumerable - The message to be displayed on failure - Arguments to be used in formatting the message - - - - Assert that an array, list or other collection is empty - - An array, list or other collection implementing IEnumerable - The message to be displayed on failure - - - - Assert that an array,list or other collection is empty - - An array, list or other collection implementing IEnumerable - - - - Assert that an array, list or other collection is empty - - An array, list or other collection implementing IEnumerable - The message to be displayed on failure - Arguments to be used in formatting the message - - - - Assert that an array, list or other collection is empty - - An array, list or other collection implementing IEnumerable - The message to be displayed on failure - - - - Assert that an array,list or other collection is empty - - An array, list or other collection implementing IEnumerable - - - - NOTE: The use of asserters for extending NUnit has - now been replaced by the use of constraints. This - class is marked obsolete. - - AbstractAsserter is the base class for all asserters. - Asserters encapsulate a condition test and generation - of an AssertionException with a tailored message. They - are used by the Assert class as helper objects. - - User-defined asserters may be passed to the - Assert.DoAssert method in order to implement - extended asserts. - - - - - NOTE: The use of asserters for extending NUnit has - now been replaced by the use of constraints. This - interface is marked obsolete. - - The interface implemented by an asserter. Asserters - encapsulate a condition test and generation of an - AssertionException with a tailored message. They - are used by the Assert class as helper objects. - - User-defined asserters may be passed to the - Assert.DoAssert method in order to implement - extended asserts. - - - - - Test the condition for the assertion. - - True if the test succeeds - - - - Return the message giving the failure reason. - The return value is unspecified if no failure - has occured. - - - - - The user-defined message for this asserter. - - - - - Arguments to use in formatting the user-defined message. - - - - - Our failure message object, initialized as needed - - - - - Constructs an AbstractAsserter - - The message issued upon failure - Arguments to be used in formatting the message - - - - Test method to be implemented by derived types. - Default always succeeds. - - True if the test succeeds - - - - AssertionFailureMessage object used internally - - - - - Message related to a failure. If no failure has - occured, the result is unspecified. - - - - - The Assertion class is obsolete and has been - replaced by the Assert class. - - - - - Asserts that a condition is true. If it isn't it throws - an . - - The message to display is the condition - is false - The evaluated condition - - - - Asserts that a condition is true. If it isn't it throws - an . - - The evaluated condition - - - - /// Asserts that two doubles are equal concerning a delta. If the - expected value is infinity then the delta value is ignored. - - The expected value - The actual value - The maximum acceptable difference between the - the expected and the actual - - - - /// Asserts that two singles are equal concerning a delta. If the - expected value is infinity then the delta value is ignored. - - The expected value - The actual value - The maximum acceptable difference between the - the expected and the actual - - - Asserts that two objects are equal. If they are not - an is thrown. - - - Asserts that two ints are equal. If they are not - an is thrown. - - - Asserts that two ints are equal. If they are not - an is thrown. - - - Asserts that two doubles are equal concerning a delta. - If the expected value is infinity then the delta value is ignored. - - - - Asserts that two floats are equal concerning a delta. - If the expected value is infinity then the delta value is ignored. - - - - - Asserts that two objects are equal. Two objects are considered - equal if both are null, or if both have the same value. Numeric - types are compared via string comparision on their contents to - avoid problems comparing values between different types. All - non-numeric types are compared by using the Equals method. - If they are not equal an is thrown. - - - - Asserts that an object isn't null. - - - Asserts that an object isn't null. - - - Asserts that an object is null. - - - Asserts that an object is null. - - - Asserts that two objects refer to the same object. If they - are not the same an is thrown. - - - - Asserts that two objects refer to the same object. - If they are not an is thrown. - - - - Fails a test with no message. - - - Fails a test with the given message. - - - - Thrown when an assertion failed. - - - - - The error message that explains - the reason for the exception - - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - AssertionFailureMessage encapsulates a failure message - issued as a result of an Assert failure. - - - - - Number of characters before a highlighted position before - clipping will occur. Clipped text is replaced with an - elipsis "..." - - - - - Number of characters after a highlighted position before - clipping will occur. Clipped text is replaced with an - elipsis "..." - - - - - Prefix used to start an expected value line. - Must be same length as actualPrefix. - - - - - Prefix used to start an actual value line. - Must be same length as expectedPrefix. - - - - - Construct an AssertionFailureMessage with a message - and optional arguments. - - - - - - - Construct an empty AssertionFailureMessage - - - - - Add an expected value line to the message containing - the text provided as an argument. - - Text describing what was expected. - - - - Add an actual value line to the message containing - the text provided as an argument. - - Text describing the actual value. - - - - Add an expected value line to the message containing - a string representation of the object provided. - - An object representing the expected value - - - - Add an expected value line to the message containing a double - and the tolerance used in making the comparison. - - The expected value - The tolerance specified in the Assert - - - - Add an actual value line to the message containing - a string representation of the object provided. - - An object representing what was actually found - - - - Display two lines that communicate the expected value, and the actual value - - The expected value - The actual value found - - - - Display two lines that communicate the expected value, the actual value and - the tolerance used in comparing two doubles. - - The expected value - The actual value found - The tolerance specified in the Assert - - - - Draws a marker under the expected/actual strings that highlights - where in the string a mismatch occurred. - - The position of the mismatch - - - - Reports whether the string lengths are the same or different, and - what the string lengths are. - - The expected string - The actual string value - - - - Called to create additional message lines when two objects have been - found to be unequal. If the inputs are strings, a special message is - rendered that can help track down where the strings are different, - based on differences in length, or differences in content. - - If the inputs are not strings, the ToString method of the objects - is used to show what is different about them. - - The expected value - The actual value - True if a case-insensitive comparison is being performed - - - - Called to create additional message lines when two doubles have been - found to be unequal, within the specified tolerance. - - - - - Constructs a message that can be displayed when the content of two - strings are different, but the string lengths are the same. The - message will clip the strings to a reasonable length, centered - around the first position where they are mismatched, and draw - a line marking the position of the difference to make comparison - quicker. - - The expected string value - The actual string value - True if a case-insensitive comparison is being performed - - - - Display a standard message showing the differences found between - two arrays that were expected to be equal. - - The expected array value - The actual array value - The index at which a difference was found - - - - Display a standard message showing the differences found between - two collections that were expected to be equal. - - The expected collection value - The actual collection value - The index at which a difference was found - - - - Get an array of indices representing the point in a collection or - array corresponding to a single int index into the collection. - - The collection to which the indices apply - Index in the collection - Array of indices - - - - Displays elements from a list on a line - - Text to prefix the line with - The list of items to display - The index in the list of the first element to display - The maximum number of elements to display - - - - Formats an object for display in a message line - - The object to be displayed - - - - - Tests two objects to determine if they are strings. - - - - - - - - Renders up to M characters before, and up to N characters after - the specified index position. If leading or trailing text is - clipped, and elipses "..." is added where the missing text would - be. - - Clips strings to limit previous or post newline characters, - since these mess up the comparison - - - - - - - - Shows the position two strings start to differ. Comparison - starts at the start index. - - - - - -1 if no mismatch found, or the index where mismatch found - - - - Turns CR, LF, or TAB into visual indicator to preserve visual marker - position. This is done by replacing the '\r' into '\\' and 'r' - characters, and the '\n' into '\\' and 'n' characters, and '\t' into - '\\' and 't' characters. - - Thus the single character becomes two characters for display. - - - - - - - Attribute used to apply a category to a test - - - - - The name of the category - - - - - Construct attribute for a given category - - The name of the category - - - - Protected constructor uses the Type name as the name - of the category. - - - - - The name of the category - - - - - Abstract base for Attributes that are used to include tests - in the test run based on environmental settings. - - - - - Constructor with no included items specified, for use - with named property syntax. - - - - - Constructor taking one or more included items - - Comma-delimited list of included items - - - - Name of the item that is needed in order for - a test to run. Multiple itemss may be given, - separated by a comma. - - - - - Name of the item to be excluded. Multiple items - may be given, separated by a comma. - - - - - The reason for including or excluding the test - - - - - PlatformAttribute is used to mark a test fixture or an - individual method as applying to a particular platform only. - - - - - Constructor with no platforms specified, for use - with named property syntax. - - - - - Constructor taking one or more platforms - - Comma-deliminted list of platforms - - - - CultureAttribute is used to mark a test fixture or an - individual method as applying to a particular Culture only. - - - - - Constructor with no cultures specified, for use - with named property syntax. - - - - - Constructor taking one or more cultures - - Comma-deliminted list of cultures - - - - MessageWriter is the abstract base for classes that write - constraint descriptions and messages in some form. The - class has separate methods for writing various components - of a message, allowing implementations to tailor the - presentation as needed. - - - - - Construct a MessageWriter given a culture - - - - - Method to write single line message with optional args, usually - written to precede the general failure message. - - The message to be written - Any arguments used in formatting the message - - - - Method to write single line message with optional args, usually - written to precede the general failure message, at a givel - indentation level. - - The indentation level of the message - The message to be written - Any arguments used in formatting the message - - - - Display Expected and Actual lines for a constraint. This - is called by MessageWriter's default implementation of - WriteMessageTo and provides the generic two-line display. - - The constraint that failed - - - - Display Expected and Actual lines for given values. This - method may be called by constraints that need more control over - the display of actual and expected values than is provided - by the default implementation. - - The expected value - The actual value causing the failure - - - - Display Expected and Actual lines for given values, including - a tolerance value on the Expected line. - - The expected value - The actual value causing the failure - The tolerance within which the test was made - - - - Display the expected and actual string values on separate lines. - If the mismatch parameter is >=0, an additional line is displayed - line containing a caret that points to the mismatch point. - - The expected string value - The actual string value - The point at which the strings don't match or -1 - If true, case is ignored in locating the point where the strings differ - If true, the strings should be clipped to fit the line - - - - Writes the text for a connector. - - The connector. - - - - Writes the text for a predicate. - - The predicate. - - - - Writes the text for an expected value. - - The expected value. - - - - Writes the text for a modifier - - The modifier. - - - - Writes the text for an actual value. - - The actual value. - - - - Writes the text for a generalized value. - - The value. - - - - Writes the text for a collection value, - starting at a particular point, to a max length - - The collection containing elements to write. - The starting point of the elements to write - The maximum number of elements to write - - - - Abstract method to get the max line length - - - - - Static methods used in creating messages - - - - - Static string used when strings are clipped - - - - - Returns the representation of a type as used in NUnitLite. - This is the same as Type.ToString() except for arrays, - which are displayed with their declared sizes. - - - - - - - Converts any control characters in a string - to their escaped representation. - - The string to be converted - The converted string - - - - Return the a string representation for a set of indices into an array - - Array of indices for which a string is needed - - - - Get an array of indices representing the point in a collection or - array corresponding to a single int index into the collection. - - The collection to which the indices apply - Index in the collection - Array of indices - - - - Clip a string to a given length, starting at a particular offset, returning the clipped - string with ellipses representing the removed parts - - The string to be clipped - The maximum permitted length of the result string - The point at which to start clipping - The clipped string - - - - Clip the expected and actual strings in a coordinated fashion, - so that they may be displayed together. - - - - - - - - - Shows the position two strings start to differ. Comparison - starts at the start index. - - The expected string - The actual string - The index in the strings at which comparison should start - Boolean indicating whether case should be ignored - -1 if no mismatch found, or the index where mismatch found - - - - Summary description for SetCultureAttribute. - - - - - PropertyAttribute is used to attach information to a test as a name/value pair.. - - - - - The property name - - - - - The property value - - - - - Construct a PropertyAttribute with a name and value - - The name of the property - The property value - - - - Constructor for use by inherited classes that use the - name of the type as the property name. - - - - - Gets the property name - - - - - Gets the property value - - - - - Construct given the name of a culture - - - - - - TextMessageWriter writes constraint descriptions and messages - in displayable form as a text stream. It tailors the display - of individual message components to form the standard message - format of NUnit assertion failure messages. - - - - - Prefix used for the expected value line of a message - - - - - Prefix used for the actual value line of a message - - - - - Length of a message prefix - - - - - Construct a TextMessageWriter - - - - - Construct a TextMessageWriter, specifying a user message - and optional formatting arguments. - - - - - - - Method to write single line message with optional args, usually - written to precede the general failure message, at a givel - indentation level. - - The indentation level of the message - The message to be written - Any arguments used in formatting the message - - - - Display Expected and Actual lines for a constraint. This - is called by MessageWriter's default implementation of - WriteMessageTo and provides the generic two-line display. - - The constraint that failed - - - - Display Expected and Actual lines for given values. This - method may be called by constraints that need more control over - the display of actual and expected values than is provided - by the default implementation. - - The expected value - The actual value causing the failure - - - - Display Expected and Actual lines for given values, including - a tolerance value on the expected line. - - The expected value - The actual value causing the failure - The tolerance within which the test was made - - - - Display the expected and actual string values on separate lines. - If the mismatch parameter is >=0, an additional line is displayed - line containing a caret that points to the mismatch point. - - The expected string value - The actual string value - The point at which the strings don't match or -1 - If true, case is ignored in string comparisons - If true, clip the strings to fit the max line length - - - - Writes the text for a connector. - - The connector. - - - - Writes the text for a predicate. - - The predicate. - - - - Write the text for a modifier. - - The modifier. - - - - Writes the text for an expected value. - - The expected value. - - - - Writes the text for an actual value. - - The actual value. - - - - Writes the text for a generalized value. - - The value. - - - - Writes the text for a collection value, - starting at a particular point, to a max length - - The collection containing elements to write. - The starting point of the elements to write - The maximum number of elements to write - - - - Write the generic 'Expected' line for a constraint - - The constraint that failed - - - - Write the generic 'Expected' line for a given value - - The expected value - - - - Write the generic 'Expected' line for a given value - and tolerance. - - The expected value - The tolerance within which the test was made - - - - Write the generic 'Actual' line for a constraint - - The constraint for which the actual value is to be written - - - - Write the generic 'Actual' line for a given value - - The actual value causing a failure - - - - Gets or sets the maximum line length for this writer - - - - - Basic Asserts on strings. - - - - - The Equals method throws an AssertionException. This is done - to make sure there is no mistake by calling this function. - - - - - - - override the default ReferenceEquals to throw an AssertionException. This - implementation makes sure there is no mistake in calling this function - as part of Assert. - - - - - - - Asserts that a string is found within another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string is found within another string. - - The expected string - The string to be examined - The message to display in case of failure - - - - Asserts that a string is found within another string. - - The expected string - The string to be examined - - - - Asserts that a string starts with another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string starts with another string. - - The expected string - The string to be examined - The message to display in case of failure - - - - Asserts that a string starts with another string. - - The expected string - The string to be examined - - - - Asserts that a string ends with another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string ends with another string. - - The expected string - The string to be examined - The message to display in case of failure - - - - Asserts that a string ends with another string. - - The expected string - The string to be examined - - - - Asserts that two strings are equal, without regard to case. - - The expected string - The actual string - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that two strings are equal, without regard to case. - - The expected string - The actual string - The message to display in case of failure - - - - Asserts that two strings are equal, without regard to case. - - The expected string - The actual string - - - - Asserts that a string matches an expected regular expression pattern. - - The expected expression - The actual string - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string matches an expected regular expression pattern. - - The expected expression - The actual string - The message to display in case of failure - - - - Asserts that a string matches an expected regular expression pattern. - - The expected expression - The actual string - - - - AssertionHelper is an optional base class for user tests, - allowing the use of shorter names for constraints and - asserts and avoiding conflict with the definition of - , from which it inherits much of its - behavior, in certain mock object frameworks. - - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. Works - identically to - - A Constraint to be applied - The actual value to test - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. Works - identically to - - A Constraint to be applied - The actual value to test - The message that will be displayed on failure - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. Works - identically to - - A Constraint to be applied - The actual value to test - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false the method throws - an . Works Identically to - . - - The evaluated condition - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false the method throws - an . Works Identically to - . - - The evaluated condition - The message to display if the condition is false - - - - Asserts that a condition is true. If the condition is false the method throws - an . Works Identically to . - - The evaluated condition - - - - Returns a ListMapper based on a collection. - - The original collection - - - - - Summary description for FileAssert. - - - - - The Equals method throws an AssertionException. This is done - to make sure there is no mistake by calling this function. - - - - - - - override the default ReferenceEquals to throw an AssertionException. This - implementation makes sure there is no mistake in calling this function - as part of Assert. - - - - - - - We don't actually want any instances of this object, but some people - like to inherit from it to add other static methods. Hence, the - protected constructor disallows any instances of this object. - - - - - Verifies that two Streams are equal. Two Streams are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - The expected Stream - The actual Stream - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Verifies that two Streams are equal. Two Streams are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - The expected Stream - The actual Stream - The message to display if objects are not equal - - - - Verifies that two Streams are equal. Two Streams are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - The expected Stream - The actual Stream - - - - Verifies that two files are equal. Two files are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - A file containing the value that is expected - A file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Verifies that two files are equal. Two files are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - A file containing the value that is expected - A file containing the actual value - The message to display if objects are not equal - - - - Verifies that two files are equal. Two files are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - A file containing the value that is expected - A file containing the actual value - - - - Verifies that two files are equal. Two files are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - The path to a file containing the value that is expected - The path to a file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Verifies that two files are equal. Two files are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - The path to a file containing the value that is expected - The path to a file containing the actual value - The message to display if objects are not equal - - - - Verifies that two files are equal. Two files are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - The path to a file containing the value that is expected - The path to a file containing the actual value - - - - Asserts that two Streams are not equal. If they are equal - an is thrown. - - The expected Stream - The actual Stream - The message to be displayed when the two Stream are the same. - Arguments to be used in formatting the message - - - - Asserts that two Streams are not equal. If they are equal - an is thrown. - - The expected Stream - The actual Stream - The message to be displayed when the Streams are the same. - - - - Asserts that two Streams are not equal. If they are equal - an is thrown. - - The expected Stream - The actual Stream - - - - Asserts that two files are not equal. If they are equal - an is thrown. - - A file containing the value that is expected - A file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Asserts that two files are not equal. If they are equal - an is thrown. - - A file containing the value that is expected - A file containing the actual value - The message to display if objects are not equal - - - - Asserts that two files are not equal. If they are equal - an is thrown. - - A file containing the value that is expected - A file containing the actual value - - - - Asserts that two files are not equal. If they are equal - an is thrown. - - The path to a file containing the value that is expected - The path to a file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Asserts that two files are not equal. If they are equal - an is thrown. - - The path to a file containing the value that is expected - The path to a file containing the actual value - The message to display if objects are not equal - - - - Asserts that two files are not equal. If they are equal - an is thrown. - - The path to a file containing the value that is expected - The path to a file containing the actual value - - - - Thrown when an assertion failed. - - - - - - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - GlobalSettings is a place for setting default values used - by the framework in performing asserts. - - - - - Default tolerance for floating point equality - - - - - Obsolete class, formerly used to identify tests through - inheritance. Avoid using this class for new tests. - - - - - Method called immediately before running the test. - - - - - Method Called immediately after running the test. It is - guaranteed to be called, even if an exception is thrown. - - - - - Attribute used to mark a class that contains one-time SetUp - and/or TearDown methods that apply to all the tests in a - namespace or an assembly. - - - - - SetUpFixtureAttribute is used to identify a SetUpFixture - - - - - Attribute used to mark a static (shared in VB) property - that returns a list of tests. - - - - - Attribute used to identify a method that is called - immediately after each test is run. The method is - guaranteed to be called, even if an exception is thrown. - - - - - Adding this attribute to a method within a - class makes the method callable from the NUnit test runner. There is a property - called Description which is optional which you can provide a more detailed test - description. This class cannot be inherited. - - - - [TestFixture] - public class Fixture - { - [Test] - public void MethodToTest() - {} - - [Test(Description = "more detailed description")] - publc void TestDescriptionMethod() - {} - } - - - - - - Descriptive text for this test - - - - - [TestFixture] - public class ExampleClass - {} - - - - - Descriptive text for this fixture - - - - - Attribute used to identify a method that is - called before any tests in a fixture are run. - - - - - Attribute used to identify a method that is called after - all the tests in a fixture have run. The method is - guaranteed to be called, even if an exception is thrown. - - - - - Attribute used to mark a test that is to be ignored. - Ignored tests result in a warning message when the - tests are run. - - - - - Constructs the attribute without giving a reason - for ignoring the test. - - - - - Constructs the attribute giving a reason for ignoring the test - - The reason for ignoring the test - - - - The reason for ignoring a test - - - - - ExplicitAttribute marks a test or test fixture so that it will - only be run if explicitly executed from the gui or command line - or if it is included by use of a filter. The test will not be - run simply because an enclosing suite is run. - - - - - Default constructor - - - - - Constructor with a reason - - The reason test is marked explicit - - - - The reason test is marked explicit - - - - - Attribute used to provide descriptive text about a - test case or fixture. - - - - - Construct the attribute - - Text describing the test - - - - Gets the test description - - - - - Interface implemented by a user fixture in order to - validate any expected exceptions. It is only called - for test methods marked with the ExpectedException - attribute. - - - - - Method to handle an expected exception - - The exception to be handled - - - diff --git a/src/AllExamples.sln b/src/AllExamples.sln index c2cdd3dd..298e29bf 100644 --- a/src/AllExamples.sln +++ b/src/AllExamples.sln @@ -1,6 +1,8 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2012 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ServiceStack.Northwind", "ServiceStack.Northwind", "{206CDF5A-68B2-431A-B28D-B8F43C0697A6}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ServiceStack.Examples", "ServiceStack.Examples", "{A42B0FAF-687B-4E2A-845B-BF3D2B5FF6BC}" @@ -44,22 +46,12 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServiceStack.Examples.Clien EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServiceStack.Examples.ServiceModel", "ServiceStack.Examples\ServiceStack.Examples.ServiceModel\ServiceStack.Examples.ServiceModel.csproj", "{2B840832-3036-47D9-8F9B-560CD5C2BF90}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CustomPath35", "StarterTemplates\CustomPath35\CustomPath35.csproj", "{704AA56B-5343-4796-B6CE-70488AF5B31E}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RootPath35", "StarterTemplates\RootPath35\RootPath35.csproj", "{37F380DE-6EE9-4943-AA8A-53FB9F09FD30}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CustomPath40", "StarterTemplates\CustomPath40\CustomPath40.csproj", "{787130A2-1797-403F-BB3F-EA2AFDB14B12}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RootPath40", "StarterTemplates\RootPath40\RootPath40.csproj", "{07C66849-4022-4141-BB1E-B85B44B4FBAF}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StarterTemplates.Common", "StarterTemplates\StarterTemplates.Common\StarterTemplates.Common.csproj", "{ACBF3D12-379A-41D7-87DB-C376CFCBD131}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleAppHost", "StarterTemplates\ConsoleAppHost\ConsoleAppHost.csproj", "{79950922-9EFF-44E1-993A-4EA20DEC780A}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WinServiceAppHost", "StarterTemplates\WinServiceAppHost\WinServiceAppHost.csproj", "{D49ABE7E-B090-4473-B80B-B2432BBF8CB5}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ApiPath35", "StarterTemplates\ApiPath35\ApiPath35.csproj", "{3C36677F-5A66-482F-A46B-077DA21C0ED4}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServiceStack.Hello", "ServiceStack.Hello\ServiceStack.Hello.csproj", "{A8F9A08B-E704-4C77-939B-B56670A2A98D}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RedisStackOverflow.ServiceInterface", "RedisStackOverflow\RedisStackOverflow.ServiceInterface\RedisStackOverflow.ServiceInterface.csproj", "{41C8C157-B2A4-4DDE-B153-233E46109F39}" @@ -94,6 +86,14 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServiceStack.Examples.Tests EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServiceStack.Examples.Tests.Integration", "..\tests\ServiceStack.Examples.Tests.Integration\ServiceStack.Examples.Tests.Integration.csproj", "{21777EAF-74FD-4D0B-947A-C602D8D3EBBA}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RestFiles.Tests", "RestFiles\RestFiles.Tests\RestFiles.Tests.csproj", "{DAE4FFC2-B446-4020-8578-19B816FAA40A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RootPath45", "StarterTemplates\RootPath45\RootPath45.csproj", "{91D8B4E8-1973-40C6-AF44-DBFEEAAF0C7F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{19FF9025-F307-4507-9CCB-5D08D7D975E1}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CustomPath45", "StarterTemplates\CustomPath45\CustomPath45.csproj", "{E256695F-8607-4A79-ABA5-6FED3A400C71}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -184,46 +184,6 @@ Global {2B840832-3036-47D9-8F9B-560CD5C2BF90}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {2B840832-3036-47D9-8F9B-560CD5C2BF90}.Release|Mixed Platforms.Build.0 = Release|Any CPU {2B840832-3036-47D9-8F9B-560CD5C2BF90}.Release|x86.ActiveCfg = Release|Any CPU - {704AA56B-5343-4796-B6CE-70488AF5B31E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {704AA56B-5343-4796-B6CE-70488AF5B31E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {704AA56B-5343-4796-B6CE-70488AF5B31E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {704AA56B-5343-4796-B6CE-70488AF5B31E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {704AA56B-5343-4796-B6CE-70488AF5B31E}.Debug|x86.ActiveCfg = Debug|Any CPU - {704AA56B-5343-4796-B6CE-70488AF5B31E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {704AA56B-5343-4796-B6CE-70488AF5B31E}.Release|Any CPU.Build.0 = Release|Any CPU - {704AA56B-5343-4796-B6CE-70488AF5B31E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {704AA56B-5343-4796-B6CE-70488AF5B31E}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {704AA56B-5343-4796-B6CE-70488AF5B31E}.Release|x86.ActiveCfg = Release|Any CPU - {37F380DE-6EE9-4943-AA8A-53FB9F09FD30}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {37F380DE-6EE9-4943-AA8A-53FB9F09FD30}.Debug|Any CPU.Build.0 = Debug|Any CPU - {37F380DE-6EE9-4943-AA8A-53FB9F09FD30}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {37F380DE-6EE9-4943-AA8A-53FB9F09FD30}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {37F380DE-6EE9-4943-AA8A-53FB9F09FD30}.Debug|x86.ActiveCfg = Debug|Any CPU - {37F380DE-6EE9-4943-AA8A-53FB9F09FD30}.Release|Any CPU.ActiveCfg = Release|Any CPU - {37F380DE-6EE9-4943-AA8A-53FB9F09FD30}.Release|Any CPU.Build.0 = Release|Any CPU - {37F380DE-6EE9-4943-AA8A-53FB9F09FD30}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {37F380DE-6EE9-4943-AA8A-53FB9F09FD30}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {37F380DE-6EE9-4943-AA8A-53FB9F09FD30}.Release|x86.ActiveCfg = Release|Any CPU - {787130A2-1797-403F-BB3F-EA2AFDB14B12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {787130A2-1797-403F-BB3F-EA2AFDB14B12}.Debug|Any CPU.Build.0 = Debug|Any CPU - {787130A2-1797-403F-BB3F-EA2AFDB14B12}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {787130A2-1797-403F-BB3F-EA2AFDB14B12}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {787130A2-1797-403F-BB3F-EA2AFDB14B12}.Debug|x86.ActiveCfg = Debug|Any CPU - {787130A2-1797-403F-BB3F-EA2AFDB14B12}.Release|Any CPU.ActiveCfg = Release|Any CPU - {787130A2-1797-403F-BB3F-EA2AFDB14B12}.Release|Any CPU.Build.0 = Release|Any CPU - {787130A2-1797-403F-BB3F-EA2AFDB14B12}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {787130A2-1797-403F-BB3F-EA2AFDB14B12}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {787130A2-1797-403F-BB3F-EA2AFDB14B12}.Release|x86.ActiveCfg = Release|Any CPU - {07C66849-4022-4141-BB1E-B85B44B4FBAF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {07C66849-4022-4141-BB1E-B85B44B4FBAF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {07C66849-4022-4141-BB1E-B85B44B4FBAF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {07C66849-4022-4141-BB1E-B85B44B4FBAF}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {07C66849-4022-4141-BB1E-B85B44B4FBAF}.Debug|x86.ActiveCfg = Debug|Any CPU - {07C66849-4022-4141-BB1E-B85B44B4FBAF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {07C66849-4022-4141-BB1E-B85B44B4FBAF}.Release|Any CPU.Build.0 = Release|Any CPU - {07C66849-4022-4141-BB1E-B85B44B4FBAF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {07C66849-4022-4141-BB1E-B85B44B4FBAF}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {07C66849-4022-4141-BB1E-B85B44B4FBAF}.Release|x86.ActiveCfg = Release|Any CPU {ACBF3D12-379A-41D7-87DB-C376CFCBD131}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {ACBF3D12-379A-41D7-87DB-C376CFCBD131}.Debug|Any CPU.Build.0 = Debug|Any CPU {ACBF3D12-379A-41D7-87DB-C376CFCBD131}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU @@ -258,16 +218,6 @@ Global {D49ABE7E-B090-4473-B80B-B2432BBF8CB5}.Release|Mixed Platforms.Build.0 = Release|x86 {D49ABE7E-B090-4473-B80B-B2432BBF8CB5}.Release|x86.ActiveCfg = Release|x86 {D49ABE7E-B090-4473-B80B-B2432BBF8CB5}.Release|x86.Build.0 = Release|x86 - {3C36677F-5A66-482F-A46B-077DA21C0ED4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3C36677F-5A66-482F-A46B-077DA21C0ED4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3C36677F-5A66-482F-A46B-077DA21C0ED4}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {3C36677F-5A66-482F-A46B-077DA21C0ED4}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {3C36677F-5A66-482F-A46B-077DA21C0ED4}.Debug|x86.ActiveCfg = Debug|Any CPU - {3C36677F-5A66-482F-A46B-077DA21C0ED4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3C36677F-5A66-482F-A46B-077DA21C0ED4}.Release|Any CPU.Build.0 = Release|Any CPU - {3C36677F-5A66-482F-A46B-077DA21C0ED4}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {3C36677F-5A66-482F-A46B-077DA21C0ED4}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {3C36677F-5A66-482F-A46B-077DA21C0ED4}.Release|x86.ActiveCfg = Release|Any CPU {A8F9A08B-E704-4C77-939B-B56670A2A98D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A8F9A08B-E704-4C77-939B-B56670A2A98D}.Debug|Any CPU.Build.0 = Debug|Any CPU {A8F9A08B-E704-4C77-939B-B56670A2A98D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU @@ -428,35 +378,63 @@ Global {21777EAF-74FD-4D0B-947A-C602D8D3EBBA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {21777EAF-74FD-4D0B-947A-C602D8D3EBBA}.Release|Mixed Platforms.Build.0 = Release|Any CPU {21777EAF-74FD-4D0B-947A-C602D8D3EBBA}.Release|x86.ActiveCfg = Release|Any CPU + {DAE4FFC2-B446-4020-8578-19B816FAA40A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DAE4FFC2-B446-4020-8578-19B816FAA40A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DAE4FFC2-B446-4020-8578-19B816FAA40A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {DAE4FFC2-B446-4020-8578-19B816FAA40A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {DAE4FFC2-B446-4020-8578-19B816FAA40A}.Debug|x86.ActiveCfg = Debug|Any CPU + {DAE4FFC2-B446-4020-8578-19B816FAA40A}.Debug|x86.Build.0 = Debug|Any CPU + {DAE4FFC2-B446-4020-8578-19B816FAA40A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DAE4FFC2-B446-4020-8578-19B816FAA40A}.Release|Any CPU.Build.0 = Release|Any CPU + {DAE4FFC2-B446-4020-8578-19B816FAA40A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {DAE4FFC2-B446-4020-8578-19B816FAA40A}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {DAE4FFC2-B446-4020-8578-19B816FAA40A}.Release|x86.ActiveCfg = Release|Any CPU + {DAE4FFC2-B446-4020-8578-19B816FAA40A}.Release|x86.Build.0 = Release|Any CPU + {91D8B4E8-1973-40C6-AF44-DBFEEAAF0C7F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {91D8B4E8-1973-40C6-AF44-DBFEEAAF0C7F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {91D8B4E8-1973-40C6-AF44-DBFEEAAF0C7F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {91D8B4E8-1973-40C6-AF44-DBFEEAAF0C7F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {91D8B4E8-1973-40C6-AF44-DBFEEAAF0C7F}.Debug|x86.ActiveCfg = Debug|Any CPU + {91D8B4E8-1973-40C6-AF44-DBFEEAAF0C7F}.Debug|x86.Build.0 = Debug|Any CPU + {91D8B4E8-1973-40C6-AF44-DBFEEAAF0C7F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {91D8B4E8-1973-40C6-AF44-DBFEEAAF0C7F}.Release|Any CPU.Build.0 = Release|Any CPU + {91D8B4E8-1973-40C6-AF44-DBFEEAAF0C7F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {91D8B4E8-1973-40C6-AF44-DBFEEAAF0C7F}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {91D8B4E8-1973-40C6-AF44-DBFEEAAF0C7F}.Release|x86.ActiveCfg = Release|Any CPU + {91D8B4E8-1973-40C6-AF44-DBFEEAAF0C7F}.Release|x86.Build.0 = Release|Any CPU + {E256695F-8607-4A79-ABA5-6FED3A400C71}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E256695F-8607-4A79-ABA5-6FED3A400C71}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E256695F-8607-4A79-ABA5-6FED3A400C71}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {E256695F-8607-4A79-ABA5-6FED3A400C71}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {E256695F-8607-4A79-ABA5-6FED3A400C71}.Debug|x86.ActiveCfg = Debug|Any CPU + {E256695F-8607-4A79-ABA5-6FED3A400C71}.Debug|x86.Build.0 = Debug|Any CPU + {E256695F-8607-4A79-ABA5-6FED3A400C71}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E256695F-8607-4A79-ABA5-6FED3A400C71}.Release|Any CPU.Build.0 = Release|Any CPU + {E256695F-8607-4A79-ABA5-6FED3A400C71}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {E256695F-8607-4A79-ABA5-6FED3A400C71}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {E256695F-8607-4A79-ABA5-6FED3A400C71}.Release|x86.ActiveCfg = Release|Any CPU + {E256695F-8607-4A79-ABA5-6FED3A400C71}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution + {2218422E-76B4-4128-ACFF-4CE824B0E0CE} = {A42B0FAF-687B-4E2A-845B-BF3D2B5FF6BC} + {73398563-F556-4345-80D3-E121F0AA84D2} = {4721A7AC-65B8-48C0-A7CC-BF4B7A2B9D02} {3E968D84-7C23-42E9-A443-6355FAA845E2} = {206CDF5A-68B2-431A-B28D-B8F43C0697A6} {14856482-95D3-4A02-968C-665F3D08F94D} = {206CDF5A-68B2-431A-B28D-B8F43C0697A6} {A724F80D-4341-4ECA-AC43-CF84A3F03779} = {206CDF5A-68B2-431A-B28D-B8F43C0697A6} - {2218422E-76B4-4128-ACFF-4CE824B0E0CE} = {A42B0FAF-687B-4E2A-845B-BF3D2B5FF6BC} - {519A7B72-D144-436D-AAC3-7BAAEAD3FF52} = {A42B0FAF-687B-4E2A-845B-BF3D2B5FF6BC} - {2B840832-3036-47D9-8F9B-560CD5C2BF90} = {A42B0FAF-687B-4E2A-845B-BF3D2B5FF6BC} - {1DE83058-60D9-4637-90EF-C3E46EAA9ACC} = {A42B0FAF-687B-4E2A-845B-BF3D2B5FF6BC} {3A8D2349-6E97-47A2-AC49-EFE7D89C0344} = {2218422E-76B4-4128-ACFF-4CE824B0E0CE} + {519A7B72-D144-436D-AAC3-7BAAEAD3FF52} = {A42B0FAF-687B-4E2A-845B-BF3D2B5FF6BC} {77363223-98F2-4724-8044-569C6485B3A9} = {2218422E-76B4-4128-ACFF-4CE824B0E0CE} {53F87D5C-4540-4AFD-BD19-E081FD8E586B} = {2218422E-76B4-4128-ACFF-4CE824B0E0CE} - {73398563-F556-4345-80D3-E121F0AA84D2} = {4721A7AC-65B8-48C0-A7CC-BF4B7A2B9D02} - {704AA56B-5343-4796-B6CE-70488AF5B31E} = {4721A7AC-65B8-48C0-A7CC-BF4B7A2B9D02} - {37F380DE-6EE9-4943-AA8A-53FB9F09FD30} = {4721A7AC-65B8-48C0-A7CC-BF4B7A2B9D02} - {787130A2-1797-403F-BB3F-EA2AFDB14B12} = {4721A7AC-65B8-48C0-A7CC-BF4B7A2B9D02} - {07C66849-4022-4141-BB1E-B85B44B4FBAF} = {4721A7AC-65B8-48C0-A7CC-BF4B7A2B9D02} + {2B840832-3036-47D9-8F9B-560CD5C2BF90} = {A42B0FAF-687B-4E2A-845B-BF3D2B5FF6BC} {ACBF3D12-379A-41D7-87DB-C376CFCBD131} = {4721A7AC-65B8-48C0-A7CC-BF4B7A2B9D02} {79950922-9EFF-44E1-993A-4EA20DEC780A} = {4721A7AC-65B8-48C0-A7CC-BF4B7A2B9D02} {D49ABE7E-B090-4473-B80B-B2432BBF8CB5} = {4721A7AC-65B8-48C0-A7CC-BF4B7A2B9D02} - {3C36677F-5A66-482F-A46B-077DA21C0ED4} = {4721A7AC-65B8-48C0-A7CC-BF4B7A2B9D02} {A8F9A08B-E704-4C77-939B-B56670A2A98D} = {5AF13B19-7B73-4C74-BB82-A9640BBB58B4} - {EE3EB8BB-A24E-4F71-8277-1C6DAE652E2C} = {D217E359-75BD-4875-817A-40A4819C4E83} {41C8C157-B2A4-4DDE-B153-233E46109F39} = {68A679AC-8B0D-45A4-8624-68C706089DEE} {CCAC74EA-08EE-41A8-BF01-8F1B7D207144} = {68A679AC-8B0D-45A4-8624-68C706089DEE} - {BFAB0E32-43F3-4A0E-9409-FC57FCF4BF14} = {68A679AC-8B0D-45A4-8624-68C706089DEE} {70B9EEDE-BC2A-42EB-933D-A94D7D4275CB} = {EBC6AB0B-D961-4E31-A2B4-09F74F102B37} {5B91935A-7ED6-4496-871B-6AD25BC3F097} = {EBC6AB0B-D961-4E31-A2B4-09F74F102B37} {6BBEDCA5-1183-49EE-AE80-0269DEB2EDEF} = {EBC6AB0B-D961-4E31-A2B4-09F74F102B37} @@ -466,8 +444,15 @@ Global {BDE04BD3-40A0-4B8E-A0B9-7729FFB7D1C2} = {79CD1278-66D5-458A-B75D-06EF4CC050A9} {19ADDEEC-EAF9-4B42-8EEC-86CD389D834F} = {ABD851F4-394B-4999-BCD2-12CE41BEFE9D} {2A606EB5-47BD-47B1-97EB-8C208DF63ABF} = {ABD851F4-394B-4999-BCD2-12CE41BEFE9D} + {BFAB0E32-43F3-4A0E-9409-FC57FCF4BF14} = {68A679AC-8B0D-45A4-8624-68C706089DEE} + {EE3EB8BB-A24E-4F71-8277-1C6DAE652E2C} = {D217E359-75BD-4875-817A-40A4819C4E83} + {1DE83058-60D9-4637-90EF-C3E46EAA9ACC} = {A42B0FAF-687B-4E2A-845B-BF3D2B5FF6BC} {969644BC-B209-4458-8DC1-041D7A9ADD3B} = {1DE83058-60D9-4637-90EF-C3E46EAA9ACC} {21777EAF-74FD-4D0B-947A-C602D8D3EBBA} = {1DE83058-60D9-4637-90EF-C3E46EAA9ACC} + {DAE4FFC2-B446-4020-8578-19B816FAA40A} = {19FF9025-F307-4507-9CCB-5D08D7D975E1} + {91D8B4E8-1973-40C6-AF44-DBFEEAAF0C7F} = {4721A7AC-65B8-48C0-A7CC-BF4B7A2B9D02} + {19FF9025-F307-4507-9CCB-5D08D7D975E1} = {EBC6AB0B-D961-4E31-A2B4-09F74F102B37} + {E256695F-8607-4A79-ABA5-6FED3A400C71} = {4721A7AC-65B8-48C0-A7CC-BF4B7A2B9D02} EndGlobalSection GlobalSection(MonoDevelopProperties) = preSolution StartupItem = ..\Client\RemoteInfoClient\RemoteInfoClient.csproj diff --git a/src/Backbone.Todos/Backbone.Todos.csproj b/src/Backbone.Todos/Backbone.Todos.csproj index 7a10c26e..066a9f92 100644 --- a/src/Backbone.Todos/Backbone.Todos.csproj +++ b/src/Backbone.Todos/Backbone.Todos.csproj @@ -13,7 +13,7 @@ Properties Backbone.Todos Backbone.Todos - v3.5 + v4.5 true @@ -24,6 +24,8 @@ + + true @@ -33,6 +35,7 @@ DEBUG;TRACE prompt 4 + false pdbonly @@ -41,36 +44,42 @@ TRACE prompt 4 + false - - ..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.dll + + ..\packages\ServiceStack.4.5.0\lib\net45\ServiceStack.dll + True - - ..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Common.dll + + ..\packages\ServiceStack.Client.4.5.0\lib\net45\ServiceStack.Client.dll + True - - ..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Interfaces.dll + + ..\packages\ServiceStack.Common.4.5.0\lib\net45\ServiceStack.Common.dll + True - - ..\packages\ServiceStack.OrmLite.SqlServer.3.9.63\lib\net35\ServiceStack.OrmLite.dll + + ..\packages\ServiceStack.Interfaces.4.5.0\lib\portable-wp80+sl5+net45+win8+wpa81+monotouch+monoandroid+xamarin.ios10\ServiceStack.Interfaces.dll + True - - ..\packages\ServiceStack.OrmLite.SqlServer.3.9.63\lib\net35\ServiceStack.OrmLite.SqlServer.dll + + ..\packages\ServiceStack.Redis.4.5.0\lib\net45\ServiceStack.Redis.dll + True - - ..\packages\ServiceStack.Redis.3.9.63\lib\net35\ServiceStack.Redis.dll - - - ..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.ServiceInterface.dll - - - ..\packages\ServiceStack.Text.3.9.63\lib\net35\ServiceStack.Text.dll + + ..\packages\ServiceStack.Text.4.5.0\lib\net45\ServiceStack.Text.dll + True - + + + + + + @@ -132,6 +141,11 @@ + + + + + - - - - - - - - - + + - + - - - - - - - - - - - - - - + - - - - + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/src/Backbone.Todos/packages.config b/src/Backbone.Todos/packages.config index f57348a5..1b4c7602 100644 --- a/src/Backbone.Todos/packages.config +++ b/src/Backbone.Todos/packages.config @@ -1,8 +1,9 @@  - - - - - + + + + + + \ No newline at end of file diff --git a/src/Backbone.Todos/packages/ServiceStack.4.0.11/ServiceStack.4.0.11.nupkg b/src/Backbone.Todos/packages/ServiceStack.4.0.11/ServiceStack.4.0.11.nupkg new file mode 100644 index 00000000..4ec38fea Binary files /dev/null and b/src/Backbone.Todos/packages/ServiceStack.4.0.11/ServiceStack.4.0.11.nupkg differ diff --git a/src/Backbone.Todos/packages/ServiceStack.4.0.11/lib/net40/ServiceStack.dll b/src/Backbone.Todos/packages/ServiceStack.4.0.11/lib/net40/ServiceStack.dll new file mode 100644 index 00000000..83933d41 Binary files /dev/null and b/src/Backbone.Todos/packages/ServiceStack.4.0.11/lib/net40/ServiceStack.dll differ diff --git a/src/Backbone.Todos/packages/ServiceStack.4.0.11/lib/net40/ServiceStack.xml b/src/Backbone.Todos/packages/ServiceStack.4.0.11/lib/net40/ServiceStack.xml new file mode 100644 index 00000000..d238a55a --- /dev/null +++ b/src/Backbone.Todos/packages/ServiceStack.4.0.11/lib/net40/ServiceStack.xml @@ -0,0 +1,8174 @@ + + + + ServiceStack + + + + + 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. + + + + + + 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. + + + + + 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. + + + + + ASP.NET or HttpListener ServiceStack host + + + + + 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 an Adhoc web service on Startup + + + + + Apply plugins to this AppHost + + + + + Create a service runner for IService actions + + + + + Resolve the absolute url for this request + + + + + Resolve localized text, returns itself by default. + + + + + Register user-defined custom routes. + + + + + Register custom ContentType serializers + + + + + Add Request Filters, to be applied before the dto is deserialized + + + + + Add Request Filters for HTTP Requests + + + + + Add Response Filters for HTTP Responses + + + + + Add Request Filters for MQ/TCP Requests + + + + + Add Response Filters for MQ/TCP Responses + + + + + Add alternative HTML View Engines + + + + + Provide an exception handler for unhandled exceptions + + + + + Provide an exception handler for un-caught exceptions + + + + + Skip the ServiceStack Request Pipeline and process the returned IHttpHandler instead + + + + + Provide a catch-all handler that doesn't match any routes + + + + + Use a Custom Error Handler for handling specific error HttpStatusCodes + + + + + Provide a custom model minder for a specific Request DTO + + + + + The AppHost config + + + + + List of pre-registered and user-defined plugins to be enabled in this AppHost + + + + + Virtual access to file resources + + + + + 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. + + + + 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. + + + + + Apply PreRequest Filters for participating Custom Handlers, e.g. RazorFormat, MarkdownFormat, etc + + + + + 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. + + + + + + The AppHost.Container. Note: it is not thread safe to register dependencies after AppStart. + + + + + 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 + + + + Creates the required missing tables or DB schema + + + + + 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 + + + + + Single threaded message handler that can process all messages + of a particular message type. + + + + + 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 + + + + + + The type of the message this handler processes + + + + + 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. + + + + + + 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 + + + + + This class stores the caller call context in order to restore + it when the work item is executed in the thread pool environment. + + + + + Constructor + + + + + Captures the current thread context + + + + + + Applies the thread context stored earlier + + + + + + EventWaitHandleFactory class. + This is a static class that creates AutoResetEvent and ManualResetEvent objects. + In WindowCE the WaitForMultipleObjects API fails to use the Handle property + of XxxResetEvent. It can use only handles that were created by the CreateEvent API. + Consequently this class creates the needed XxxResetEvent and replaces the handle if + it's a WindowsCE OS. + + + + + Create a new AutoResetEvent object + + Return a new AutoResetEvent object + + + + Create a new ManualResetEvent object + + Return a new ManualResetEvent object + + + + Represents an exception in case IWorkItemResult.GetResult has been canceled + + + Represents an exception in case IWorkItemResult.GetResult has been canceled + + + + + Represents an exception in case IWorkItemResult.GetResult has been timed out + + + Represents an exception in case IWorkItemResult.GetResult has been timed out + + + + + Represents an exception in case IWorkItemResult.GetResult has been timed out + + + Represents an exception in case IWorkItemResult.GetResult has been timed out + + + + + A delegate that represents the method to run as the work item + + A state object for the method to run + + + + A delegate to call after the WorkItemCallback completed + + The work item result object + + + + A delegate to call after the WorkItemCallback completed + + The work item result object + + + + A delegate to call when a WorkItemsGroup becomes idle + + A reference to the WorkItemsGroup that became idle + + + + A delegate to call after a thread is created, but before + it's first use. + + + + + A delegate to call when a thread is about to exit, after + it is no longer belong to the pool. + + + + + Defines the availeable priorities of a work item. + The higher the priority a work item has, the sooner + it will be executed. + + + + + IWorkItemsGroup interface + Created by SmartThreadPool.CreateWorkItemsGroup() + + + + + Get an array with all the state objects of the currently running items. + The array represents a snap shot and impact performance. + + + + + Starts to execute work items + + + + + Cancel all the work items. + Same as Cancel(false) + + + + + Cancel all work items using thread abortion + + True to stop work items by raising ThreadAbortException + + + + Wait for all work item to complete. + + + + + Wait for all work item to complete, until timeout expired + + How long to wait for the work items to complete + Returns true if work items completed within the timeout, otherwise false. + + + + Wait for all work item to complete, until timeout expired + + How long to wait for the work items to complete in milliseconds + Returns true if work items completed within the timeout, otherwise false. + + + + Queue a work item + + A callback to execute + Returns a work item result + + + + Queue a work item + + A callback to execute + The priority of the work item + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + The work item priority + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + The work item priority + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Indicates on which cases to call to the post execute callback + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Indicates on which cases to call to the post execute callback + The work item priority + Returns a work item result + + + + Queue a work item + + Work item info + A callback to execute + Returns a work item result + + + + Queue a work item + + Work item information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + Returns a work item result + + + + Queue a work item. + + Returns a IWorkItemResult object, but its GetResult() will always return null + + + + Queue a work item. + + Returns a IWorkItemResult object, but its GetResult() will always return null + + + + Queue a work item. + + Returns a IWorkItemResult object, but its GetResult() will always return null + + + + Queue a work item. + + Returns a IWorkItemResult object, but its GetResult() will always return null + + + + Queue a work item. + + Returns a IWorkItemResult object, but its GetResult() will always return null + + + + Queue a work item. + + Returns a IWorkItemResult<TResult> object. + its GetResult() returns a TResult object + + + + Queue a work item. + + Returns a IWorkItemResult<TResult> object. + its GetResult() returns a TResult object + + + + Queue a work item. + + Returns a IWorkItemResult<TResult> object. + its GetResult() returns a TResult object + + + + Queue a work item. + + Returns a IWorkItemResult<TResult> object. + its GetResult() returns a TResult object + + + + Queue a work item. + + Returns a IWorkItemResult<TResult> object. + its GetResult() returns a TResult object + + + + Get/Set the name of the WorkItemsGroup + + + + + Get/Set the maximum number of workitem that execute cocurrency on the thread pool + + + + + Get the number of work items waiting in the queue. + + + + + Get the WorkItemsGroup start information + + + + + IsIdle is true when there are no work items running or queued. + + + + + This event is fired when all work items are completed. + (When IsIdle changes to true) + This event only work on WorkItemsGroup. On SmartThreadPool + it throws the NotImplementedException. + + + + + Never call to the PostExecute call back + + + + + Call to the PostExecute only when the work item is cancelled + + + + + Call to the PostExecute only when the work item is not cancelled + + + + + Always call to the PostExecute + + + + + The common interface of IWorkItemResult and IWorkItemResult<T> + + + + + This method intent is for internal use. + + + + + + This method intent is for internal use. + + + + + + IWorkItemResult interface. + Created when a WorkItemCallback work item is queued. + + + + + IWorkItemResult<TResult> interface. + Created when a Func<TResult> work item is queued. + + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits. + + The result of the work item + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits until timeout. + + The result of the work item + On timeout throws WorkItemTimeoutException + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits until timeout. + + The result of the work item + On timeout throws WorkItemTimeoutException + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits until timeout or until the cancelWaitHandle is signaled. + + Timeout in milliseconds, or -1 for infinite + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + A cancel wait handle to interrupt the blocking if needed + The result of the work item + On timeout throws WorkItemTimeoutException + On cancel throws WorkItemCancelException + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits until timeout or until the cancelWaitHandle is signaled. + + The result of the work item + On timeout throws WorkItemTimeoutException + On cancel throws WorkItemCancelException + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits. + + Filled with the exception if one was thrown + The result of the work item + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits until timeout. + + + + Filled with the exception if one was thrown + The result of the work item + On timeout throws WorkItemTimeoutException + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits until timeout. + + + Filled with the exception if one was thrown + + The result of the work item + On timeout throws WorkItemTimeoutException + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits until timeout or until the cancelWaitHandle is signaled. + + Timeout in milliseconds, or -1 for infinite + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + A cancel wait handle to interrupt the blocking if needed + Filled with the exception if one was thrown + The result of the work item + On timeout throws WorkItemTimeoutException + On cancel throws WorkItemCancelException + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits until timeout or until the cancelWaitHandle is signaled. + + The result of the work item + + Filled with the exception if one was thrown + + + On timeout throws WorkItemTimeoutException + On cancel throws WorkItemCancelException + + + + Same as Cancel(false). + + + + + Cancel the work item execution. + If the work item is in the queue then it won't execute + If the work item is completed, it will remain completed + If the work item is in progress then the user can check the SmartThreadPool.IsWorkItemCanceled + property to check if the work item has been cancelled. If the abortExecution is set to true then + the Smart Thread Pool will send an AbortException to the running thread to stop the execution + of the work item. When an in progress work item is canceled its GetResult will throw WorkItemCancelException. + If the work item is already cancelled it will remain cancelled + + When true send an AbortException to the executing thread. + Returns true if the work item was not completed, otherwise false. + + + + Gets an indication whether the asynchronous operation has completed. + + + + + Gets an indication whether the asynchronous operation has been canceled. + + + + + Gets the user-defined object that contains context data + for the work item method. + + + + + Get the work item's priority + + + + + Return the result, same as GetResult() + + + + + Returns the exception if occured otherwise returns null. + + + + + An internal delegate to call when the WorkItem starts or completes + + + + + This method is intent for internal use. + + + + + PriorityQueue class + This class is not thread safe because we use external lock + + + + + The number of queues, there is one for each type of priority + + + + + Work items queues. There is one for each type of priority + + + + + The total number of work items within the queues + + + + + Use with IEnumerable interface + + + + + Enqueue a work item. + + A work item + + + + Dequeque a work item. + + Returns the next work item + + + + Find the next non empty queue starting at queue queueIndex+1 + + The index-1 to start from + + The index of the next non empty queue or -1 if all the queues are empty + + + + + Clear all the work items + + + + + Returns an enumerator to iterate over the work items + + Returns an enumerator + + + + The number of work items + + + + + The class the implements the enumerator + + + + + Smart thread pool class. + + + + + Contains the name of this instance of SmartThreadPool. + Can be changed by the user. + + + + + Cancel all the work items. + Same as Cancel(false) + + + + + Wait for the SmartThreadPool/WorkItemsGroup to be idle + + + + + Wait for the SmartThreadPool/WorkItemsGroup to be idle + + + + + Queue a work item + + A callback to execute + Returns a work item result + + + + Queue a work item + + A callback to execute + The priority of the work item + Returns a work item result + + + + Queue a work item + + Work item info + A callback to execute + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + The work item priority + Returns a work item result + + + + Queue a work item + + Work item information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + The work item priority + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Indicates on which cases to call to the post execute callback + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Indicates on which cases to call to the post execute callback + The work item priority + Returns a work item result + + + + Get/Set the name of the SmartThreadPool/WorkItemsGroup instance + + + + + IsIdle is true when there are no work items running or queued. + + + + + Default minimum number of threads the thread pool contains. (0) + + + + + Default maximum number of threads the thread pool contains. (25) + + + + + Default idle timeout in milliseconds. (One minute) + + + + + Indicate to copy the security context of the caller and then use it in the call. (false) + + + + + Indicate to copy the HTTP context of the caller and then use it in the call. (false) + + + + + Indicate to dispose of the state objects if they support the IDispose interface. (false) + + + + + The default option to run the post execute (CallToPostExecute.Always) + + + + + The default work item priority (WorkItemPriority.Normal) + + + + + The default is to work on work items as soon as they arrive + and not to wait for the start. (false) + + + + + The default thread priority (ThreadPriority.Normal) + + + + + The default thread pool name. (SmartThreadPool) + + + + + The default fill state with params. (false) + It is relevant only to QueueWorkItem of Action<...>/Func<...> + + + + + The default thread backgroundness. (true) + + + + + The default apartment state of a thread in the thread pool. + The default is ApartmentState.Unknown which means the STP will not + set the apartment of the thread. It will use the .NET default. + + + + + The default post execute method to run. (None) + When null it means not to call it. + + + + + The default name to use for the performance counters instance. (null) + + + + + The default Max Stack Size. (SmartThreadPool) + + + + + Dictionary of all the threads in the thread pool. + + + + + Queue of work items. + + + + + Count the work items handled. + Used by the performance counter. + + + + + Number of threads that currently work (not idle). + + + + + Stores a copy of the original STPStartInfo. + It is used to change the MinThread and MaxThreads + + + + + Total number of work items that are stored in the work items queue + plus the work items that the threads in the pool are working on. + + + + + Signaled when the thread pool is idle, i.e. no thread is busy + and the work items queue is empty + + + + + An event to signal all the threads to quit immediately. + + + + + A flag to indicate if the Smart Thread Pool is now suspended. + + + + + A flag to indicate the threads to quit. + + + + + Counts the threads created in the pool. + It is used to name the threads. + + + + + Indicate that the SmartThreadPool has been disposed + + + + + Holds all the WorkItemsGroup instaces that have at least one + work item int the SmartThreadPool + This variable is used in case of Shutdown + + + + + A common object for all the work items int the STP + so we can mark them to cancel in O(1) + + + + + Windows STP performance counters + + + + + Local STP performance counters + + + + + Constructor + + + + + Constructor + + Idle timeout in milliseconds + + + + Constructor + + Idle timeout in milliseconds + Upper limit of threads in the pool + + + + Constructor + + Idle timeout in milliseconds + Upper limit of threads in the pool + Lower limit of threads in the pool + + + + Constructor + + A SmartThreadPool configuration that overrides the default behavior + + + + Waits on the queue for a work item, shutdown, or timeout. + + + Returns the WaitingCallback or null in case of timeout or shutdown. + + + + + Put a new work item in the queue + + A work item to queue + + + + Inform that the current thread is about to quit or quiting. + The same thread may call this method more than once. + + + + + Starts new threads + + The number of threads to start + + + + A worker thread method that processes work items from the work items queue. + + + + + Force the SmartThreadPool to shutdown + + + + + Force the SmartThreadPool to shutdown with timeout + + + + + Empties the queue of work items and abort the threads in the pool. + + + + + Wait for all work items to complete + + Array of work item result objects + + true when every work item in workItemResults has completed; otherwise false. + + + + + Wait for all work items to complete + + Array of work item result objects + The number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + + true when every work item in workItemResults has completed; otherwise false. + + + + + Wait for all work items to complete + + Array of work item result objects + The number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + A cancel wait handle to interrupt the wait if needed + + true when every work item in workItemResults has completed; otherwise false. + + + + + Wait for all work items to complete + + Array of work item result objects + The number of milliseconds to wait, or Timeout.Infinite (-1) to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + + true when every work item in workItemResults has completed; otherwise false. + + + + + Wait for all work items to complete + + Array of work item result objects + The number of milliseconds to wait, or Timeout.Infinite (-1) to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + A cancel wait handle to interrupt the wait if needed + + true when every work item in workItemResults has completed; otherwise false. + + + + + Waits for any of the work items in the specified array to complete, cancel, or timeout + + Array of work item result objects + + The array index of the work item result that satisfied the wait, or WaitTimeout if any of the work items has been canceled. + + + + + Waits for any of the work items in the specified array to complete, cancel, or timeout + + Array of work item result objects + The number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + + The array index of the work item result that satisfied the wait, or WaitTimeout if no work item result satisfied the wait and a time interval equivalent to millisecondsTimeout has passed or the work item has been canceled. + + + + + Waits for any of the work items in the specified array to complete, cancel, or timeout + + Array of work item result objects + The number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + A cancel wait handle to interrupt the wait if needed + + The array index of the work item result that satisfied the wait, or WaitTimeout if no work item result satisfied the wait and a time interval equivalent to millisecondsTimeout has passed or the work item has been canceled. + + + + + Waits for any of the work items in the specified array to complete, cancel, or timeout + + Array of work item result objects + The number of milliseconds to wait, or Timeout.Infinite (-1) to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + + The array index of the work item result that satisfied the wait, or WaitTimeout if no work item result satisfied the wait and a time interval equivalent to millisecondsTimeout has passed or the work item has been canceled. + + + + + Waits for any of the work items in the specified array to complete, cancel, or timeout + + Array of work item result objects + The number of milliseconds to wait, or Timeout.Infinite (-1) to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + A cancel wait handle to interrupt the wait if needed + + The array index of the work item result that satisfied the wait, or WaitTimeout if no work item result satisfied the wait and a time interval equivalent to millisecondsTimeout has passed or the work item has been canceled. + + + + + Creates a new WorkItemsGroup. + + The number of work items that can be run concurrently + A reference to the WorkItemsGroup + + + + Creates a new WorkItemsGroup. + + The number of work items that can be run concurrently + A WorkItemsGroup configuration that overrides the default behavior + A reference to the WorkItemsGroup + + + + Checks if the work item has been cancelled, and if yes then abort the thread. + Can be used with Cancel and timeout + + + + + Get an array with all the state objects of the currently running items. + The array represents a snap shot and impact performance. + + + + + Start the thread pool if it was started suspended. + If it is already running, this method is ignored. + + + + + Cancel all work items using thread abortion + + True to stop work items by raising ThreadAbortException + + + + Wait for the thread pool to be idle + + + + + Executes all actions in parallel. + Returns when they all finish. + + Actions to execute + + + + Executes all actions in parallel. + Returns when they all finish. + + Actions to execute + + + + Executes all actions in parallel + Returns when the first one completes + + Actions to execute + + + + Executes all actions in parallel + Returns when the first one completes + + Actions to execute + + + + Executes actions in sequence asynchronously. + Returns immediately. + + A state context that passes + Actions to execute in the order they should run + + + + Executes actions in sequence asynchronously. + Returns immediately. + + + Actions to execute in the order they should run + + + + An event to call after a thread is created, but before + it's first use. + + + + + An event to call when a thread is about to exit, after + it is no longer belong to the pool. + + + + + A reference to the current work item a thread from the thread pool + is executing. + + + + + This event is fired when a thread is created. + Use it to initialize a thread before the work items use it. + + + + + This event is fired when a thread is terminating. + Use it for cleanup. + + + + + Get/Set the lower limit of threads in the pool. + + + + + Get/Set the upper limit of threads in the pool. + + + + + Get the number of threads in the thread pool. + Should be between the lower and the upper limits. + + + + + Get the number of busy (not idle) threads in the thread pool. + + + + + Returns true if the current running work item has been cancelled. + Must be used within the work item's callback method. + The work item should sample this value in order to know if it + needs to quit before its completion. + + + + + Thread Pool start information (readonly) + + + + + Return the local calculated performance counters + Available only if STPStartInfo.EnableLocalPerformanceCounters is true. + + + + + Get/Set the maximum number of work items that execute cocurrency on the thread pool + + + + + Get the number of work items in the queue. + + + + + WorkItemsGroup start information (readonly) + + + + + This event is fired when all work items are completed. + (When IsIdle changes to true) + This event only work on WorkItemsGroup. On SmartThreadPool + it throws the NotImplementedException. + + + + + The thread creation time + The value is stored as UTC value. + + + + + The last time this thread has been running + It is updated by IAmAlive() method + The value is stored as UTC value. + + + + + A reference from each thread in the thread pool to its SmartThreadPool + object container. + With this variable a thread can know whatever it belongs to a + SmartThreadPool. + + + + + A reference to the current work item a thread from the thread pool + is executing. + + + + + Summary description for STPPerformanceCounter. + + + + + Summary description for STPStartInfo. + + + + + Summary description for WIGStartInfo. + + + + + Get a readonly version of this WIGStartInfo + + Returns a readonly reference to this WIGStartInfoRO + + + + Get/Set if to use the caller's security context + + + + + Get/Set if to use the caller's HTTP context + + + + + Get/Set if to dispose of the state object of a work item + + + + + Get/Set the run the post execute options + + + + + Get/Set the default post execute callback + + + + + Get/Set if the work items execution should be suspended until the Start() + method is called. + + + + + Get/Set the default priority that a work item gets when it is enqueued + + + + + Get/Set the if QueueWorkItem of Action<...>/Func<...> fill the + arguments as an object array into the state of the work item. + The arguments can be access later by IWorkItemResult.State. + + + + + Get a readonly version of this STPStartInfo. + + Returns a readonly reference to this STPStartInfo + + + + Get/Set the idle timeout in milliseconds. + If a thread is idle (starved) longer than IdleTimeout then it may quit. + + + + + Get/Set the lower limit of threads in the pool. + + + + + Get/Set the upper limit of threads in the pool. + + + + + Get/Set the scheduling priority of the threads in the pool. + The Os handles the scheduling. + + + + + Get/Set the thread pool name. Threads will get names depending on this. + + + + + Get/Set the performance counter instance name of this SmartThreadPool + The default is null which indicate not to use performance counters at all. + + + + + Enable/Disable the local performance counter. + This enables the user to get some performance information about the SmartThreadPool + without using Windows performance counters. (Useful on WindowsCE, Silverlight, etc.) + The default is false. + + + + + Get/Set backgroundness of thread in thread pool. + + + + + Get/Set the apartment state of threads in the thread pool + + + + + Get/Set the max stack size of threads in the thread pool + + + + + Holds a callback delegate and the state for that delegate. + + + + + Callback delegate for the callback. + + + + + State with which to call the callback delegate. + + + + + Stores the caller's context + + + + + Holds the result of the mehtod + + + + + Hold the exception if the method threw it + + + + + Hold the state of the work item + + + + + A ManualResetEvent to indicate that the result is ready + + + + + A reference count to the _workItemCompleted. + When it reaches to zero _workItemCompleted is Closed + + + + + Represents the result state of the work item + + + + + Work item info + + + + + A reference to an object that indicates whatever the + WorkItemsGroup has been canceled + + + + + A reference to an object that indicates whatever the + SmartThreadPool has been canceled + + + + + The work item group this work item belong to. + + + + + The thread that executes this workitem. + This field is available for the period when the work item is executed, before and after it is null. + + + + + The absulote time when the work item will be timeout + + + + + Stores how long the work item waited on the stp queue + + + + + Stores how much time it took the work item to execute after it went out of the queue + + + + + Initialize the callback holding object. + + The workItemGroup of the workitem + The WorkItemInfo of te workitem + Callback delegate for the callback. + State with which to call the callback delegate. + + We assume that the WorkItem object is created within the thread + that meant to run the callback + + + + Change the state of the work item to in progress if it wasn't canceled. + + + Return true on success or false in case the work item was canceled. + If the work item needs to run a post execute then the method will return true. + + + + + Execute the work item and the post execute + + + + + Execute the work item + + + + + Runs the post execute callback + + + + + Set the result of the work item to return + + The result of the work item + The exception that was throw while the workitem executed, null + if there was no exception. + + + + Returns the work item result + + The work item result + + + + Wait for all work items to complete + + Array of work item result objects + The number of milliseconds to wait, or Timeout.Infinite (-1) to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + A cancel wait handle to interrupt the wait if needed + + true when every work item in waitableResults has completed; otherwise false. + + + + + Waits for any of the work items in the specified array to complete, cancel, or timeout + + Array of work item result objects + The number of milliseconds to wait, or Timeout.Infinite (-1) to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + A cancel wait handle to interrupt the wait if needed + + The array index of the work item result that satisfied the wait, or WaitTimeout if no work item result satisfied the wait and a time interval equivalent to millisecondsTimeout has passed or the work item has been canceled. + + + + + Fill an array of wait handles with the work items wait handles. + + An array of work item results + An array of wait handles to fill + + + + Release the work items' wait handles + + An array of work item results + + + + Sets the work item's state + + The state to set the work item to + + + + Signals that work item has been completed or canceled + + Indicates that the work item has been canceled + + + + Cancel the work item if it didn't start running yet. + + Returns true on success or false if the work item is in progress or already completed + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits for the result, timeout, or cancel. + In case of error the method throws and exception + + The result of the work item + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits for the result, timeout, or cancel. + In case of error the e argument is filled with the exception + + The result of the work item + + + + A wait handle to wait for completion, cancel, or timeout + + + + + Called when the WorkItem starts + + + + + Called when the WorkItem completes + + + + + Returns true when the work item has completed or canceled + + + + + Returns true when the work item has canceled + + + + + Returns the priority of the work item + + + + + Indicates the state of the work item in the thread pool + + + + + A back reference to the work item + + + + + Return the result, same as GetResult() + + + + + Returns the exception if occured otherwise returns null. + This value is valid only after the work item completed, + before that it is always null. + + + + + Create a new work item + + The WorkItemsGroup of this workitem + Work item group start information + A callback to execute + Returns a work item + + + + Create a new work item + + The WorkItemsGroup of this workitem + Work item group start information + A callback to execute + The priority of the work item + Returns a work item + + + + Create a new work item + + The WorkItemsGroup of this workitem + Work item group start information + Work item info + A callback to execute + Returns a work item + + + + Create a new work item + + The WorkItemsGroup of this workitem + Work item group start information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + Returns a work item + + + + Create a new work item + + The work items group + Work item group start information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + The work item priority + Returns a work item + + + + Create a new work item + + The work items group + Work item group start information + Work item information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + Returns a work item + + + + Create a new work item + + The work items group + Work item group start information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Returns a work item + + + + Create a new work item + + The work items group + Work item group start information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + The work item priority + Returns a work item + + + + Create a new work item + + The work items group + Work item group start information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Indicates on which cases to call to the post execute callback + Returns a work item + + + + Create a new work item + + The work items group + Work item group start information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Indicates on which cases to call to the post execute callback + The work item priority + Returns a work item + + + + Summary description for WorkItemInfo. + + + + + Get/Set if to use the caller's security context + + + + + Get/Set if to use the caller's HTTP context + + + + + Get/Set if to dispose of the state object of a work item + + + + + Get/Set the run the post execute options + + + + + Get/Set the post execute callback + + + + + Get/Set the work item's priority + + + + + Get/Set the work item's timout in milliseconds. + This is a passive timout. When the timout expires the work item won't be actively aborted! + + + + + Summary description for WorkItemsGroup. + + + + + A reference to the SmartThreadPool instance that created this + WorkItemsGroup. + + + + + A flag to indicate if the Work Items Group is now suspended. + + + + + Defines how many work items of this WorkItemsGroup can run at once. + + + + + Priority queue to hold work items before they are passed + to the SmartThreadPool. + + + + + Indicate how many work items are waiting in the SmartThreadPool + queue. + This value is used to apply the concurrency. + + + + + Indicate how many work items are currently running in the SmartThreadPool. + This value is used with the Cancel, to calculate if we can send new + work items to the STP. + + + + + WorkItemsGroup start information + + + + + Signaled when all of the WorkItemsGroup's work item completed. + + + + + A common object for all the work items that this work items group + generate so we can mark them to cancel in O(1) + + + + + Start the Work Items Group if it was started suspended + + + + + Wait for the thread pool to be idle + + + + + The OnIdle event + + + + + WorkItemsGroup start information + + + + + WorkItemsQueue class. + + + + + Waiters queue (implemented as stack). + + + + + Waiters count + + + + + Work items queue + + + + + Indicate that work items are allowed to be queued + + + + + A flag that indicates if the WorkItemsQueue has been disposed. + + + + + Enqueue a work item to the queue. + + + + + Waits for a work item or exits on timeout or cancel + + Timeout in milliseconds + Cancel wait handle + Returns true if the resource was granted + + + + Cleanup the work items queue, hence no more work + items are allowed to be queue + + + + + Returns the WaiterEntry of the current thread + + + In order to avoid creation and destuction of WaiterEntry + objects each thread has its own WaiterEntry object. + + + + Push a new waiter into the waiter's stack + + A waiter to put in the stack + + + + Pop a waiter from the waiter's stack + + Returns the first waiter in the stack + + + + Remove a waiter from the stack + + A waiter entry to remove + If true the waiter count is always decremented + + + + Each thread in the thread pool keeps its own waiter entry. + + + + + Returns the current number of work items in the queue + + + + + Returns the current number of waiters + + + + + Event to signal the waiter that it got the work item. + + + + + Flag to know if this waiter already quited from the queue + because of a timeout. + + + + + Flag to know if the waiter was signaled and got a work item. + + + + + A work item that passed directly to the waiter withou going + through the queue + + + + + Signal the waiter that it got a work item. + + Return true on success + The method fails if Timeout() preceded its call + + + + Mark the wait entry that it has been timed out + + Return true on success + The method fails if Signal() preceded its call + + + + Reset the wait entry so it can be used again + + + + + Free resources + + + + + 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. + + + + + Service error logs are kept in 'urn:ServiceErrors:{ServiceName}' + + + + + Combined service error logs are maintained in 'urn:ServiceErrors:All' + + + + + 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 + + + + + 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. + + + + + Generic + Useful IService base class + + + + + Resolve an alternate Web Service from ServiceStack's IOC container. + + + + + + + Dynamic Session Bag + + + + + Typed UserSession + + + + + 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. + + + + + 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 + + + + 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 . + + + + + 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 + + + + + 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 + + + + + + + + Saves the Auth Tokens for this request. Called in OnAuthenticated(). + Overrideable, the default behaviour is to call IUserAuthRepository.CreateOrMergeAuthSession(). + + + + + Base class for entity validator classes. + + The type of the object being validated + + + + Defines a validator for a particualr type. + + + + + + Defines a validator for a particular type. + + + + + Validates the specified instance + + + A ValidationResult containing any validation failures + + + + Validates the specified instance. + + A ValidationContext + 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 + + + + + Validates the specified instance. + + The instance to validate + A ValidationResult object containing any validation failures. + + + + 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. + + Validation Context + 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 + + + + 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 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 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. + + + + Defines a condition that applies to several rules + + The condition that should apply to multiple rules + Action that encapsulates the rules. + + + + + Defiles an inverse condition that applies to several rules + + The condition that should be applied to multiple rules + Action that encapsulates the rules + + + + Returns an enumerator that iterates through the collection of validation rules. + + + A that can be used to iterate through the collection. + + 1 + + + + Sets the cascade mode for all rules within this validator. + + + + + Create a Facebook App at: https://developers.facebook.com/apps + The Callback URL for your app should match the CallbackUrl provided. + + + + + 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 + + + + + + + + + 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. + + + + + + Thread-safe In memory UserAuth data store so it can be used without a dependency on Redis. + + + + + Creates the required missing tables or DB schema + + + + + Create new Registration + + + + + Logic to update UserAuth from Registration info, not enabled on OnPut because of security. + + + + + Thank you Martijn + http://www.dijksterhuis.org/creating-salted-hash-values-in-c/ + + + + + 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. + + + + + 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). + + + + + 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. + + + + + 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. + + + + + The Yammer User's email addresses. + + + + + Gets or sets the email address type (e.g. primary). + + + + + Gets or sets the email address. + + + + + 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 + + + + Add value with specified key to the cache, and set the cache entry to never expire. + + + + + Stores The value with key only if such key doesn't exist at the server yet. + + + + + Adds or replaces the value with key, and sets the cache entry to never expire. + + + + + Adds or replaces the value with key. + + + + + Adds or replaces the value with key. + + + + + Replace the value with specified key if it exists, and set the cache entry to never expire. + + + + + 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. + + + + + Create new instance of CacheEntry. + + + + UTC time at which CacheEntry expires. + + + + Would've preferred to use [assembly: ContractNamespace] attribute but it is not supported in Mono + + + + + 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 + + + + + + + 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 + + + + Gets the nullable app setting. + + + + + Gets the app setting. + + + + + Determines wheter the Config section identified by the sectionName exists. + + + + + Returns AppSetting[key] if exists otherwise defaultValue + + + + + Returns AppSetting[key] if exists otherwise defaultValue, for non-string values + + + + + Gets the connection string setting. + + + + + Gets the connection string. + + + + + Gets the list from app setting. + + + + + Gets the dictionary from app setting. + + + + + 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 + + + + + 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. + + + + + 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. + + + + + Change the default HTML view or template used for the HTML response of this service + + + + + 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 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 IValidatorFactory that looks for ValidatorAttribute instances on the specified type in order to provide the validator instance. + + + + + Gets validators for a particular type. + + + + + Gets the validator for the specified type. + + + + + Gets the validator for the specified type. + + + + + Gets a validator for the appropriate type. + + + + + Gets a validator for the appropriate type. + + + + + Validator attribute to define the class that will describe the Validation rules + + + + + Creates an instance of the ValidatorAttribute allowing a validator type to be specified. + + + + + The type of the validator used to validate the current type. + + + + + Associates an instance of IValidator with the current property rule and is used to validate each item within the collection. + + The validator to use + + + + Rule builder + + + + + + + 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 + + + + Represents an object that is configurable. + + Type of object being configured + Return type + + + + Configures the current object. + + Action to configure the object. + + + + + 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 '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 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 specifed 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 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 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 specifed 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 specifed 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 specifed 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 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 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 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. + + + + Performs validation and then throws an exception if validation fails. + + + + + 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. + + + + + 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 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 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 + 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 code to use when validation fails + + The current rule + The error code to use + + + + + 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 a custom property name to use within the error message. + + 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 + + + + 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 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. + + + + + 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), + } + } + + + + + + + Allows configuration of the validator. + + + + + Delegate that specifies configuring an InlineValidator. + + + + + Default validator selector that will execute all rules that do not belong to a RuleSet. + + + + + 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. + + + + 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. + + + + + + Defines a rule associated with a property which can have multiple validators. + + + + + Performs validation 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. + + + + + Name of the 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. + + + + + 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. + + Validation Context + A collection of validation failures + + + + Rule set to which this rule belongs. + + + + + The validators that are grouped under this rule. + + + + + Useful extensions + + + + + 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 + + + + + Based on a child validator and a propery rule, infers whether the validator should be wrapped in a ChildValidatorAdaptor or a CollectionValidatorAdaptor + + + + + Instancace cache. + TODO: This isn't actually completely thread safe. It would be much better to use ConcurrentDictionary, but this isn't available in Silverlight/WP7. + + + + + 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 + + + + Selects validators that are associated with a particular property. + + + + + Creates a new instance of MemberNameValidatorSelector. + + + + + 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. + + + + + Assists in the construction of validation messages. + + + + + Default Property Name placeholder. + + + + + Adds a value for a validation message placeholder. + + + + + + + + Appends a property name to the message. + + The name 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 + + + + Represents a chain of properties + + + + + Creates a new PropertyChain. + + + + + Creates a new PropertyChain based on another. + + + + + 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. + + + + + Defines a rule associated with a property. + + + + + 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. + + + + + 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 + + + + Invokes a property validator using the specified validation context. + + + + + 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. + + + + + Returns the property name for the property being validated. + Returns null if it is not a property being validated (eg a method call) + + + + + Builds a validation rule and constructs a validator. + + Type of object being validated + Type of property being validated + + + + Rule builder that starts the chain + + + + + + + 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 + + + + The rule being created by this RuleBuilder. + + + + + Selects validators that belong to the specified rulesets. + + + + + 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. + + + + 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. + + + + + 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. + + + + + Builds a delegate for retrieving a localised resource from a resource type and property name. + + + + + Builds a function used to retrieve the resource. + + + + + 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. + + + + + Implemenetation of IResourceAccessorBuilder that can fall back to the default resource provider. + + + + + 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. + + + + + 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. + + + + + 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 + Strategy used to construct the resource accessor + + + + Creates an IErrorMessageSource 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. + + + + + 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 '{PropertyName}' is not a valid credit card number.. + + + + + Looks up a localized string similar to '{PropertyName}' is not a valid email address.. + + + + + Looks up a localized string similar to '{PropertyName}' should be equal to '{PropertyValue}'.. + + + + + Looks up a localized string similar to '{PropertyName}' must be {MaxLength} characters in length. You entered {TotalLength} characters.. + + + + + Looks up a localized string similar to '{PropertyName}' must be between {From} and {To} (exclusive). You entered {Value}.. + + + + + Looks up a localized string similar to '{PropertyName}' must be greater than '{ComparisonValue}'.. + + + + + Looks up a localized string similar to '{PropertyName}' must be greater than or equal to '{ComparisonValue}'.. + + + + + Looks up a localized string similar to '{PropertyName}' must be between {From} and {To}. You entered {Value}.. + + + + + Looks up a localized string similar to '{PropertyName}' must be between {MinLength} and {MaxLength} characters. You entered {TotalLength} characters.. + + + + + Looks up a localized string similar to '{PropertyName}' must be less than '{ComparisonValue}'.. + + + + + Looks up a localized string similar to '{PropertyName}' must be less than or equal to '{ComparisonValue}'.. + + + + + Looks up a localized string similar to '{PropertyName}' should not be empty.. + + + + + Looks up a localized string similar to '{PropertyName}' should not be equal to '{PropertyValue}'.. + + + + + Looks up a localized string similar to '{PropertyName}' must not be empty.. + + + + + Looks up a localized string similar to The specified condition was not met for '{PropertyName}'.. + + + + + Looks up a localized string similar to '{PropertyName}' is not in the correct format.. + + + + + 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. + + + + + Creates a new validation failure. + + + + + Creates a new ValidationFailure. + + + + + Creates a textual representation of the failure. + + + + + The name of the property. + + + + + The error message + + + + + The error code + + + + + The property value that caused the failure. + + + + + Custom state associated with the failure. + + + + + Used for providing metadata about a validator. + + + + + 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. + + + + + Creates an error validation result for this validator. + + The validator context + Returns an error validation result. + + + + Ensures that the property value is a valid credit card number. + + + + + Provides access to the anti-forgery system, which provides protection against + Cross-site Request Forgery (XSRF, also called CSRF) attacks. + + + + + Generates an anti-forgery token for this request. This token can + be validated by calling the Validate() method. + + An HTML string corresponding to an <input type="hidden"> + element. This element should be put inside a <form>. + + This method has a side effect: it may set a response cookie. + + + + + Generates an anti-forgery token pair (cookie and form token) for this request. + This method is similar to GetHtml(), but this method gives the caller control + over how to persist the returned values. To validate these tokens, call the + appropriate overload of Validate. + + The anti-forgery token - if any - that already existed + for this request. May be null. The anti-forgery system will try to reuse this cookie + value when generating a matching form token. + Will contain a new cookie value if the old cookie token + was null or invalid. If this value is non-null when the method completes, the caller + must persist this value in the form of a response cookie, and the existing cookie value + should be discarded. If this value is null when the method completes, the existing + cookie value was valid and needn't be modified. + The value that should be stored in the <form>. The caller + should take care not to accidentally swap the cookie and form tokens. + + Unlike the GetHtml() method, this method has no side effect. The caller + is responsible for setting the response cookie and injecting the returned + form token as appropriate. + + + + + Validates an anti-forgery token that was supplied for this request. + The anti-forgery token may be generated by calling GetHtml(). + + + Throws an HttpAntiForgeryException if validation fails. + + + + + Validates an anti-forgery token pair that was generated by the GetTokens method. + + The token that was supplied in the request cookie. + The token that was supplied in the request form body. + + Throws an HttpAntiForgeryException if validation fails. + + + + + Provides programmatic configuration for the anti-forgery token system. + + + + + Specifies an object that can provide additional data to put into all + generated tokens and that can validate additional data in incoming + tokens. + + + + + Specifies the name of the cookie that is used by the anti-forgery + system. + + + If an explicit name is not provided, the system will automatically + generate a name. + + + + + Specifies whether SSL is required for the anti-forgery system + to operate. If this setting is 'true' and a non-SSL request + comes into the system, all anti-forgery APIs will fail. + + + + + Specifies whether the anti-forgery system should skip checking + for conditions that might indicate misuse of the system. Please + use caution when setting this switch, as improper use could open + security holes in the application. + + + Setting this switch will disable several checks, including: + - Identity.IsAuthenticated = true without Identity.Name being set + - special-casing claims-based identities + + + + + If claims-based authorization is in use, specifies the claim + type from the identity that is used to uniquely identify the + user. If this property is set, all claims-based identities + must return unique values for this claim type. + + + If claims-based authorization is in use and this property has + not been set, the anti-forgery system will automatically look + for claim types "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier" + and "http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider". + + + + + Allows providing or validating additional custom data for anti-forgery tokens. + For example, the developer could use this to supply a nonce when the token is + generated, then he could validate the nonce when the token is validated. + + + The anti-forgery system already embeds the client's username within the + generated tokens. This interface provides and consumes supplemental + data. If an incoming anti-forgery token contains supplemental data but no + additional data provider is configured, the supplemental data will not be + validated. + + + + + Provides additional data to be stored for the anti-forgery tokens generated + during this request. + + Information about the current request. + Supplemental data to embed within the anti-forgery token. + + + + Validates additional data that was embedded inside an incoming anti-forgery + token. + + Information about the current request. + Supplemental data that was embedded within the token. + True if the data is valid; false if the data is invalid. + + + + Initializes a new instance of the class. + + The base scope. + + The dictionary to use as a storage. Since the dictionary would be used as-is, we expect the implementer to + use the same key-value comparison logic as we do here. + + + + + Custom comparer for the context dictionaries + The comparer treats strings as a special case, performing case insesitive comparison. + This guaratees that we remain consistent throughout the chain of contexts since PageData dictionary + behaves in this manner. + + + + + End a ServiceStack Request + + + + + End a ServiceStack Request + + + + + End a HttpHandler Request + + + + + End a HttpHandler Request + + + + + End a ServiceStack Request with no content + + + + + Main container class for components, supporting container hierarchies and + lifetime management of instances. + + + + + Initializes a new empty container. + + + + + 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. + + + + + Register an autowired dependency + + + + + + Register an autowired dependency as a separate type + + + + + + 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. + + + + + + Default owner for new registrations. by default. + + + + + Default reuse scope for new registrations. by default. + + + + + Enable the Registration feature and configure the RegistrationService. + + + + + Registers the 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 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 + + + + + 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. + + + + + + + + + + + + + + + + + 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 . + + + + + Fluent API for customizing the registration of a service. + + + + + 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 . + + + + + 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. + + + + + 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. + + + + + 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 . + + + + + BaseProfilerProvider. This providers some helper methods which provide access to + internals not otherwise available. + To use, override the , and + methods. + + + + + A provider used to create instances and maintain the current instance. + + + + + Starts a new MiniProfiler and sets it to be current. By the end of this method + should return the new MiniProfiler. + + + + + Ends the current profiling session, if one exists. + + + When true, clears the for this HttpContext, allowing profiling to + be prematurely stopped and discarded. Useful for when a specific route does not need to be profiled. + + + + + Returns the current MiniProfiler. This is used by . + + + + + + Starts a new MiniProfiler and sets it to be current. By the end of this method + should return the new MiniProfiler. + + + + + Stops the current MiniProfiler (if any is currently running). + should be called if is false + + If true, any current results will be thrown away and nothing saved + + + + Returns the current MiniProfiler. This is used by . + + + + + + Sets to be active (read to start profiling) + This should be called once a new MiniProfiler has been created. + + The profiler to set to active + If is null + + + + Stops the profiler and marks it as inactive. + + The profiler to stop + True if successful, false if Stop had previously been called on this profiler + If is null + + + + Calls to save the current + profiler using the current storage settings + + + + + + 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 + + + + + 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. + + + + + If the underlying command supports BindByName, this sets/clears the underlying + implementation accordingly. This is required to support OracleCommand from dapper-dot-net + + + + + Wraps a database connection, allowing sql execution timings to be collected when a session is started. + + + + + This will be made private; use + + + + + This will be made private; use + + + + + 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 + + + + + Used for db provider apis internally + + + + + Allow to re-init the provider factory. + + + + + + + proxy + + + + + + + proxy + + + + + proxy + + + + + proxy + + + + + proxy + + + + + proxy + + + + + proxy + + + + + proxy + + + + + proxy + + + + + proxy + + + + + Common extension methods to use only in this project + + + + + Answers true if this String is either null or empty. + + + + + Answers true if this String is neither null or empty. + + + + + Removes trailing / characters from a path and leaves just one + + + + + Removes any leading / characters from a path + + + + + Removes any leading / characters from a path + + + + + Serializes to a json string. + + + + + Gets part of a stack trace containing only methods we care about. + + + + + Gets the current formatted and filted stack trace. + + Space separated list of methods + + + + Identifies users based on ip address. + + + + + Provides functionality to identify which user is profiling a request. + + + + + Returns a string to identify the user profiling the current 'request'. + + The current HttpRequest being profiled. + + + + Returns the paramter HttpRequest's client ip address. + + + + + A single MiniProfiler can be used to represent any number of steps/levels in a call-graph, via Step() + + Totally baller. + + + + Starts when this profiler is instantiated. Each step will use this Stopwatch's current ticks as + their starting time. + + + + + Creates and starts a new MiniProfiler for the root , filtering steps to . + + + + + Returns the 's and this profiler recorded. + + + + + Returns true if Ids match. + + + + + Returns hashcode of Id. + + + + + Obsolete - used for serialization. + + + + + Walks the hierarchy contained in this profiler, starting with , and returns each Timing found. + + + + + Returns milliseconds based on Stopwatch's Frequency. + + + + + Starts a new MiniProfiler based on the current . This new profiler can be accessed by + + + + + + Ends the current profiling session, if one exists. + + + When true, clears the for this HttpContext, allowing profiling to + be prematurely stopped and discarded. Useful for when a specific route does not need to be profiled. + + + + + Returns an that will time the code between its creation and disposal. Use this method when you + do not wish to include the MvcMiniProfiler namespace for the extension method. + + A descriptive name for the code that is encapsulated by the resulting IDisposable's lifetime. + This step's visibility level; allows filtering when is called. + + + + Returns the css and javascript includes needed to display the MiniProfiler results UI. + + Which side of the page the profiler popup button should be displayed on (defaults to left) + Whether to show trivial timings by default (defaults to false) + Whether to show time the time with children column by default (defaults to false) + The maximum number of trace popups to show before removing the oldest (defaults to 15) + xhtml rendering mode, ensure script tag is closed ... etc + when true, shows buttons to minimize and clear MiniProfiler results + Script and link elements normally; an empty string when there is no active profiling session. + + + + Renders the current to json. + + + + + Renders the parameter to json. + + + + + Deserializes the json string parameter to a . + + + + + Create a DEEP clone of this object + + + + + + Returns all currently open commands on this connection + + + + + Returns all results contained in all child steps. + + + + + Contains any sql statements that are executed, along with how many times those statements are executed. + + + + + Adds to the current . + + + + + Returns the number of sql statements of that were executed in all s. + + + + + Identifies this Profiler so it may be stored/cached. + + + + + A display name for this profiling session. + + + + + When this profiler was instantiated. + + + + + Where this profiler was run. + + + + + Allows filtering of steps based on what + the steps are created with. + + + + + The first that is created and started when this profiler is instantiated. + All other s will be children of this one. + + + + + A string identifying the user/client that is profiling this request. Set + with an -implementing class to provide a custom value. + + + If this is not set manually at some point, the implementation will be used; + by default, this will be the current request's ip address. + + + + + Returns true when this MiniProfiler has been viewed by the that recorded it. + + + Allows POSTs that result in a redirect to be profiled. implementation + will keep a list of all profilers that haven't been fetched down. + + + + + For unit testing, returns the timer. + + + + + Milliseconds, to one decimal place, that this MiniProfiler ran. + + + + + Returns true when or any of its are . + + + + + Returns true when all child s are . + + + + + Any Timing step with a duration less than or equal to this will be hidden by default in the UI; defaults to 2.0 ms. + + + + + Ticks since this MiniProfiler was started. + + + + + Json representing the collection of CustomTimings relating to this Profiler + + + Is used when storing the Profiler in SqlStorage + + + + + Points to the currently executing Timing. + + + + + Gets the currently running MiniProfiler for the current HttpContext; null if no MiniProfiler was ed. + + + + + Contains information about queries executed during this profiling session. + + + + + Milliseconds, to one decimal place, that this MiniProfiler was executing sql. + + + + + Returns true when we have profiled queries. + + + + + Returns true when any child Timings have duplicate queries. + + + + + How many sql data readers were executed in all steps. + + + + + How many sql scalar queries were executed in all steps. + + + + + How many sql non-query statements were executed in all steps. + + + + + Various configuration properties. + + + + + Excludes the specified assembly from the stack trace output. + + The short name of the assembly. AssemblyName.Name + + + + Excludes the specified type from the stack trace output. + + The System.Type name to exclude + + + + Excludes the specified method name from the stack trace output. + + The name of the method + + + + Make sure we can at least store profiler results to the http runtime cache. + + + + + Assemblies to exclude from the stack trace report. + + + + + Types to exclude from the stack trace report. + + + + + Methods to exclude from the stack trace report. + + + + + The max length of the stack string to report back; defaults to 120 chars. + + + + + Any Timing step with a duration less than or equal to this will be hidden by default in the UI; defaults to 2.0 ms. + + + + + Dictates if the "time with children" column is displayed by default, defaults to false. + For a per-page override you can use .RenderIncludes(showTimeWithChildren: true/false) + + + + + Dictates if trivial timings are displayed by default, defaults to false. + For a per-page override you can use .RenderIncludes(showTrivial: true/false) + + + + + Determines how many traces to show before removing the oldest; defaults to 15. + For a per-page override you can use .RenderIncludes(maxTracesToShow: 10) + + + + + Dictates on which side of the page the profiler popup button is displayed; defaults to left. + For a per-page override you can use .RenderIncludes(position: RenderPosition.Left/Right) + + + + + Determines if min-max, clear, etc are rendered; defaults to false. + For a per-page override you can use .RenderIncludes(showControls: true/false) + + + + + By default, SqlTimings will grab a stack trace to help locate where queries are being executed. + When this setting is true, no stack trace will be collected, possibly improving profiler performance. + + + + + When is called, if the current request url contains any items in this property, + no profiler will be instantiated and no results will be displayed. + Default value is { "/ssr-", "/content/", "/scripts/", "/favicon.ico" }. + + + + + The path under which ALL routes are registered in, defaults to the application root. For example, "~/myDirectory/" would yield + "/myDirectory/ssr-includes.js" rather than just "/mini-profiler-includes.js" + Any setting here should be in APP RELATIVE FORM, e.g. "~/myDirectory/" + + + + + Understands how to save and load MiniProfilers. Used for caching between when + a profiling session ends and results can be fetched to the client, and for showing shared, full-page results. + + + The normal profiling session life-cycle is as follows: + 1) request begins + 2) profiler is started + 3) normal page/controller/request execution + 4) profiler is stopped + 5) profiler is cached with 's implementation of + 6) request ends + 7) page is displayed and profiling results are ajax-fetched down, pulling cached results from + 's implementation of + + + + + The formatter applied to the SQL being rendered (used only for UI) + + + + + Assembly version of this dank MiniProfiler. + + + + + The provider used to provider the current instance of a provider + This is also + + + + + A function that determines who can access the MiniProfiler results url. It should return true when + the request client has access, false for a 401 to be returned. HttpRequest parameter is the current request and + MiniProfiler parameter is the results that were profiled. + + + Both the HttpRequest and MiniProfiler parameters that will be passed into this function should never be null. + + + + + Allows switching out stopwatches for unit testing. + + + + + Categorizes individual steps to allow filtering. + + + + + Default level given to Timings. + + + + + Useful when profiling many items in a loop, but you don't wish to always see this detail. + + + + + Dictates on which side of the page the profiler popup button is displayed; defaults to left. + + + + + Profiler popup button is displayed on the left. + + + + + Profiler popup button is displayed on the right. + + + + + Contains helper methods that ease working with null s. + + + + + Wraps in a call and executes it, returning its result. + + The current profiling session or null. + Method to execute and profile. + The step name used to label the profiler results. + + + + + Returns an that will time the code between its creation and disposal. + + The current profiling session or null. + A descriptive name for the code that is encapsulated by the resulting IDisposable's lifetime. + This step's visibility level; allows filtering when is called. + + + + Adds 's hierarchy to this profiler's current Timing step, + allowing other threads, remote calls, etc. to be profiled and joined into this profiling session. + + + + + Returns an html-encoded string with a text-representation of ; returns "" when profiler is null. + + The current profiling session or null. + + + + Formats any SQL query with inline parameters, optionally including the value type + + + + + Takes a SqlTiming and returns a formatted SQL string, for parameter replacement, etc. + + + + + Return SQL the way you want it to look on the in the trace. Usually used to format parameters + + + Formatted SQL + + + + Creates a new Inline SQL Formatter, optionally including the parameter type info in comments beside the replaced value + + whether to include a comment after the value, indicating the type, e.g. /* @myParam DbType.Int32 */ + + + + Formats the SQL in a generic frieldly format, including the parameter type information in a comment if it was specified in the InlineFormatter constructor + + The SqlTiming to format + A formatted SQL string + + + + Returns a string representation of the parameter's value, including the type + + The parameter to get a value for + + + + + NOT IMPLEMENTED - will format statements with paramters in an Oracle friendly way + + + + + Does NOTHING, implement me! + + + + + Formats SQL server queries with a DECLARE up top for parameter values + + + + + Formats the SQL in a SQL-Server friendly way, with DECLARE statements for the parameters up top. + + The SqlTiming to format + A formatted SQL string + + + + Contains helper code to time sql statements. + + + + + Returns a new SqlProfiler to be used in the 'profiler' session. + + + + + Tracks when 'command' is started. + + + + + Returns all currently open commands on this connection + + + + + Finishes profiling for 'command', recording durations. + + + + + Called when 'reader' finishes its iterations and is closed. + + + + + The profiling session this SqlProfiler is part of. + + + + + Helper methods that allow operation on SqlProfilers, regardless of their instantiation. + + + + + Tracks when 'command' is started. + + + + + Finishes profiling for 'command', recording durations. + + + + + Called when 'reader' finishes its iterations and is closed. + + + + + Profiles a single sql execution. + + + + + Creates a new SqlTiming to profile 'command'. + + + + + Obsolete - used for serialization. + + + + + Returns a snippet of the sql command and the duration. + + + + + Returns true if Ids match. + + + + + Returns hashcode of Id. + + + + + Called when command execution is finished to determine this SqlTiming's duration. + + + + + Called when database reader is closed, ending profiling for SqlTimings. + + + + + To help with display, put some space around sammiched commas + + + + + Unique identifier for this SqlTiming. + + + + + Category of sql statement executed. + + + + + The sql that was executed. + + + + + The command string with special formatting applied based on MiniProfiler.Settings.SqlFormatter + + + + + Roughly where in the calling code that this sql was executed. + + + + + Offset from main MiniProfiler start that this sql began. + + + + + How long this sql statement took to execute. + + + + + When executing readers, how long it took to come back initially from the database, + before all records are fetched and reader is closed. + + + + + Stores any parameter names and values used by the profiled DbCommand. + + + + + Id of the Timing this statement was executed in. + + + Needed for database deserialization. + + + + + The Timing step that this sql execution occurred in. + + + + + True when other identical sql statements have been executed during this MiniProfiler session. + + + + + Information about a DbParameter used in the sql statement profiled by SqlTiming. + + + + + Returns true if this has the same parent , and as . + + + + + Returns the XOR of certain properties. + + + + + Which SqlTiming this Parameter was executed with. + + + + + Parameter name, e.g. "@routeName" + + + + + The value submitted to the database. + + + + + System.Data.DbType, e.g. "String", "Bit" + + + + + How large the type is, e.g. for string, size could be 4000 + + + + + Understands how to save MiniProfiler results to a MSSQL database, allowing more permanent storage and + querying of slow results. + + + + + Provides saving and loading s to a storage medium. + + + + + Stores under its . + + The results of a profiling session. + + Should also ensure the profiler is stored as being unviewed by its profiling . + + + + + Returns a from storage based on , which should map to . + + + Should also update that the resulting profiler has been marked as viewed by its profiling . + + + + + Returns a list of s that haven't been seen by . + + User identified by the current . + + + + Returns a new SqlServerDatabaseStorage object that will insert into the database identified by connectionString. + + + + + Saves 'profiler' to a database under its . + + + + + Returns the MiniProfiler identified by 'id' from the database or null when no MiniProfiler exists under that 'id'. + + + + + Returns a list of s that haven't been seen by . + + User identified by the current . + + + + Returns a DbConnection for your specific provider. + + + + + Returns a DbConnection already opened for execution. + + + + + How we connect to the database used to save/load MiniProfiler results. + + + + + Understands how to store a to the with absolute expiration. + + + + + The string that prefixes all keys that MiniProfilers are saved under, e.g. + "mini-profiler-ecfb0050-7ce8-4bf1-bf82-2cb38e90e31e". + + + + + Returns a new HttpRuntimeCacheStorage class that will cache MiniProfilers for the specified duration. + + + + + Saves to the HttpRuntime.Cache under a key concated with + and the parameter's . + + + + + Returns the saved identified by . Also marks the resulting + profiler to true. + + + + + Returns a list of s that haven't been seen by . + + User identified by the current . + + + + Syncs access to runtime cache when adding a new list of ids for a user. + + + + + How long to cache each for (i.e. the absolute expiration parameter of + ) + + + + + An individual profiling step that can contain child steps. + + + + + Rebuilds all the parent timings on deserialization calls + + + + + Offset from parent MiniProfiler's creation that this Timing was created. + + + + + Creates a new Timing named 'name' in the 'profiler's session, with 'parent' as this Timing's immediate ancestor. + + + + + Obsolete - used for serialization. + + + + + Returns this Timing's Name. + + + + + Returns true if Ids match. + + + + + Returns hashcode of Id. + + + + + Adds arbitrary string 'value' under 'key', allowing custom properties to be stored in this Timing step. + + + + + Completes this Timing's duration and sets the MiniProfiler's Head up one level. + + + + + Add the parameter 'timing' to this Timing's Children collection. + + + Used outside this assembly for custom deserialization when creating an implementation. + + + + + Adds the parameter 'sqlTiming' to this Timing's SqlTimings collection. + + A sql statement profiling that was executed in this Timing step. + + Used outside this assembly for custom deserialization when creating an implementation. + + + + + Returns the number of sql statements of that were executed in this . + + + + + Unique identifer for this timing; set during construction. + + + + + Text displayed when this Timing is rendered. + + + + + How long this Timing step took in ms; includes any Timings' durations. + + + + + The offset from the start of profiling. + + + + + All sub-steps that occur within this Timing step. Add new children through + + + + + Stores arbitrary key/value strings on this Timing step. Add new tuples through . + + + + + Any queries that occurred during this Timing step. + + + + + Needed for database deserialization and JSON serialization. + + + + + Which Timing this Timing is under - the duration that this step takes will be added to its parent's duration. + + This will be null for the root (initial) Timing. + + + + Gets the elapsed milliseconds in this step without any children's durations. + + + + + Gets the aggregate elapsed milliseconds of all SqlTimings executed in this Timing, excluding Children Timings. + + + + + Returns true when this is less than the configured + , by default 2.0 ms. + + + + + Reference to the containing profiler, allowing this Timing to affect the Head and get Stopwatch readings. + + + + + Returns true when this Timing has inner Timing steps. + + + + + Returns true if this Timing step collected sql execution timings. + + + + + Returns true if any s executed in this step are detected as duplicate statements. + + + + + Returns true when this Timing is the first one created in a MiniProfiler session. + + + + + How far away this Timing is from the Profiler's Root. + + + + + How many sql data readers were executed in this Timing step. Does not include queries in any child Timings. + + + + + How many sql scalar queries were executed in this Timing step. Does not include queries in any child Timings. + + + + + How many sql non-query statements were executed in this Timing step. Does not include queries in any child Timings. + + + + + Understands how to route and respond to MiniProfiler UI urls. + + + + + Returns either includes' css/javascript or results' html. + + + + + Handles rendering static content files. + + + + + Handles rendering a previous MiniProfiler session, identified by its "?id=GUID" on the query. + + + + + Embedded resource contents keyed by filename. + + + + + Helper method that sets a proper 404 response code. + + + + + Try to keep everything static so we can easily be reused. + + + + + HttpContext based profiler provider. This is the default provider to use in a web context. + The current profiler is associated with a HttpContext.Current ensuring that profilers are + specific to a individual HttpRequest. + + + + + Public constructor. This also registers any UI routes needed to display results + + + + + Starts a new MiniProfiler and associates it with the current . + + + + + Ends the current profiling session, if one exists. + + + When true, clears the for this HttpContext, allowing profiling to + be prematurely stopped and discarded. Useful for when a specific route does not need to be profiled. + + + + + Makes sure 'profiler' has a Name, pulling it from route data or url. + + + + + Returns the current profiler + + + + + + Gets the currently running MiniProfiler for the current HttpContext; null if no MiniProfiler was ed. + + + + + WebRequestProfilerProvider specific configurations + + + + + Provides user identification for a given profiling request. + + + + + 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. + + + + + + If they don't have an ICacheClient configured use an In Memory one. + + + + + 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 + + + + + Lets you Register new Services and the optional restPaths will be registered against + this default Request Type + + + + + 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. + + + + + Scans the supplied Assemblies to infer REST paths and HTTP verbs. + + The instance. + + The assemblies with REST services. + + The same instance; + never . + + + + 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 + + + + + + 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. + + + + + 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 + + + + In Memory repository for files. Useful for testing. + + + + + Context to capture IService action + + + + + Get an IAppHost container. + Note: Registering dependencies should only be done during setup/configuration + stage and remain immutable there after for thread-safety. + + + + + + + Ensure the same instance is used for subclasses + + + + + Called before page is executed + + + + + Called after page is executed but before it's merged with the + website template if any. + + + + + Don't HTML encode safe output + + + + + + + Return the output of a different view with the specified name + using the supplied model + + + + + + + + Resolve registered Assemblies + + + + + + Reference to MarkdownViewEngine + + + + + The AppHost so you can access configuration and resolve dependencies, etc. + + + + + This precompiled Markdown page with Metadata + + + + + ASP.NET MVC's HtmlHelper + + + + + All variables passed to and created by your page. + The Response DTO is stored and accessible via the 'Model' variable. + + All variables and outputs created are stored in ScopeArgs which is what's available + to your website template. The Generated page is stored in the 'Body' variable. + + + + + Whether HTML or Markdown output is requested + + + + + The Response DTO + + + + + 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.. + + + + + 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 + * + + + + 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 + + + + + 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 + + + + + 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. + + + + + + + + + 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 + + + + + Execute MQ + + + + + Execute MQ with requestContext + + + + + Execute using empty RequestContext + + + + + Execute HTTP + + + + + 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. + + + + + Inherit from this class if you want to host your web services inside an + ASP.NET application. + + + + + 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 + + + + 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 + + + + + when true, (most) bare plain URLs are auto-hyperlinked + WARNING: this is a significant deviation from the markdown spec + + + + + when true, RETURN becomes a literal newline + WARNING: this is a significant deviation from the markdown spec + + + + + use ">" for HTML output, or " />" for XHTML output + + + + + when true, problematic URL characters like [, ], (, and so forth will be encoded + WARNING: this is a significant deviation from the markdown spec + + + + + when false, email addresses will never be auto-linked + WARNING: this is a significant deviation from the markdown spec + + + + + when true, bold and italic require non-word characters on either side + WARNING: this is a significant deviation from the markdown spec + + + + + Markdown is a text-to-HTML conversion tool for web writers. + Markdown allows you to write using an easy-to-read, easy-to-write plain text format, + then convert it to structurally valid XHTML (or HTML). + + + + + Tabs are automatically converted to spaces as part of the transform + this constant determines how "wide" those tabs become in spaces + + + + + Create a new Markdown instance using default options + + + + + Create a new Markdown instance and optionally load options from a configuration + file. There they should be stored in the appSettings section, available options are: + + Markdown.StrictBoldItalic (true/false) + Markdown.EmptyElementSuffix (">" or " />" without the quotes) + Markdown.LinkEmails (true/false) + Markdown.AutoNewLines (true/false) + Markdown.AutoHyperlink (true/false) + Markdown.EncodeProblemUrlCharacters (true/false) + + + + + + Create a new Markdown instance and set the options from the MarkdownOptions object. + + + + + maximum nested depth of [] and () supported by the transform; implementation detail + + + + + In the static constuctor we'll initialize what stays the same across all transforms. + + + + + Transforms the provided Markdown-formatted text to HTML; + see http://en.wikipedia.org/wiki/Markdown + + + The order in which other subs are called here is + essential. Link and image substitutions need to happen before + EscapeSpecialChars(), so that any *'s or _'s in the a + and img tags get encoded. + + + + + Perform transformations that form block-level tags like paragraphs, headers, and list items. + + + + + Perform transformations that occur *within* block-level tags like paragraphs, headers, and list items. + + + + + splits on two or more newlines, to form "paragraphs"; + each paragraph is then unhashed (if it is a hash and unhashing isn't turned off) or wrapped in HTML p tag + + + + + Reusable pattern to match balanced [brackets]. See Friedl's + "Mastering Regular Expressions", 2nd Ed., pp. 328-331. + + + + + Reusable pattern to match balanced (parens). See Friedl's + "Mastering Regular Expressions", 2nd Ed., pp. 328-331. + + + + + Strips link definitions from text, stores the URLs and titles in hash references. + + + ^[id]: url "optional title" + + + + + derived pretty much verbatim from PHP Markdown + + + + + replaces any block-level HTML blocks with hash entries + + + + + returns an array of HTML tokens comprising the input string. Each token is + either a tag (possibly with nested, tags contained therein, such + as <a href="<MTFoo>">, or a run of text between tags. Each element of the + array is a two-element array; the first is either 'tag' or 'text'; the second is + the actual value. + + + + + Turn Markdown link shortcuts into HTML anchor tags + + + [link text](url "title") + [link text][id] + [id] + + + + + Turn Markdown image shortcuts into HTML img tags. + + + ![alt text][id] + ![alt text](url "optional title") + + + + + Turn Markdown headers into HTML header tags + + + Header 1 + ======== + + Header 2 + -------- + + # Header 1 + ## Header 2 + ## Header 2 with closing hashes ## + ... + ###### Header 6 + + + + + Turn Markdown horizontal rules into HTML hr tags + + + *** + * * * + --- + - - - + + + + + Turn Markdown lists into HTML ul and ol and li tags + + + + + Process the contents of a single ordered or unordered list, splitting it + into individual list items. + + + + + /// Turn Markdown 4-space indented code into HTML pre code blocks + + + + + Turn Markdown `code spans` into HTML code tags + + + + + Turn Markdown *italics* and **bold** into HTML strong and em tags + + + + + Turn markdown line breaks (two space at end of line) into HTML break tags + + + + + Turn Markdown > quoted blocks into HTML blockquote blocks + + + + + Turn angle-delimited URLs into HTML anchor tags + + + <http://www.example.com> + + + + + Remove one level of line-leading spaces + + + + + encodes email address randomly + roughly 10% raw, 45% hex, 45% dec + note that @ is always encoded and : never is + + + + + Encode/escape certain Markdown characters inside code blocks and spans where they are literals + + + + + Encode any ampersands (that aren't part of an HTML entity) and left or right angle brackets + + + + + Encodes any escaped characters such as \`, \*, \[ etc + + + + + swap back in all the special characters we've hidden + + + + + escapes Bold [ * ] and Italic [ _ ] characters + + + + + hex-encodes some unusual "problem" chars in URLs to avoid URL detection problems + + + + + Within tags -- meaning between < and > -- encode [\ ` * _] so they + don't conflict with their use in Markdown for code, italics and strong. + We're replacing each such character with its corresponding hash + value; this is likely overkill, but it should prevent us from colliding + with the escape values by accident. + + + + + convert all tabs to _tabWidth spaces; + standardizes line endings from DOS (CR LF) or Mac (CR) to UNIX (LF); + makes sure text ends with a couple of newlines; + removes any blank lines (only spaces) in the text + + + + + this is to emulate what's evailable in PHP + + + + + use ">" for HTML output, or " />" for XHTML output + + + + + when false, email addresses will never be auto-linked + WARNING: this is a significant deviation from the markdown spec + + + + + when true, bold and italic require non-word characters on either side + WARNING: this is a significant deviation from the markdown spec + + + + + when true, RETURN becomes a literal newline + WARNING: this is a significant deviation from the markdown spec + + + + + when true, (most) bare plain URLs are auto-hyperlinked + WARNING: this is a significant deviation from the markdown spec + + + + + when true, problematic URL characters like [, ], (, and so forth will be encoded + WARNING: this is a significant deviation from the markdown spec + + + + + current version of MarkdownSharp; + see http://code.google.com/p/markdownsharp/ for the latest code or to contribute + + + + + Render Markdown for text/markdown and text/plain ContentTypes + + + + + Used in Unit tests + + + + + + Non ASP.NET requests + + + + + + + + ASP.NET requests + + + + + + 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 + + + + + Highly 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 + + + + + Changes the links for the servicestack/metadata page + + + + + Non ASP.NET requests + + + + + ASP.NET requests + + + + + Keep default file contents in-memory + + + + + + 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. + + + + diff --git a/src/Backbone.Todos/packages/ServiceStack.Client.4.0.11/ServiceStack.Client.4.0.11.nupkg b/src/Backbone.Todos/packages/ServiceStack.Client.4.0.11/ServiceStack.Client.4.0.11.nupkg new file mode 100644 index 00000000..729cf384 Binary files /dev/null and b/src/Backbone.Todos/packages/ServiceStack.Client.4.0.11/ServiceStack.Client.4.0.11.nupkg differ diff --git a/src/Backbone.Todos/packages/ServiceStack.Client.4.0.11/lib/net40/ServiceStack.Client.dll b/src/Backbone.Todos/packages/ServiceStack.Client.4.0.11/lib/net40/ServiceStack.Client.dll new file mode 100644 index 00000000..661af9fb Binary files /dev/null and b/src/Backbone.Todos/packages/ServiceStack.Client.4.0.11/lib/net40/ServiceStack.Client.dll differ diff --git a/src/Backbone.Todos/packages/ServiceStack.Client.4.0.11/lib/net40/ServiceStack.Client.xml b/src/Backbone.Todos/packages/ServiceStack.Client.4.0.11/lib/net40/ServiceStack.Client.xml new file mode 100644 index 00000000..1811c5ff --- /dev/null +++ b/src/Backbone.Todos/packages/ServiceStack.Client.4.0.11/lib/net40/ServiceStack.Client.xml @@ -0,0 +1,383 @@ + + + + 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 + + + + + Returns the next message from queueName or null if no message + + + + + + + Generic Proxy for service calls. + + The service Contract + + + + Returns the transparent proxy for the service call + + + + 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 + + + + + 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. + + + + + 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 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. + + + + + Gets the collection of headers to be added to outgoing requests. + + + + + 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. + + + + + 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 + + + + + Track any IDisposable's to dispose of at the end of the request in IAppHost.OnEndRequest() + + + + + + 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. + + + + + 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 + + + + Specifies if cookies should be stored + + + + + Compresses the specified text using the default compression method: Deflate + + The text. + Type of the compression. + + + + + Decompresses the specified gz buffer using the default compression method: Inflate + + The gz buffer. + Type of the compression. + + + + + 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. + + + + + Used if we need to serialize this exception to XML + + + + + + Returns the first error code + + The error code. + + + + Encapsulates a validation result. + + + + + 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 + + + + + + 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). + + + + + 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. + + + + + 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. + + + + + Gets the singleton instance. + + + + + Naming convention for the request's Response DTO + + + + + Shortcut to get the ResponseStatus whether it's bare or inside a IHttpResult + + + + + + diff --git a/src/Backbone.Todos/packages/ServiceStack.Client.4.0.11/lib/sl5/ServiceStack.Client.dll b/src/Backbone.Todos/packages/ServiceStack.Client.4.0.11/lib/sl5/ServiceStack.Client.dll new file mode 100644 index 00000000..51628a91 Binary files /dev/null and b/src/Backbone.Todos/packages/ServiceStack.Client.4.0.11/lib/sl5/ServiceStack.Client.dll differ diff --git a/src/Backbone.Todos/packages/ServiceStack.Common.4.0.11/ServiceStack.Common.4.0.11.nupkg b/src/Backbone.Todos/packages/ServiceStack.Common.4.0.11/ServiceStack.Common.4.0.11.nupkg new file mode 100644 index 00000000..050eb691 Binary files /dev/null and b/src/Backbone.Todos/packages/ServiceStack.Common.4.0.11/ServiceStack.Common.4.0.11.nupkg differ diff --git a/src/Backbone.Todos/packages/ServiceStack.Common.4.0.11/lib/net40/ServiceStack.Common.dll b/src/Backbone.Todos/packages/ServiceStack.Common.4.0.11/lib/net40/ServiceStack.Common.dll new file mode 100644 index 00000000..4c7a5afb Binary files /dev/null and b/src/Backbone.Todos/packages/ServiceStack.Common.4.0.11/lib/net40/ServiceStack.Common.dll differ diff --git a/src/Backbone.Todos/packages/ServiceStack.Common.4.0.11/lib/net40/ServiceStack.Common.xml b/src/Backbone.Todos/packages/ServiceStack.Common.4.0.11/lib/net40/ServiceStack.Common.xml new file mode 100644 index 00000000..109d91cf --- /dev/null +++ b/src/Backbone.Todos/packages/ServiceStack.Common.4.0.11/lib/net40/ServiceStack.Common.xml @@ -0,0 +1,206 @@ + + + + ServiceStack.Common + + + + + Useful .NET Encryption Utils from: + http://andrewlocatelliwoodcock.com/2011/08/01/implementing-rsa-asymmetric-public-private-key-encryption-in-c-encrypting-under-the-public-key/ + + + + + Encrypt an arbitrary string of data under the supplied public key + + The public key to encrypt under + The data to encrypt + The bit length or strength of the public key: 1024, 2048 or 4096 bits. This must match the + value actually used to create the publicKey + + + + + Create Public and Private Key Pair based on settings already in static class. + + RsaKeyPair + + + + Gets the textual description of the enum if it has one. e.g. + + + enum UserColors + { + [Description("Bright Red")] + BrightRed + } + UserColors.BrightRed.ToDescription(); + + + + + + + + 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. + + + + + 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. + + + + + + Func to get the Strongly-typed field + + + + + Required to cast the return ValueType to an object for caching + + + + + Func to set the Strongly-typed field + + + + + Required to cast the ValueType to an object for caching + + + + + Required to cast the ValueType to an object for caching + + + + + Func to get the Strongly-typed field + + + + + Required to cast the return ValueType to an object for caching + + + + + Func to set the Strongly-typed field + + + + + Required to cast the ValueType to an object for caching + + + + + Required to cast the ValueType to an object for caching + + + + + 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. + + + + + 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 + + + + + + + Provide the an option for the callee to block until all commands are executed + + + + + + + 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. + + + + diff --git a/src/Backbone.Todos/packages/ServiceStack.Interfaces.4.0.11/ServiceStack.Interfaces.4.0.11.nupkg b/src/Backbone.Todos/packages/ServiceStack.Interfaces.4.0.11/ServiceStack.Interfaces.4.0.11.nupkg new file mode 100644 index 00000000..4e4fca5b Binary files /dev/null and b/src/Backbone.Todos/packages/ServiceStack.Interfaces.4.0.11/ServiceStack.Interfaces.4.0.11.nupkg differ diff --git a/src/Backbone.Todos/packages/ServiceStack.Interfaces.4.0.11/lib/net40/ServiceStack.Interfaces.dll b/src/Backbone.Todos/packages/ServiceStack.Interfaces.4.0.11/lib/net40/ServiceStack.Interfaces.dll new file mode 100644 index 00000000..d13fea94 Binary files /dev/null and b/src/Backbone.Todos/packages/ServiceStack.Interfaces.4.0.11/lib/net40/ServiceStack.Interfaces.dll differ diff --git a/src/packages/ServiceStack.Common.3.9.63/lib/net35/ServiceStack.Interfaces.xml b/src/Backbone.Todos/packages/ServiceStack.Interfaces.4.0.11/lib/net40/ServiceStack.Interfaces.xml similarity index 67% rename from src/packages/ServiceStack.Common.3.9.63/lib/net35/ServiceStack.Interfaces.xml rename to src/Backbone.Todos/packages/ServiceStack.Interfaces.4.0.11/lib/net40/ServiceStack.Interfaces.xml index ed6a9cf1..fd6b0866 100644 --- a/src/packages/ServiceStack.Common.3.9.63/lib/net35/ServiceStack.Interfaces.xml +++ b/src/Backbone.Todos/packages/ServiceStack.Interfaces.4.0.11/lib/net40/ServiceStack.Interfaces.xml @@ -4,12 +4,17 @@ ServiceStack.Interfaces - + + + Required when using a TypeDescriptor to make it unique + + + A common interface implementation that is implemented by most cache providers - + Removes the specified item from the cache. @@ -18,13 +23,13 @@ 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. @@ -34,7 +39,7 @@ 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. @@ -47,7 +52,7 @@ 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. @@ -60,7 +65,7 @@ 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. @@ -71,22 +76,22 @@ 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. @@ -96,26 +101,26 @@ a Dictionary holding all items indexed by their key. - + Sets multiple items to the cache. The values. - + 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 light interface over a cache client. This interface was inspired by Enyim.Caching.MemcachedClient @@ -125,7 +130,7 @@ implemented in DdnMemcachedClient - + Removes the specified item from the cache. @@ -134,13 +139,13 @@ 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. @@ -149,7 +154,7 @@ 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. @@ -160,7 +165,7 @@ 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. @@ -171,7 +176,7 @@ 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. @@ -182,7 +187,7 @@ 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. @@ -191,12 +196,12 @@ 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. @@ -205,12 +210,12 @@ a Dictionary holding all items indexed by their key. - + A Users Session - + Set a typed value at key @@ -218,7 +223,7 @@ - + Get a typed value at key @@ -226,19 +231,19 @@ - + Store any object at key - + Retrieves a User Session - + Gets the session for this request, creates one if it doesn't exist. @@ -246,7 +251,7 @@ - + Gets the session for this request, creates one if it doesn't exist. Only for ASP.NET apps. Uses the HttpContext.Current singleton. @@ -271,22 +276,87 @@ - + - For providers that want a cleaner API with a little more perf + 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. + + + + + Explicit foreign key name. If it's null, or empty, the FK name will be autogenerated as before. + + + + + IgnoreAttribute + Use to indicate that a property is not a field in the table + properties with this attribute are ignored when building sql sentences + + + + + Primary key attribute. + use to indicate that property is part of the pk - - + - Manages a connection to a persistance provider + Used to annotate an Entity with its DB schema + + + + + + For providers that want a cleaner API with a little more perf + Decorate any type or property with adhoc info + + + Creates a Debug Logger, that logs all messages to: System.Diagnostics.Debug + + Made public so its testable + + + + + Factory to create ILog instances + + + + + Gets the logger. + + + + + Gets the logger. + + + + + Default logger is to System.Diagnostics.Debug.WriteLine + + Made public so its testable + + Logs a message in a running application @@ -400,300 +470,197 @@ true if this instance is debug enabled; otherwise, false. - - - Factory to create ILog instances - - - - - Gets the logger. - - The type. - - - - - Gets the logger. - - Name of the type. - - - + - Logging API for this library. You can inject your own implementation otherwise - will use the DebugLogFactory to write to System.Diagnostics.Debug + Initializes a new instance of the class. - + - Gets the logger. + Initializes a new instance of the class. - The type. - - + - Gets the logger. + Logs the specified message. - Name of the type. - - + - Gets or sets the log factory. - Use this to override the factory that is used to create loggers + Logs the format. - The log factory. - + - Creates a Console Logger, that logs all messages to: System.Console - - Made public so its testable + Logs the specified message. - + - Default logger is to Console.WriteLine + Default logger is to System.Diagnostics.Debug.Print 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. + Initializes a new instance of the class. - The message. - + - StringBuilderLog writes to shared StringBuffer. - Made public so its testable + Initializes a new instance of the class. - + Logs the specified message. - The message. - The exception. - + Logs the format. - The message. - The args. - + Logs the specified message. - The 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 - + StringBuilderLog writes to shared StringBuffer. Made public so its testable - + - Initializes a new instance of the class. + Logs the specified message. - The type. - + - Initializes a new instance of the class. + Logs the format. - The type. - + Logs the specified message. The message. - The exception. - - - - Logs the format. - - The message. - The args. - + - Logs the specified message. + Creates a test Logger, that stores all log messages in a member list - The message. - + - Default logger is to System.Diagnostics.Debug.Print + 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. + Initializes a new instance of the class. The type. - + - Initializes a new instance of the class. + 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. - - - Creates a Debug Logger, that logs all messages to: System.Diagnostics.Debug - - Made public so its testable - - - - - 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 + Contract indication that the Response DTO has a ResponseStatus - + - Initializes a new instance of the class. + Logging API for this library. You can inject your own implementation otherwise + will use the DebugLogFactory to write to System.Diagnostics.Debug - The type. - + - Initializes a new instance of the class. + Gets the logger. - The type. - + - Logs the specified message. + Gets the logger. - The message. - The exception. - + - Logs the format. + Gets or sets the log factory. + Use this to override the factory that is used to create loggers - The message. - The args. - + - Logs the specified message. + Publish the specified message into the durable queue @queueName - The message. - + - The same functionality is on IServiceResolver + Publish the specified message into the transient queue @queueName - + - Publish the specified message into the durable queue @queueName + Synchronous blocking get. - - - + - Publish the specified message into the transient queue @queueName + Non blocking get message - - - + - Synchronous blocking get. + Acknowledge the message has been successfully received or processed - - - - + - Non blocking get message + Negative acknowledgement the message was not processed correctly - - - + - Blocking wait for notifications on any of the supplied channels + Create a typed message from a raw MQ Response artefact - - @@ -753,22 +720,12 @@ Get a list of all message types registered on this MQ Host - - - An Error Message Type that can be easily serialized - - Basic implementation of IMessage[T] - - - Base Exception for all ServiceStack.Messaging exceptions - - Util static generic class to create unique queue names for types @@ -818,13 +775,6 @@ Interface to operations that allow queued commands to be completed - - - Returns a high-level typed client API - Shorter Alias is As<T>(); - - - Returns a high-level typed client API @@ -931,27 +881,27 @@ Interface to redis pipeline - + Gets or sets parameter name with which allowable values will be associated. - + The overall description of an API. Used by Swagger. - + 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, or header. - + Gets or sets unique name for the parameter. Each name must be unique, even if they are associated with different paramType values. @@ -964,86 +914,65 @@ - + 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. - + 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. - + The status code of a response - + The description of a response status code - - - If the Service also implements this interface, - IRestPutService.Options() will be used instead of IService.Execute() for - EndpointAttributes.HttpPut requests - - - - + Marker interfaces - - - Marker interface to mark an Express controller with different routes for each method - - - + Implement on Request DTOs that need access to the raw Request Stream - + The raw Http Request Input Stream - - - If the Service also implements this interface, - IAsyncService.ExecuteAsync() will be used instead of IService.Execute() for - EndpointAttributes.AsyncOneWay requests - - - - + Resolve a dependency from the AppHost's IOC - + 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. @@ -1051,363 +980,359 @@ The http response wrapper The request DTO - + A new shallow copy of this filter is used on every request. - + Order in which Request Filters are executed. <0 Executed before global request filters >0 Executed after global request filters - + 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 new shallow copy of this filter is used on every request. - + Order in which Response Filters are executed. <0 Executed before global response filters >0 Executed after global response filters - + The HTTP Response Status - + The HTTP Response Status Code - + The HTTP Status Description - + The HTTP Response ContentType - + Additional HTTP Headers - + Response DTO - + if not provided, get's injected by ServiceStack - + Holds the request call context - + A thin wrapper around ASP.NET or HttpListener's HttpRequest - + + + A thin wrapper around each host's Request e.g: ASP.NET, HttpListener, MQ, etc + + + The entire string contents of Request.InputStream - + The underlying ASP.NET or HttpListener HttpRequest - + The name of the service being called (e.g. Request DTO Name) - + + + The Verb / HttpMethod or Action for this request + + + + + Optional preferences for the processing of this Request + + + + + The Request DTO, after it has been deserialized. + + + The request ContentType - + 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. - + Buffer the Request InputStream so it can be re-read - + 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 X-Forwarded-For header, null if null or empty + e.g. is https or not - + - The value of the X-Real-IP header, null if null or empty + Access to the multi-part/formdata files posted on this request - + - e.g. is https or not + The value of the Referrer, null if not available - + - Access to the multi-part/formdata files posted on this request + The HttpResponse - + - The value of the Referrer, null if not available + 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 - + A thin wrapper around ASP.NET or HttpListener's HttpResponse - + + + A thin wrapper around each host's Response e.g: ASP.NET, HttpListener, MQ, etc + + + 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 - + The underlying ASP.NET or HttpListener HttpResponse - + + + The Response DTO + + + Gets a value indicating whether this instance is closed. - + Log every service request - + Log a request - The RequestContext + The RequestContext Request DTO Response DTO or Exception How long did the Request take - + View the most recent logs - + 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 access to /requestlogs service to role - + 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. - + Implement on services that need access to the RequestContext - - - If the Service also implements this interface, - IRestDeleteService.Delete() will be used instead of IService.Execute() for - EndpointAttributes.HttpDelete requests - - - - - - If the Service also implements this interface, - IRestGetService.Get() will be used instead of IService.Execute() for - EndpointAttributes.HttpGet requests - - - - - - If the Service also implements this interface, - IRestPutService.Patch() will be used instead of IService.Execute() for - EndpointAttributes.HttpPatch requests - - - - - - If the Service also implements this interface, - IRestPostService.Post() will be used instead of IService.Execute() for - EndpointAttributes.HttpPost requests - - - - - - If the Service also implements this interface, - IRestPutService.Put() will be used instead of IService.Execute() for - EndpointAttributes.HttpPut requests - - - - - - Utility interface that implements all Rest operations - - - - - - Base interface all webservices need to implement. - For simplicity this is the only interface you need to implement - - - - + 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. - - - - + - Allow the registration of custom routes + Executes the DTO request with an empty RequestContext. - + 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 RestServiceAttribute.Path + See RouteAttribute.Path for details on the correct format. - The same instance; + The same instance; never . - + Maps the specified REST path to the specified request DTO, and specifies the HTTP verbs supported by the path. @@ -1415,17 +1340,17 @@ The type of request DTO to map the path to. The path to map the request DTO to. - See RestServiceAttribute.Path + 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; + The same instance; never . - + Maps the specified REST path to the specified request DTO, specifies the HTTP verbs supported by the path, and indicates @@ -1435,16 +1360,27 @@ The type of request DTO to map the path to. The path to map the request DTO to. - See RestServiceAttribute.Path + 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; + 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 @@ -1454,7 +1390,7 @@ The type of request DTO to map the path to. The path to map the request DTO to. - See RestServiceAttribute.Path + See RouteAttribute.Path for details on the correct format. The comma-delimited list of HTTP verbs supported by the path, @@ -1466,39 +1402,39 @@ The longer text to explain the behaviour of the REST. - The same instance; + The same instance; never . - + 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. + Initializes an instance of the class. The path template to map to the request. See - RouteAttribute.Path + RouteAttribute.Path for details on the correct format. - + - Initializes an instance of the class. + Initializes an instance of the class. The path template to map to the request. See - RouteAttribute.Path + 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. @@ -1547,17 +1483,17 @@ 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". @@ -1567,130 +1503,97 @@ by the service, or empty if all verbs are supported. - + - Required when using a TypeDescriptor to make it unique + Used to rank the precedences of route definitions in reverse routing. + i.e. Priorities below 0 are auto-generated have less precedence. - + Fallback routes have the lowest precedence, i.e. after normal Routes, static files or any matching Catch All Handlers. - + 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 - - - + A log entry added by the IRequestLogger - - - 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 - RestServiceAttribute.Path - for details on the correct format. - - - - - Initializes an instance of the class. - - - The path template to map to the request. See - RestServiceAttribute.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. - - + Decorate on Request DTO's to alter the accessibility of a service and its visibility on /metadata pages - + 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 - + 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 and Local Intranet only - + Restrict access and hide from metadata to requests from Localhost 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 - + Converts from a User intended restriction to a flag with all the allowed attribute flags set, e.g: @@ -1705,39 +1608,39 @@ - + 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. + Initializes a new instance of the class. A response status without an errorcode == success - + - Initializes a new instance of the class. + Initializes a new instance of the class. A response status with an errorcode == failure - + - Initializes a new instance of the class. + 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 @@ -1745,59 +1648,38 @@ A value of non-null means the service encountered an error while processing the request. - + A human friendly error message - + - + For multiple detailed validation errors. Can hold a specific error message for each named field. - + Write a partial content result - + Whether this HttpResult allows Partial Response - + Sends the specified request. The request. - - - This instructs the generator tool to generate translator methods for the types supplied. - A {TypeName}.generated.cs partial class will be generated that contains the methods required - to generate to and from that type. - - - - - This instructs the generator tool to generate translator extension methods for the types supplied. - A {TypeName}.generated.cs static class will be generated that contains the extension methods required - to generate to and from that type. - - The source type is what the type the attribute is decorated on which can only be resolved at runtime. - - - - - This changes the default behaviour for the - - diff --git a/src/Backbone.Todos/packages/ServiceStack.Redis.4.0.11/ServiceStack.Redis.4.0.11.nupkg b/src/Backbone.Todos/packages/ServiceStack.Redis.4.0.11/ServiceStack.Redis.4.0.11.nupkg new file mode 100644 index 00000000..7df7840d Binary files /dev/null and b/src/Backbone.Todos/packages/ServiceStack.Redis.4.0.11/ServiceStack.Redis.4.0.11.nupkg differ diff --git a/src/packages/ServiceStack.Redis.3.9.63/lib/net35/ServiceStack.Redis.XML b/src/Backbone.Todos/packages/ServiceStack.Redis.4.0.11/lib/net40/ServiceStack.Redis.XML similarity index 94% rename from src/packages/ServiceStack.Redis.3.9.63/lib/net35/ServiceStack.Redis.XML rename to src/Backbone.Todos/packages/ServiceStack.Redis.4.0.11/lib/net40/ServiceStack.Redis.XML index 66c189e5..2cfb309b 100644 --- a/src/packages/ServiceStack.Redis.3.9.63/lib/net35/ServiceStack.Redis.XML +++ b/src/Backbone.Todos/packages/ServiceStack.Redis.4.0.11/lib/net40/ServiceStack.Redis.XML @@ -87,76 +87,6 @@ Redis operation (transaction/pipeline) that allows queued commands to be completed - - - Creates an MQ Host that processes all messages on a single background thread. - i.e. If you register 3 handlers it will only create 1 background thread. - - The same background thread that listens to the Redis MQ Subscription for new messages - also cycles through each registered handler processing all pending messages one-at-a-time: - first in the message PriorityQ, then in the normal message InQ. - - The Start/Stop methods are idempotent i.e. It's safe to call them repeatedly on multiple threads - and the Redis MQ Host will only have Started/Stopped once. - - - - - Inject your own Reply Client Factory to handle custom Message.ReplyTo urls. - - - - - 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 - - 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. - - Ignore dispose on RedisClientsManager, which should be registered as a singleton @@ -799,16 +729,6 @@ Wrap the common redis set operations under a ICollection[string] interface. - - - 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. - - Redis-specific exception. Thrown if unable to connect to Redis server due to socket exception, for example. diff --git a/src/Backbone.Todos/packages/ServiceStack.Redis.4.0.11/lib/net40/ServiceStack.Redis.dll b/src/Backbone.Todos/packages/ServiceStack.Redis.4.0.11/lib/net40/ServiceStack.Redis.dll new file mode 100644 index 00000000..d7469c0d Binary files /dev/null and b/src/Backbone.Todos/packages/ServiceStack.Redis.4.0.11/lib/net40/ServiceStack.Redis.dll differ diff --git a/src/Backbone.Todos/packages/ServiceStack.Text.4.0.11/ServiceStack.Text.4.0.11.nupkg b/src/Backbone.Todos/packages/ServiceStack.Text.4.0.11/ServiceStack.Text.4.0.11.nupkg new file mode 100644 index 00000000..9ff6da54 Binary files /dev/null and b/src/Backbone.Todos/packages/ServiceStack.Text.4.0.11/ServiceStack.Text.4.0.11.nupkg differ diff --git a/src/Backbone.Todos/packages/ServiceStack.Text.4.0.11/lib/net40/ServiceStack.Text.dll b/src/Backbone.Todos/packages/ServiceStack.Text.4.0.11/lib/net40/ServiceStack.Text.dll new file mode 100644 index 00000000..30eee22c Binary files /dev/null and b/src/Backbone.Todos/packages/ServiceStack.Text.4.0.11/lib/net40/ServiceStack.Text.dll differ diff --git a/src/packages/ServiceStack.Text.3.9.63/lib/net35/ServiceStack.Text.XML b/src/Backbone.Todos/packages/ServiceStack.Text.4.0.11/lib/net40/ServiceStack.Text.xml similarity index 80% rename from src/packages/ServiceStack.Text.3.9.63/lib/net35/ServiceStack.Text.XML rename to src/Backbone.Todos/packages/ServiceStack.Text.4.0.11/lib/net40/ServiceStack.Text.xml index 69e1af3b..9688d3e1 100644 --- a/src/packages/ServiceStack.Text.3.9.63/lib/net35/ServiceStack.Text.XML +++ b/src/Backbone.Todos/packages/ServiceStack.Text.4.0.11/lib/net40/ServiceStack.Text.xml @@ -29,6 +29,21 @@ The type if it exists + + + Populate an object with Example data. + + + + + + + Populates the object with example data. + + + Tracks how deeply nested we are + + If AlwaysUseUtc is set to true then convert all DateTime to UTC. @@ -36,6 +51,14 @@ + + + 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)/ @@ -75,11 +98,6 @@ A fast, standards-based, serialization-issue free DateTime serailizer. - - - A hashset implementation that uses an IDictionary - - Determines whether this serializer can create the specified type from a string. @@ -136,7 +154,7 @@ to support web-friendly serialized formats, ie emitting lowercase_underscore_casing for JSON - + Define how property names are mapped during deserialization @@ -249,22 +267,22 @@ Whether there is a fn (raw or otherwise) - + 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 @@ -345,6 +363,16 @@ + + + Public Code API to register commercial license for ServiceStack. + + + + + Internal Utilities to verify licensing + + Pretty Thread-Safe cache class from: @@ -416,31 +444,85 @@ Get or set the value of a named member on the target instance - + + + Maps the path of a file in the context of a VS project + + 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 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 + + 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 + + + + + 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. + + + @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 @@ -448,54 +530,54 @@ 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 @@ -504,7 +586,7 @@ To. - + Skip the encoding process for 'safe strings' diff --git a/src/Backbone.Todos/packages/repositories.config b/src/Backbone.Todos/packages/repositories.config new file mode 100644 index 00000000..0dec135f --- /dev/null +++ b/src/Backbone.Todos/packages/repositories.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/Docs/Docs.Logic/CategoryService.cs b/src/Docs/Docs.Logic/CategoryService.cs index 06b9d095..d51c6723 100644 --- a/src/Docs/Docs.Logic/CategoryService.cs +++ b/src/Docs/Docs.Logic/CategoryService.cs @@ -1,6 +1,5 @@ using System.Collections.Generic; -using ServiceStack.Common.Extensions; -using ServiceStack.ServiceInterface; +using ServiceStack; namespace Docs.Logic { diff --git a/src/Docs/Docs.Logic/Docs.Logic.csproj b/src/Docs/Docs.Logic/Docs.Logic.csproj index b8691780..50c07eb2 100644 --- a/src/Docs/Docs.Logic/Docs.Logic.csproj +++ b/src/Docs/Docs.Logic/Docs.Logic.csproj @@ -10,8 +10,9 @@ Properties Docs.Logic Docs.Logic - v3.5 + v4.5 512 + true @@ -21,6 +22,7 @@ DEBUG;TRACE prompt 4 + false pdbonly @@ -29,31 +31,28 @@ TRACE prompt 4 + false - - ..\..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.dll + + ..\..\packages\ServiceStack.4.5.0\lib\net45\ServiceStack.dll + True - - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Common.dll + + ..\..\packages\ServiceStack.Client.4.5.0\lib\net45\ServiceStack.Client.dll + True - - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Interfaces.dll + + ..\..\packages\ServiceStack.Common.4.5.0\lib\net45\ServiceStack.Common.dll + True - - ..\..\packages\ServiceStack.OrmLite.SqlServer.3.9.63\lib\net35\ServiceStack.OrmLite.dll + + ..\..\packages\ServiceStack.Interfaces.4.5.0\lib\portable-wp80+sl5+net45+win8+wpa81+monotouch+monoandroid+xamarin.ios10\ServiceStack.Interfaces.dll + True - - ..\..\packages\ServiceStack.OrmLite.SqlServer.3.9.63\lib\net35\ServiceStack.OrmLite.SqlServer.dll - - - ..\..\packages\ServiceStack.Redis.3.9.63\lib\net35\ServiceStack.Redis.dll - - - ..\..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.ServiceInterface.dll - - - ..\..\packages\ServiceStack.Text.3.9.63\lib\net35\ServiceStack.Text.dll + + ..\..\packages\ServiceStack.Text.4.5.0\lib\net45\ServiceStack.Text.dll + True diff --git a/src/Docs/Docs.Logic/Extensions.cs b/src/Docs/Docs.Logic/Extensions.cs index 1eca713f..3343a665 100644 --- a/src/Docs/Docs.Logic/Extensions.cs +++ b/src/Docs/Docs.Logic/Extensions.cs @@ -1,5 +1,5 @@ using System.Text.RegularExpressions; -using ServiceStack.Text; +using ServiceStack; namespace Docs.Logic { diff --git a/src/Docs/Docs.Logic/PageManager.cs b/src/Docs/Docs.Logic/PageManager.cs index 1cd609b8..56ddca52 100644 --- a/src/Docs/Docs.Logic/PageManager.cs +++ b/src/Docs/Docs.Logic/PageManager.cs @@ -2,9 +2,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; -using ServiceStack.Common.Extensions; -using ServiceStack.ServiceHost; -using ServiceStack.Text; +using ServiceStack; namespace Docs.Logic { @@ -36,7 +34,7 @@ public void Init(string filePath, string baseUrl) } this.PageMap = new Dictionary(StringComparer.CurrentCultureIgnoreCase); - Pages.Where(x => !x.FilePath.IsNullOrEmpty()).ForEach(x => PageMap[x.FilePath] = x); + Pages.Where(x => !x.FilePath.IsNullOrEmpty()).Each(x => PageMap[x.FilePath] = x); CategoriesMap = new Dictionary>(StringComparer.CurrentCultureIgnoreCase); foreach (var page in Pages) diff --git a/src/Docs/Docs.Logic/PageService.cs b/src/Docs/Docs.Logic/PageService.cs index 3002db38..7734ae52 100644 --- a/src/Docs/Docs.Logic/PageService.cs +++ b/src/Docs/Docs.Logic/PageService.cs @@ -2,9 +2,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; -using ServiceStack.ServiceClient.Web; -using ServiceStack.ServiceInterface; -using ServiceStack.Text; +using ServiceStack; namespace Docs.Logic { diff --git a/src/Docs/Docs.Logic/SearchService.cs b/src/Docs/Docs.Logic/SearchService.cs index da7d5cac..9fdd7dea 100644 --- a/src/Docs/Docs.Logic/SearchService.cs +++ b/src/Docs/Docs.Logic/SearchService.cs @@ -1,8 +1,6 @@ using System; using System.Collections.Generic; -using ServiceStack.ServiceInterface; -using ServiceStack.ServiceInterface.ServiceModel; -using ServiceStack.Text; +using ServiceStack; namespace Docs.Logic { diff --git a/src/Docs/Docs.Logic/packages.config b/src/Docs/Docs.Logic/packages.config index f57348a5..6b7d575f 100644 --- a/src/Docs/Docs.Logic/packages.config +++ b/src/Docs/Docs.Logic/packages.config @@ -1,8 +1,8 @@  - - - - - + + + + + \ No newline at end of file diff --git a/src/Docs/Docs.csproj b/src/Docs/Docs.csproj index 79f3f3ef..648f32ac 100644 --- a/src/Docs/Docs.csproj +++ b/src/Docs/Docs.csproj @@ -13,7 +13,7 @@ Properties Docs Docs - v3.5 + v4.5 false @@ -24,6 +24,8 @@ + + true @@ -33,6 +35,7 @@ DEBUG;TRACE prompt 4 + false pdbonly @@ -41,44 +44,44 @@ TRACE prompt 4 + false - - ..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.dll + + ..\packages\ServiceStack.4.5.0\lib\net45\ServiceStack.dll + True - - ..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Common.dll + + ..\packages\ServiceStack.Client.4.5.0\lib\net45\ServiceStack.Client.dll + True - - ..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Interfaces.dll + + ..\packages\ServiceStack.Common.4.5.0\lib\net45\ServiceStack.Common.dll + True - - ..\packages\ServiceStack.OrmLite.SqlServer.3.9.63\lib\net35\ServiceStack.OrmLite.dll + + ..\packages\ServiceStack.Interfaces.4.5.0\lib\portable-wp80+sl5+net45+win8+wpa81+monotouch+monoandroid+xamarin.ios10\ServiceStack.Interfaces.dll + True - - ..\packages\ServiceStack.OrmLite.SqlServer.3.9.63\lib\net35\ServiceStack.OrmLite.SqlServer.dll - - - ..\packages\ServiceStack.Redis.3.9.63\lib\net35\ServiceStack.Redis.dll - - - ..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.ServiceInterface.dll - - - ..\packages\ServiceStack.Text.3.9.63\lib\net35\ServiceStack.Text.dll + + ..\packages\ServiceStack.Text.4.5.0\lib\net45\ServiceStack.Text.dll + True - - + + + + + - + @@ -189,6 +192,11 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Docs/examples/servicestack-examples.md b/src/Docs/examples/servicestack-examples.md index e750eef9..403f8aa6 100644 --- a/src/Docs/examples/servicestack-examples.md +++ b/src/Docs/examples/servicestack-examples.md @@ -8,29 +8,29 @@ for twitter updates. A live demo and tutorials are available at the following locations: -### [Backbone.js TODO app with REST and Redis backend](http://servicestack.net/Backbone.Todos/) -[![Backbone REST and Redis TODOs](http://servicestack.net/showcase/img/todos-400x350.png)](http://servicestack.net/Backbone.Todos/) +### [Backbone.js TODO app with REST and Redis backend](http://mono.servicestack.net/Backbone.Todos/) +[![Backbone REST and Redis TODOs](http://mono.servicestack.net/showcase/img/todos-400x350.png)](http://mono.servicestack.net/Backbone.Todos/) -### [Creating a Hello World Web service from scratch](http://servicestack.net/ServiceStack.Hello/) -[![ServiceStacks Hello, World!](http://servicestack.net/showcase/img/hello-400x350.png)](http://servicestack.net/ServiceStack.Hello/) +### [Creating a Hello World Web service from scratch](http://mono.servicestack.net/ServiceStack.Hello/) +[![ServiceStacks Hello, World!](http://mono.servicestack.net/showcase/img/hello-400x350.png)](http://mono.servicestack.net/ServiceStack.Hello/) -### [GitHub-like browser to manage remote filesystem over REST](http://servicestack.net/RestFiles/) -[![GitHub-like REST Files](http://servicestack.net/showcase/img/restfiles-400x350.png)](http://servicestack.net/RestFiles/) +### [GitHub-like browser to manage remote filesystem over REST](http://mono.servicestack.net/RestFiles/) +[![GitHub-like REST Files](http://mono.servicestack.net/showcase/img/restfiles-400x350.png)](http://mono.servicestack.net/RestFiles/) -### [Creating a StackOverflow-like app in Redis](http://servicestack.net/RedisStackOverflow/) -[![Redis StackOverflow](http://servicestack.net/showcase/img/redisstackoverflow-400x350.png)](http://servicestack.net/RedisStackOverflow/) +### [Creating a StackOverflow-like app in Redis](http://mono.servicestack.net/RedisStackOverflow/) +[![Redis StackOverflow](http://mono.servicestack.net/showcase/img/redisstackoverflow-400x350.png)](http://mono.servicestack.net/RedisStackOverflow/) -### [Complete REST Web service example](http://servicestack.net/ServiceStack.MovieRest/) -[![REST at the Movies!](http://servicestack.net/showcase/img/movierest-400x350.png)](http://servicestack.net/ServiceStack.MovieRest/) +### [Complete REST Web service example](http://mono.servicestack.net/ServiceStack.MovieRest/) +[![REST at the Movies!](http://mono.servicestack.net/showcase/img/movierest-400x350.png)](http://mono.servicestack.net/ServiceStack.MovieRest/) -### [Calling Web Services with Ajax](http://servicestack.net/ServiceStack.Examples.Clients/) -[![Ajax Example](http://servicestack.net/showcase/img/ajaxexample-400x350.png)](http://servicestack.net/ServiceStack.Examples.Clients/) +### [Calling Web Services with Ajax](http://mono.servicestack.net/ServiceStack.Examples.Clients/) +[![Ajax Example](http://mono.servicestack.net/showcase/img/ajaxexample-400x350.png)](http://mono.servicestack.net/ServiceStack.Examples.Clients/) ### Other examples * [Calling Web Services with Mono Touch](http://www.servicestack.net/monotouch/remote-info/) -* [Calling Web Services using Silverlight](http://servicestack.net/ServiceStack.Examples.Clients/Silverlight.htm) -* [Calling SOAP 1.1 Web Service Examples](http://servicestack.net/ServiceStack.Examples.Clients/Soap11.aspx) -* [Calling SOAP 1.2 Web Service Examples](http://servicestack.net/ServiceStack.Examples.Clients/Soap12.aspx) +* [Calling Web Services using Silverlight](http://mono.servicestack.net/ServiceStack.Examples.Clients/Silverlight.htm) +* [Calling SOAP 1.1 Web Service Examples](http://mono.servicestack.net/ServiceStack.Examples.Clients/Soap11.aspx) +* [Calling SOAP 1.2 Web Service Examples](http://mono.servicestack.net/ServiceStack.Examples.Clients/Soap12.aspx) _All live examples hosted on CentOS/Nginx/FastCGI/Mono_ diff --git a/src/Docs/framework/caching-options.md b/src/Docs/framework/caching-options.md index bb039416..fa4d333d 100644 --- a/src/Docs/framework/caching-options.md +++ b/src/Docs/framework/caching-options.md @@ -8,11 +8,11 @@ for the following cache providers: # Live Example and code -A live demo of the ICacheClient is available in [The ServiceStack.Northwind's example project](http://servicestack.net/ServiceStack.Northwind/). Here are some requests to cached services: +A live demo of the ICacheClient is available in [The ServiceStack.Northwind's example project](http://mono.servicestack.net/ServiceStack.Northwind/). Here are some requests to cached services: - * [/customers](http://servicestack.net/ServiceStack.Northwind/cached/customers) - * [/customers/ALFKI](http://servicestack.net/ServiceStack.Northwind/cached/customers/ALFKI) - * [/customers/ALFKI/orders](http://servicestack.net/ServiceStack.Northwind/cached/customers/ALFKI/orders) + * [/customers](http://mono.servicestack.net/ServiceStack.Northwind/cached/customers) + * [/customers/ALFKI](http://mono.servicestack.net/ServiceStack.Northwind/cached/customers/ALFKI) + * [/customers/ALFKI/orders](http://mono.servicestack.net/ServiceStack.Northwind/cached/customers/ALFKI/orders) Which are simply existing web services wrapped using **ICacheClient** that are contained in [CachedServices.cs](https://github.com/ServiceStack/ServiceStack.Examples/blob/master/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceInterface/CachedServices.cs) diff --git a/src/Docs/framework/csv-format.md b/src/Docs/framework/csv-format.md index 8b868217..a0d008b2 100644 --- a/src/Docs/framework/csv-format.md +++ b/src/Docs/framework/csv-format.md @@ -58,7 +58,7 @@ This is how the above web service output looks when opened up in [google docs](h Alternative in following with the HTTP specification you can also specify content-type `"text/csv"` in the *Accept* header of your HttpClient, e.g: - var httpReq = (HttpWebRequest)WebRequest.Create("http://servicestack.net/ServiceStack.MovieRest/movies"); + var httpReq = (HttpWebRequest)WebRequest.Create("http://mono.servicestack.net/ServiceStack.MovieRest/movies"); httpReq.Accept = "text/csv"; var csv = new StreamReader(httpReq.GetResponse().GetResponseStream()).ReadToEnd(); diff --git a/src/Docs/framework/json-report-format.md b/src/Docs/framework/json-report-format.md index 8885d91f..940f0fb3 100644 --- a/src/Docs/framework/json-report-format.md +++ b/src/Docs/framework/json-report-format.md @@ -4,16 +4,16 @@ These examples are simply links to existing ServiceStack web services, which based on your browsers user-agent (i.e. Accept: 'text/html') provides this HTML format instead of the other serialization formats. - - **Northwind Database: ** [All Customers](http://servicestack.net/ServiceStack.Northwind/customers), [Customer Detail](http://servicestack.net/ServiceStack.Northwind/customers/ALFKI), [Customer Orders](http://servicestack.net/ServiceStack.Northwind/orders) - - **RedisStackOverflow: ** [Latest Questions](http://servicestack.net/RedisStackOverflow/questions) and [Site Stats](http://servicestack.net/RedisStackOverflow/stats) - - **RestMovies: ** [All Movie listings](http://servicestack.net/ServiceStack.MovieRest/movies) - - **RestFiles: ** [Root Directory](http://servicestack.net/RestFiles/files) + - **Northwind Database: ** [All Customers](http://mono.servicestack.net/ServiceStack.Northwind/customers), [Customer Detail](http://mono.servicestack.net/ServiceStack.Northwind/customers/ALFKI), [Customer Orders](http://mono.servicestack.net/ServiceStack.Northwind/orders) + - **RedisStackOverflow: ** [Latest Questions](http://mono.servicestack.net/RedisStackOverflow/questions) and [Site Stats](http://mono.servicestack.net/RedisStackOverflow/stats) + - **RestMovies: ** [All Movie listings](http://mono.servicestack.net/ServiceStack.MovieRest/movies) + - **RestFiles: ** [Root Directory](http://mono.servicestack.net/RestFiles/files) -[![HTML5 Report Format](http://servicestack.net/img/HTML5Format.png)](http://servicestack.net/ServiceStack.Northwind/customers/ALFKI) +[![HTML5 Report Format](http://mono.servicestack.net/img/HTML5Format.png)](http://mono.servicestack.net/ServiceStack.Northwind/customers/ALFKI) To see it in action, **view the source** in your browser. Webkit and Firefox users can simply go to the url below: - view-source:http://servicestack.net/ServiceStack.Northwind/customers/ALFKI + view-source:http://mono.servicestack.net/ServiceStack.Northwind/customers/ALFKI Note: To view the web services in a different format simply append **?format=[json|xml|html|csv|jsv]** to the query string. diff --git a/src/Docs/framework/nuget.md b/src/Docs/framework/nuget.md index 1d62faf6..6a6e543d 100644 --- a/src/Docs/framework/nuget.md +++ b/src/Docs/framework/nuget.md @@ -4,15 +4,15 @@ To make it easier for developers to get started we're now maintaining NuGet pack So if you have [NuGet](http://nuget.org) installed, the easiest way to get started is to create a new ASP.NET Web Application and install the **ServiceStack** package: -![Install-Package ServiceStack](http://servicestack.net/img/nuget-servicestack.png) +![Install-Package ServiceStack](http://mono.servicestack.net/img/nuget-servicestack.png) This automates the following manual steps: * Add the ServiceStack dlls to your standard VS.NET ASP.NET Web Application * Register the ServiceStack handler in your Web.Config * Configure your AppHost -* Create a **[Hello](http://servicestack.net/ServiceStack.Hello/)** web service -* Create a **[TODO](http://servicestack.net/Backbone.Todos/)** RESTful web service +* Create a **[Hello](http://mono.servicestack.net/ServiceStack.Hello/)** web service +* Create a **[TODO](http://mono.servicestack.net/Backbone.Todos/)** RESTful web service Although we believe this to be a popular starting point, it is not the only one as we have examples of Windows Services, Stand-alone Console Hosts, Hosting together with an existing web framework at a Custom Path - Templates available in the **/StarterTemplates** folder in the [ServiceStack.Examples project](https://github.com/ServiceStack/ServiceStack.Examples/downloads). @@ -27,11 +27,11 @@ Downloadable separately from ServiceStack itself is it's string powers. Inside [ * StringExtensions - Xml/Json/Csv/Url encoding, BaseConvert, Rot13, Hex escape, etc. * Stream, Reflection, List, DateTime, etc extensions and utils -![Install-Package ServiceStack.Text](http://servicestack.net/img/nuget-servicestack.text.png) +![Install-Package ServiceStack.Text](http://mono.servicestack.net/img/nuget-servicestack.text.png) ## NuGet ServiceStack.Redis -With a hope to introduce more .NET developers to the high-performance and productive NoSQL worlds, we also include a full-featured [C# Redis client](~/redis-client/redis-client) allowing you to build [complete apps with it](http://servicestack.net/RedisStackOverflow/). [Redis](http://redis.io/) is the fastest NoSQL database in the world that is capable of achieving [about 110000 SETs and 81000 GETs per second](http://redis.io/topics/benchmarks). +With a hope to introduce more .NET developers to the high-performance and productive NoSQL worlds, we also include a full-featured [C# Redis client](~/redis-client/redis-client) allowing you to build [complete apps with it](http://mono.servicestack.net/RedisStackOverflow/). [Redis](http://redis.io/) is the fastest NoSQL database in the world that is capable of achieving [about 110000 SETs and 81000 GETs per second](http://redis.io/topics/benchmarks). The C# Redis Client features: @@ -46,7 +46,7 @@ For .NET developers new to Redis, we invite you to check out the following tutor * [Designing a NoSQL Database using Redis](~/redis-client/designing-nosql-database) * [Painless data migrations with schema-less NoSQL datastores](~/redis-client/schemaless-nosql-migrations) -![Install-Package ServiceStack.Redis](http://servicestack.net/img/nuget-servicestack.redis.png) +![Install-Package ServiceStack.Redis](http://mono.servicestack.net/img/nuget-servicestack.redis.png) ## NuGet ServiceStack.OrmLite @@ -56,12 +56,12 @@ It's primary feature over other ORMs is its auto-support for blobs where any com Currently OrmLite comes in SQLite and SQL Server RDBMS's flavors and each are downloadable separately via NuGet: -![Install-Package ServiceStack.OrmLite.SqlServer](http://servicestack.net/img/nuget-servicestack.ormlite.sqlserver.png) +![Install-Package ServiceStack.OrmLite.SqlServer](http://mono.servicestack.net/img/nuget-servicestack.ormlite.sqlserver.png) For Sqlite 32 and 64bit embedded .NET libraries are available: -![Install-Package ServiceStack.OrmLite.Sqlite32](http://servicestack.net/img/nuget-servicestack.ormlite.sqlite32.png) +![Install-Package ServiceStack.OrmLite.Sqlite32](http://mono.servicestack.net/img/nuget-servicestack.ormlite.sqlite32.png) -![Install-Package ServiceStack.OrmLite.Sqlite64](http://servicestack.net/img/nuget-servicestack.ormlite.sqlite64.png) +![Install-Package ServiceStack.OrmLite.Sqlite64](http://mono.servicestack.net/img/nuget-servicestack.ormlite.sqlite64.png) diff --git a/src/Docs/framework/overview.md b/src/Docs/framework/overview.md index 923c069f..d2cca930 100644 --- a/src/Docs/framework/overview.md +++ b/src/Docs/framework/overview.md @@ -140,14 +140,14 @@ Online tutorials that walks you through developing and calling web services is a Unlike other web services frameworks ServiceStack let's you develop web services using strongly-typed models and DTO's. This lets ServiceStack and other tools to have a greater intelligence about your services allowing: -- [Multiple serialization formats (JSON, XML, JSV and SOAP with extensible plugin model for more)](http://servicestack.net/ServiceStack.Hello/servicestack/metadata) +- [Multiple serialization formats (JSON, XML, JSV and SOAP with extensible plugin model for more)](http://mono.servicestack.net/ServiceStack.Hello/servicestack/metadata) - [A single re-usable C# Generic Client (In JSON, JSV, XML and SOAP flavors) that can talk to all your services.](https://github.com/ServiceStack/ServiceStack.Extras/blob/master/doc/UsageExamples/UsingServiceClients.cs) - [Re-use your Web Service DTOs (i.e. no code-gen) on your client applications so you're never out-of-sync](https://github.com/ServiceStack/ServiceStack.Extras/blob/master/doc/UsageExamples/UsingServiceClients.cs) - [Automatic serialization of Exceptions in your DTOs ResponseStatus](https://github.com/ServiceStack/ServiceStack/blob/master/src/ServiceStack.ServiceInterface/ServiceBase.cs#L154) - [The possibility of a base class for all your services to put high-level application logic (i.e security, logging, etc)](https://github.com/ServiceStack/ServiceStack/blob/master/src/ServiceStack.ServiceInterface/ServiceBase.cs#L24) - [Highly testable, your in-memory unit tests for your service can also be used as integration tests](https://github.com/ServiceStack/ServiceStack/blob/master/tests/ServiceStack.WebHost.IntegrationTests/Tests/WebServicesTests.cs) - [Built-in rolling web service error logging (if Redis is Configured in your AppHost)](https://github.com/ServiceStack/ServiceStack/blob/master/src/ServiceStack.ServiceInterface/ServiceBase.cs#L122) -- [Rich REST and HTML support on all web services with x-www-form-urlencoded & multipart/form-data (i.e. FORM posts and file uploads)](http://servicestack.net/ServiceStack.Hello/) +- [Rich REST and HTML support on all web services with x-www-form-urlencoded & multipart/form-data (i.e. FORM posts and file uploads)](http://mono.servicestack.net/ServiceStack.Hello/) ## Define web services following Martin Fowlers Data Transfer Object Pattern: diff --git a/src/Docs/framework/release-notes.md b/src/Docs/framework/release-notes.md index 57fb43a6..d6e52517 100644 --- a/src/Docs/framework/release-notes.md +++ b/src/Docs/framework/release-notes.md @@ -279,9 +279,9 @@ An example MonoTouch project that uses these Sync and Async C# ServiceClients to As we have received a number of requests to provide NuGet packages for ServiceStack and its components, we're now happy to say we're now NuGet compliant! Where a configured and working ServiceStack web framework is just 1 NuGet command away :) -[![Install-Package ServiceStack](http://servicestack.net/img/nuget-servicestack.png)](~/framework/nuget) +[![Install-Package ServiceStack](http://mono.servicestack.net/img/nuget-servicestack.png)](~/framework/nuget) -This will add the ServiceStack dlls to your standard VS.NET ASP.NET Web Application, Register ServiceStack handler in your Web.Config, configure your AppHost and create both a **[Hello](http://servicestack.net/ServiceStack.Hello/)** and a fully-operational **[TODO REST service](http://servicestack.net/Backbone.Todos/)**. +This will add the ServiceStack dlls to your standard VS.NET ASP.NET Web Application, Register ServiceStack handler in your Web.Config, configure your AppHost and create both a **[Hello](http://mono.servicestack.net/ServiceStack.Hello/)** and a fully-operational **[TODO REST service](http://mono.servicestack.net/Backbone.Todos/)**. Together with just 2 static content files ([default.htm](https://github.com/ServiceStack/ServiceStack/blob/master/NuGet/ServiceStack/content/default.htm) and [jqunback-1.51.js](https://github.com/AjaxStack/AjaxStack)) you get a fully configured and working RESTful application (*which as an aside benefit we hope encourages .NET developers into the [beautiful world of Backbone.js](http://documentcloud.github.com/backbone/) and Single Page Ajax Applications*). @@ -295,10 +295,10 @@ Although this normally shouldn't warrant a release line item, for the technology We believe the overview slides provide the best starting point for new developers looking to find out the benefits of ServiceStack and how they can easily develop REST services with it. Today, we're releasing the following 2 slides: ### [ServiceStack Overview and Features](https://docs.google.com/present/view?id=dg3mcfb_208gv3kcnd8) -[![Install-Package ServiceStack](http://servicestack.net/img/slides-01-overview-300.png)](https://docs.google.com/present/view?id=dg3mcfb_208gv3kcnd8) +[![Install-Package ServiceStack](http://mono.servicestack.net/img/slides-01-overview-300.png)](https://docs.google.com/present/view?id=dg3mcfb_208gv3kcnd8) ### [Creating REST Web Services](https://docs.google.com/present/view?id=dg3mcfb_213gsvvmmfk) -[![Install-Package ServiceStack](http://servicestack.net/img/slides-02-create-rest-service-300.png)](https://docs.google.com/present/view?id=dg3mcfb_213gsvvmmfk) +[![Install-Package ServiceStack](http://mono.servicestack.net/img/slides-02-create-rest-service-300.png)](https://docs.google.com/present/view?id=dg3mcfb_213gsvvmmfk) ## Better configuration @@ -344,7 +344,7 @@ From the [author](http://twitter.com/jashkenas) of the popular and game-changing Our first action was porting Backbone's example TODO app and replace its HTML5 localStorage backend with a ServiceStack REST + Redis one. This was quite easy to do and we were happy that [resulting C# server code for the REST backend](https://github.com/ServiceStack/ServiceStack.Examples/blob/master/src/Backbone.Todos/Global.asax.cs) ended up weighing in at less than the size of VS.NET's default Web.config file :) -Like the rest of our examples a **[live demo is available](http://servicestack.net/Backbone.Todos/)**. +Like the rest of our examples a **[live demo is available](http://mono.servicestack.net/Backbone.Todos/)**. ### TODO app now in all Starter templates @@ -466,25 +466,25 @@ I invite all ServiceStack users who want to share their generic high-level funct The biggest feature added in this release is likely the new HTML5 report format that generates a human-readable HTML view of your web services response when viewing it in a web browser. Good news is, like the [[ServiceStack-CSV-Format]] it works with your existing web services as-is, with no configuration or code-changes required. -[![HTML5 Report Format](http://servicestack.net/img/HTML5Format.png)](~/framework/json-report-format) +[![HTML5 Report Format](http://mono.servicestack.net/img/HTML5Format.png)](~/framework/json-report-format) Here are some results of web services created before the newer HTML5 and CSV formats existed: - * **RedisStackOverflow** [Latest Questions](http://servicestack.net/RedisStackOverflow/questions) - * **RestMovies** [All Movie listings](http://servicestack.net/ServiceStack.MovieRest/movies) - * **RestFiles** [Root Directory](http://servicestack.net/RestFiles/files) + * **RedisStackOverflow** [Latest Questions](http://mono.servicestack.net/RedisStackOverflow/questions) + * **RestMovies** [All Movie listings](http://mono.servicestack.net/ServiceStack.MovieRest/movies) + * **RestFiles** [Root Directory](http://mono.servicestack.net/RestFiles/files) Use the **?format=[json|xml|html|csv|jsv]** to toggle and view the same web service in different formats. ### New ServiceStack.Northwind Example project added In order to be able to better demonstrate features with a 'real-world' DataSet, a new ServiceStack.Northwind project has been added which inspects the Northwind dataset from an SQLite database. -A live demo is hosted at [[http://servicestack.net/ServiceStack.Northwind/]]. Here are some links below to better demonstrate the new HTML format with a real-world dataset: +A live demo is hosted at [[http://mono.servicestack.net/ServiceStack.Northwind/]]. Here are some links below to better demonstrate the new HTML format with a real-world dataset: #### Northwind Database REST web services - * [All Customers](http://servicestack.net/ServiceStack.Northwind/customers) - * [Customer Detail](http://servicestack.net/ServiceStack.Northwind/customers/ALFKI) - * [Customer Orders](http://servicestack.net/ServiceStack.Northwind/customers/ALFKI/orders) + * [All Customers](http://mono.servicestack.net/ServiceStack.Northwind/customers) + * [Customer Detail](http://mono.servicestack.net/ServiceStack.Northwind/customers/ALFKI) + * [Customer Orders](http://mono.servicestack.net/ServiceStack.Northwind/customers/ALFKI/orders) ### Improved Caching @@ -510,9 +510,9 @@ The above code caches the most optimal output based on browser capabilities, i.e To see the difference caching provides, here are cached equivalents of the above REST web service calls: #### Northwind Database **Cached** REST web services - * [All Customers](http://servicestack.net/ServiceStack.Northwind/cached/customers) - * [Customer Detail](http://servicestack.net/ServiceStack.Northwind/cached/customers/ALFKI) - * [Customer Orders](http://servicestack.net/ServiceStack.Northwind/cached/customers/ALFKI/orders) + * [All Customers](http://mono.servicestack.net/ServiceStack.Northwind/cached/customers) + * [Customer Detail](http://mono.servicestack.net/ServiceStack.Northwind/cached/customers/ALFKI) + * [Customer Orders](http://mono.servicestack.net/ServiceStack.Northwind/cached/customers/ALFKI/orders) ### API Changes @@ -538,9 +538,9 @@ Also added is the ability to resolve existing web services (already auto-wired b * [Async C# client examples](https://github.com/ServiceStack/ServiceStack.Examples/blob/master/src/RestFiles/RestFiles.Tests/AsyncRestClientTests.cs) ## New RestFiles project added to [ServiceStack.Examples](https://github.com/ServiceStack/ServiceStack.Examples/) GitHub project: -#### Live demo available at: [servicestack.net/RestFiles/](http://servicestack.net/RestFiles/) +#### Live demo available at: [servicestack.net/RestFiles/](http://mono.servicestack.net/RestFiles/) - * Provides a complete remote file system management over a [RESTful api](http://servicestack.net/RestFiles/servicestack/metadata) + * Provides a complete remote file system management over a [RESTful api](http://mono.servicestack.net/RestFiles/servicestack/metadata) * The complete RESTful /files web service implementation is only [**1 C# page class**](https://github.com/ServiceStack/ServiceStack.Examples/blob/master/src/RestFiles/RestFiles.ServiceInterface/FilesService.cs) * Includes a pure Ajax client to provide a **GitHub-like** file browsing experience, written in only [**1 static HTML page, using only jQuery**](https://github.com/ServiceStack/ServiceStack.Examples/blob/master/src/RestFiles/RestFiles/default.htm) * [C# integration test examples](https://github.com/ServiceStack/ServiceStack.Examples/blob/master/src/RestFiles/RestFiles.Tests/) are also included showing how to access this RESTful api over sync and async C# clients diff --git a/src/Docs/markdown/markdown-razor.md b/src/Docs/markdown/markdown-razor.md index 5a86731e..4f7b8dc9 100644 --- a/src/Docs/markdown/markdown-razor.md +++ b/src/Docs/markdown/markdown-razor.md @@ -16,7 +16,7 @@ You can define a base class for all your markdown pages by implementing **Markdo register it in your AppHost with: SetConfig(new EndpointHostConfig { - WebHostUrl = "http://servicestack.net/docs", //Replace prefix with the Url supplied + WebHostUrl = "http://mono.servicestack.net/docs", //Replace prefix with the Url supplied MarkdownBaseType = typeof(CustomMarkdownPage), //Set base class for all Markdown pages MarkdownGlobalHelpers = new Dictionary { {"Ext", typeof(CustomStaticHelpers)} //Define global Helpers e.g. at Ext. diff --git a/src/Docs/ormlite/ormlite-overview.md b/src/Docs/ormlite/ormlite-overview.md index 0dacc30c..5091222c 100644 --- a/src/Docs/ormlite/ormlite-overview.md +++ b/src/Docs/ormlite/ormlite-overview.md @@ -14,7 +14,7 @@ OrmLite was designed with a focus on the core objectives: * Create/Drop DB Table schemas using nothing but POCO class definitions (IOTW a true code-first ORM) * Simplicity - typed, wrist friendly API for common data access patterns. * High performance - with support for indexes, text blobs, etc. - * Amongst the [fastest Micro ORMs](http://servicestack.net/benchmarks/) for .NET (just behind [Dapper](http://code.google.com/p/dapper-dot-net/)). + * Amongst the [fastest Micro ORMs](http://mono.servicestack.net/benchmarks/) for .NET (just behind [Dapper](http://code.google.com/p/dapper-dot-net/)). * Expressive power and flexibility - with access to IDbCommand and raw SQL * Cross platform - supports multiple dbs (currently: Sqlite and Sql Server) running on both .NET and Mono platforms. diff --git a/src/Docs/packages.config b/src/Docs/packages.config index f57348a5..6b7d575f 100644 --- a/src/Docs/packages.config +++ b/src/Docs/packages.config @@ -1,8 +1,8 @@  - - - - - + + + + + \ No newline at end of file diff --git a/src/Docs/packages/ServiceStack.4.0.11/ServiceStack.4.0.11.nupkg b/src/Docs/packages/ServiceStack.4.0.11/ServiceStack.4.0.11.nupkg new file mode 100644 index 00000000..4ec38fea Binary files /dev/null and b/src/Docs/packages/ServiceStack.4.0.11/ServiceStack.4.0.11.nupkg differ diff --git a/src/Docs/packages/ServiceStack.4.0.11/lib/net40/ServiceStack.dll b/src/Docs/packages/ServiceStack.4.0.11/lib/net40/ServiceStack.dll new file mode 100644 index 00000000..83933d41 Binary files /dev/null and b/src/Docs/packages/ServiceStack.4.0.11/lib/net40/ServiceStack.dll differ diff --git a/src/Docs/packages/ServiceStack.4.0.11/lib/net40/ServiceStack.xml b/src/Docs/packages/ServiceStack.4.0.11/lib/net40/ServiceStack.xml new file mode 100644 index 00000000..d238a55a --- /dev/null +++ b/src/Docs/packages/ServiceStack.4.0.11/lib/net40/ServiceStack.xml @@ -0,0 +1,8174 @@ + + + + ServiceStack + + + + + 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. + + + + + + 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. + + + + + 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. + + + + + ASP.NET or HttpListener ServiceStack host + + + + + 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 an Adhoc web service on Startup + + + + + Apply plugins to this AppHost + + + + + Create a service runner for IService actions + + + + + Resolve the absolute url for this request + + + + + Resolve localized text, returns itself by default. + + + + + Register user-defined custom routes. + + + + + Register custom ContentType serializers + + + + + Add Request Filters, to be applied before the dto is deserialized + + + + + Add Request Filters for HTTP Requests + + + + + Add Response Filters for HTTP Responses + + + + + Add Request Filters for MQ/TCP Requests + + + + + Add Response Filters for MQ/TCP Responses + + + + + Add alternative HTML View Engines + + + + + Provide an exception handler for unhandled exceptions + + + + + Provide an exception handler for un-caught exceptions + + + + + Skip the ServiceStack Request Pipeline and process the returned IHttpHandler instead + + + + + Provide a catch-all handler that doesn't match any routes + + + + + Use a Custom Error Handler for handling specific error HttpStatusCodes + + + + + Provide a custom model minder for a specific Request DTO + + + + + The AppHost config + + + + + List of pre-registered and user-defined plugins to be enabled in this AppHost + + + + + Virtual access to file resources + + + + + 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. + + + + 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. + + + + + Apply PreRequest Filters for participating Custom Handlers, e.g. RazorFormat, MarkdownFormat, etc + + + + + 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. + + + + + + The AppHost.Container. Note: it is not thread safe to register dependencies after AppStart. + + + + + 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 + + + + Creates the required missing tables or DB schema + + + + + 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 + + + + + Single threaded message handler that can process all messages + of a particular message type. + + + + + 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 + + + + + + The type of the message this handler processes + + + + + 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. + + + + + + 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 + + + + + This class stores the caller call context in order to restore + it when the work item is executed in the thread pool environment. + + + + + Constructor + + + + + Captures the current thread context + + + + + + Applies the thread context stored earlier + + + + + + EventWaitHandleFactory class. + This is a static class that creates AutoResetEvent and ManualResetEvent objects. + In WindowCE the WaitForMultipleObjects API fails to use the Handle property + of XxxResetEvent. It can use only handles that were created by the CreateEvent API. + Consequently this class creates the needed XxxResetEvent and replaces the handle if + it's a WindowsCE OS. + + + + + Create a new AutoResetEvent object + + Return a new AutoResetEvent object + + + + Create a new ManualResetEvent object + + Return a new ManualResetEvent object + + + + Represents an exception in case IWorkItemResult.GetResult has been canceled + + + Represents an exception in case IWorkItemResult.GetResult has been canceled + + + + + Represents an exception in case IWorkItemResult.GetResult has been timed out + + + Represents an exception in case IWorkItemResult.GetResult has been timed out + + + + + Represents an exception in case IWorkItemResult.GetResult has been timed out + + + Represents an exception in case IWorkItemResult.GetResult has been timed out + + + + + A delegate that represents the method to run as the work item + + A state object for the method to run + + + + A delegate to call after the WorkItemCallback completed + + The work item result object + + + + A delegate to call after the WorkItemCallback completed + + The work item result object + + + + A delegate to call when a WorkItemsGroup becomes idle + + A reference to the WorkItemsGroup that became idle + + + + A delegate to call after a thread is created, but before + it's first use. + + + + + A delegate to call when a thread is about to exit, after + it is no longer belong to the pool. + + + + + Defines the availeable priorities of a work item. + The higher the priority a work item has, the sooner + it will be executed. + + + + + IWorkItemsGroup interface + Created by SmartThreadPool.CreateWorkItemsGroup() + + + + + Get an array with all the state objects of the currently running items. + The array represents a snap shot and impact performance. + + + + + Starts to execute work items + + + + + Cancel all the work items. + Same as Cancel(false) + + + + + Cancel all work items using thread abortion + + True to stop work items by raising ThreadAbortException + + + + Wait for all work item to complete. + + + + + Wait for all work item to complete, until timeout expired + + How long to wait for the work items to complete + Returns true if work items completed within the timeout, otherwise false. + + + + Wait for all work item to complete, until timeout expired + + How long to wait for the work items to complete in milliseconds + Returns true if work items completed within the timeout, otherwise false. + + + + Queue a work item + + A callback to execute + Returns a work item result + + + + Queue a work item + + A callback to execute + The priority of the work item + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + The work item priority + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + The work item priority + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Indicates on which cases to call to the post execute callback + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Indicates on which cases to call to the post execute callback + The work item priority + Returns a work item result + + + + Queue a work item + + Work item info + A callback to execute + Returns a work item result + + + + Queue a work item + + Work item information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + Returns a work item result + + + + Queue a work item. + + Returns a IWorkItemResult object, but its GetResult() will always return null + + + + Queue a work item. + + Returns a IWorkItemResult object, but its GetResult() will always return null + + + + Queue a work item. + + Returns a IWorkItemResult object, but its GetResult() will always return null + + + + Queue a work item. + + Returns a IWorkItemResult object, but its GetResult() will always return null + + + + Queue a work item. + + Returns a IWorkItemResult object, but its GetResult() will always return null + + + + Queue a work item. + + Returns a IWorkItemResult<TResult> object. + its GetResult() returns a TResult object + + + + Queue a work item. + + Returns a IWorkItemResult<TResult> object. + its GetResult() returns a TResult object + + + + Queue a work item. + + Returns a IWorkItemResult<TResult> object. + its GetResult() returns a TResult object + + + + Queue a work item. + + Returns a IWorkItemResult<TResult> object. + its GetResult() returns a TResult object + + + + Queue a work item. + + Returns a IWorkItemResult<TResult> object. + its GetResult() returns a TResult object + + + + Get/Set the name of the WorkItemsGroup + + + + + Get/Set the maximum number of workitem that execute cocurrency on the thread pool + + + + + Get the number of work items waiting in the queue. + + + + + Get the WorkItemsGroup start information + + + + + IsIdle is true when there are no work items running or queued. + + + + + This event is fired when all work items are completed. + (When IsIdle changes to true) + This event only work on WorkItemsGroup. On SmartThreadPool + it throws the NotImplementedException. + + + + + Never call to the PostExecute call back + + + + + Call to the PostExecute only when the work item is cancelled + + + + + Call to the PostExecute only when the work item is not cancelled + + + + + Always call to the PostExecute + + + + + The common interface of IWorkItemResult and IWorkItemResult<T> + + + + + This method intent is for internal use. + + + + + + This method intent is for internal use. + + + + + + IWorkItemResult interface. + Created when a WorkItemCallback work item is queued. + + + + + IWorkItemResult<TResult> interface. + Created when a Func<TResult> work item is queued. + + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits. + + The result of the work item + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits until timeout. + + The result of the work item + On timeout throws WorkItemTimeoutException + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits until timeout. + + The result of the work item + On timeout throws WorkItemTimeoutException + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits until timeout or until the cancelWaitHandle is signaled. + + Timeout in milliseconds, or -1 for infinite + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + A cancel wait handle to interrupt the blocking if needed + The result of the work item + On timeout throws WorkItemTimeoutException + On cancel throws WorkItemCancelException + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits until timeout or until the cancelWaitHandle is signaled. + + The result of the work item + On timeout throws WorkItemTimeoutException + On cancel throws WorkItemCancelException + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits. + + Filled with the exception if one was thrown + The result of the work item + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits until timeout. + + + + Filled with the exception if one was thrown + The result of the work item + On timeout throws WorkItemTimeoutException + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits until timeout. + + + Filled with the exception if one was thrown + + The result of the work item + On timeout throws WorkItemTimeoutException + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits until timeout or until the cancelWaitHandle is signaled. + + Timeout in milliseconds, or -1 for infinite + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + A cancel wait handle to interrupt the blocking if needed + Filled with the exception if one was thrown + The result of the work item + On timeout throws WorkItemTimeoutException + On cancel throws WorkItemCancelException + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits until timeout or until the cancelWaitHandle is signaled. + + The result of the work item + + Filled with the exception if one was thrown + + + On timeout throws WorkItemTimeoutException + On cancel throws WorkItemCancelException + + + + Same as Cancel(false). + + + + + Cancel the work item execution. + If the work item is in the queue then it won't execute + If the work item is completed, it will remain completed + If the work item is in progress then the user can check the SmartThreadPool.IsWorkItemCanceled + property to check if the work item has been cancelled. If the abortExecution is set to true then + the Smart Thread Pool will send an AbortException to the running thread to stop the execution + of the work item. When an in progress work item is canceled its GetResult will throw WorkItemCancelException. + If the work item is already cancelled it will remain cancelled + + When true send an AbortException to the executing thread. + Returns true if the work item was not completed, otherwise false. + + + + Gets an indication whether the asynchronous operation has completed. + + + + + Gets an indication whether the asynchronous operation has been canceled. + + + + + Gets the user-defined object that contains context data + for the work item method. + + + + + Get the work item's priority + + + + + Return the result, same as GetResult() + + + + + Returns the exception if occured otherwise returns null. + + + + + An internal delegate to call when the WorkItem starts or completes + + + + + This method is intent for internal use. + + + + + PriorityQueue class + This class is not thread safe because we use external lock + + + + + The number of queues, there is one for each type of priority + + + + + Work items queues. There is one for each type of priority + + + + + The total number of work items within the queues + + + + + Use with IEnumerable interface + + + + + Enqueue a work item. + + A work item + + + + Dequeque a work item. + + Returns the next work item + + + + Find the next non empty queue starting at queue queueIndex+1 + + The index-1 to start from + + The index of the next non empty queue or -1 if all the queues are empty + + + + + Clear all the work items + + + + + Returns an enumerator to iterate over the work items + + Returns an enumerator + + + + The number of work items + + + + + The class the implements the enumerator + + + + + Smart thread pool class. + + + + + Contains the name of this instance of SmartThreadPool. + Can be changed by the user. + + + + + Cancel all the work items. + Same as Cancel(false) + + + + + Wait for the SmartThreadPool/WorkItemsGroup to be idle + + + + + Wait for the SmartThreadPool/WorkItemsGroup to be idle + + + + + Queue a work item + + A callback to execute + Returns a work item result + + + + Queue a work item + + A callback to execute + The priority of the work item + Returns a work item result + + + + Queue a work item + + Work item info + A callback to execute + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + The work item priority + Returns a work item result + + + + Queue a work item + + Work item information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + The work item priority + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Indicates on which cases to call to the post execute callback + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Indicates on which cases to call to the post execute callback + The work item priority + Returns a work item result + + + + Get/Set the name of the SmartThreadPool/WorkItemsGroup instance + + + + + IsIdle is true when there are no work items running or queued. + + + + + Default minimum number of threads the thread pool contains. (0) + + + + + Default maximum number of threads the thread pool contains. (25) + + + + + Default idle timeout in milliseconds. (One minute) + + + + + Indicate to copy the security context of the caller and then use it in the call. (false) + + + + + Indicate to copy the HTTP context of the caller and then use it in the call. (false) + + + + + Indicate to dispose of the state objects if they support the IDispose interface. (false) + + + + + The default option to run the post execute (CallToPostExecute.Always) + + + + + The default work item priority (WorkItemPriority.Normal) + + + + + The default is to work on work items as soon as they arrive + and not to wait for the start. (false) + + + + + The default thread priority (ThreadPriority.Normal) + + + + + The default thread pool name. (SmartThreadPool) + + + + + The default fill state with params. (false) + It is relevant only to QueueWorkItem of Action<...>/Func<...> + + + + + The default thread backgroundness. (true) + + + + + The default apartment state of a thread in the thread pool. + The default is ApartmentState.Unknown which means the STP will not + set the apartment of the thread. It will use the .NET default. + + + + + The default post execute method to run. (None) + When null it means not to call it. + + + + + The default name to use for the performance counters instance. (null) + + + + + The default Max Stack Size. (SmartThreadPool) + + + + + Dictionary of all the threads in the thread pool. + + + + + Queue of work items. + + + + + Count the work items handled. + Used by the performance counter. + + + + + Number of threads that currently work (not idle). + + + + + Stores a copy of the original STPStartInfo. + It is used to change the MinThread and MaxThreads + + + + + Total number of work items that are stored in the work items queue + plus the work items that the threads in the pool are working on. + + + + + Signaled when the thread pool is idle, i.e. no thread is busy + and the work items queue is empty + + + + + An event to signal all the threads to quit immediately. + + + + + A flag to indicate if the Smart Thread Pool is now suspended. + + + + + A flag to indicate the threads to quit. + + + + + Counts the threads created in the pool. + It is used to name the threads. + + + + + Indicate that the SmartThreadPool has been disposed + + + + + Holds all the WorkItemsGroup instaces that have at least one + work item int the SmartThreadPool + This variable is used in case of Shutdown + + + + + A common object for all the work items int the STP + so we can mark them to cancel in O(1) + + + + + Windows STP performance counters + + + + + Local STP performance counters + + + + + Constructor + + + + + Constructor + + Idle timeout in milliseconds + + + + Constructor + + Idle timeout in milliseconds + Upper limit of threads in the pool + + + + Constructor + + Idle timeout in milliseconds + Upper limit of threads in the pool + Lower limit of threads in the pool + + + + Constructor + + A SmartThreadPool configuration that overrides the default behavior + + + + Waits on the queue for a work item, shutdown, or timeout. + + + Returns the WaitingCallback or null in case of timeout or shutdown. + + + + + Put a new work item in the queue + + A work item to queue + + + + Inform that the current thread is about to quit or quiting. + The same thread may call this method more than once. + + + + + Starts new threads + + The number of threads to start + + + + A worker thread method that processes work items from the work items queue. + + + + + Force the SmartThreadPool to shutdown + + + + + Force the SmartThreadPool to shutdown with timeout + + + + + Empties the queue of work items and abort the threads in the pool. + + + + + Wait for all work items to complete + + Array of work item result objects + + true when every work item in workItemResults has completed; otherwise false. + + + + + Wait for all work items to complete + + Array of work item result objects + The number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + + true when every work item in workItemResults has completed; otherwise false. + + + + + Wait for all work items to complete + + Array of work item result objects + The number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + A cancel wait handle to interrupt the wait if needed + + true when every work item in workItemResults has completed; otherwise false. + + + + + Wait for all work items to complete + + Array of work item result objects + The number of milliseconds to wait, or Timeout.Infinite (-1) to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + + true when every work item in workItemResults has completed; otherwise false. + + + + + Wait for all work items to complete + + Array of work item result objects + The number of milliseconds to wait, or Timeout.Infinite (-1) to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + A cancel wait handle to interrupt the wait if needed + + true when every work item in workItemResults has completed; otherwise false. + + + + + Waits for any of the work items in the specified array to complete, cancel, or timeout + + Array of work item result objects + + The array index of the work item result that satisfied the wait, or WaitTimeout if any of the work items has been canceled. + + + + + Waits for any of the work items in the specified array to complete, cancel, or timeout + + Array of work item result objects + The number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + + The array index of the work item result that satisfied the wait, or WaitTimeout if no work item result satisfied the wait and a time interval equivalent to millisecondsTimeout has passed or the work item has been canceled. + + + + + Waits for any of the work items in the specified array to complete, cancel, or timeout + + Array of work item result objects + The number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + A cancel wait handle to interrupt the wait if needed + + The array index of the work item result that satisfied the wait, or WaitTimeout if no work item result satisfied the wait and a time interval equivalent to millisecondsTimeout has passed or the work item has been canceled. + + + + + Waits for any of the work items in the specified array to complete, cancel, or timeout + + Array of work item result objects + The number of milliseconds to wait, or Timeout.Infinite (-1) to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + + The array index of the work item result that satisfied the wait, or WaitTimeout if no work item result satisfied the wait and a time interval equivalent to millisecondsTimeout has passed or the work item has been canceled. + + + + + Waits for any of the work items in the specified array to complete, cancel, or timeout + + Array of work item result objects + The number of milliseconds to wait, or Timeout.Infinite (-1) to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + A cancel wait handle to interrupt the wait if needed + + The array index of the work item result that satisfied the wait, or WaitTimeout if no work item result satisfied the wait and a time interval equivalent to millisecondsTimeout has passed or the work item has been canceled. + + + + + Creates a new WorkItemsGroup. + + The number of work items that can be run concurrently + A reference to the WorkItemsGroup + + + + Creates a new WorkItemsGroup. + + The number of work items that can be run concurrently + A WorkItemsGroup configuration that overrides the default behavior + A reference to the WorkItemsGroup + + + + Checks if the work item has been cancelled, and if yes then abort the thread. + Can be used with Cancel and timeout + + + + + Get an array with all the state objects of the currently running items. + The array represents a snap shot and impact performance. + + + + + Start the thread pool if it was started suspended. + If it is already running, this method is ignored. + + + + + Cancel all work items using thread abortion + + True to stop work items by raising ThreadAbortException + + + + Wait for the thread pool to be idle + + + + + Executes all actions in parallel. + Returns when they all finish. + + Actions to execute + + + + Executes all actions in parallel. + Returns when they all finish. + + Actions to execute + + + + Executes all actions in parallel + Returns when the first one completes + + Actions to execute + + + + Executes all actions in parallel + Returns when the first one completes + + Actions to execute + + + + Executes actions in sequence asynchronously. + Returns immediately. + + A state context that passes + Actions to execute in the order they should run + + + + Executes actions in sequence asynchronously. + Returns immediately. + + + Actions to execute in the order they should run + + + + An event to call after a thread is created, but before + it's first use. + + + + + An event to call when a thread is about to exit, after + it is no longer belong to the pool. + + + + + A reference to the current work item a thread from the thread pool + is executing. + + + + + This event is fired when a thread is created. + Use it to initialize a thread before the work items use it. + + + + + This event is fired when a thread is terminating. + Use it for cleanup. + + + + + Get/Set the lower limit of threads in the pool. + + + + + Get/Set the upper limit of threads in the pool. + + + + + Get the number of threads in the thread pool. + Should be between the lower and the upper limits. + + + + + Get the number of busy (not idle) threads in the thread pool. + + + + + Returns true if the current running work item has been cancelled. + Must be used within the work item's callback method. + The work item should sample this value in order to know if it + needs to quit before its completion. + + + + + Thread Pool start information (readonly) + + + + + Return the local calculated performance counters + Available only if STPStartInfo.EnableLocalPerformanceCounters is true. + + + + + Get/Set the maximum number of work items that execute cocurrency on the thread pool + + + + + Get the number of work items in the queue. + + + + + WorkItemsGroup start information (readonly) + + + + + This event is fired when all work items are completed. + (When IsIdle changes to true) + This event only work on WorkItemsGroup. On SmartThreadPool + it throws the NotImplementedException. + + + + + The thread creation time + The value is stored as UTC value. + + + + + The last time this thread has been running + It is updated by IAmAlive() method + The value is stored as UTC value. + + + + + A reference from each thread in the thread pool to its SmartThreadPool + object container. + With this variable a thread can know whatever it belongs to a + SmartThreadPool. + + + + + A reference to the current work item a thread from the thread pool + is executing. + + + + + Summary description for STPPerformanceCounter. + + + + + Summary description for STPStartInfo. + + + + + Summary description for WIGStartInfo. + + + + + Get a readonly version of this WIGStartInfo + + Returns a readonly reference to this WIGStartInfoRO + + + + Get/Set if to use the caller's security context + + + + + Get/Set if to use the caller's HTTP context + + + + + Get/Set if to dispose of the state object of a work item + + + + + Get/Set the run the post execute options + + + + + Get/Set the default post execute callback + + + + + Get/Set if the work items execution should be suspended until the Start() + method is called. + + + + + Get/Set the default priority that a work item gets when it is enqueued + + + + + Get/Set the if QueueWorkItem of Action<...>/Func<...> fill the + arguments as an object array into the state of the work item. + The arguments can be access later by IWorkItemResult.State. + + + + + Get a readonly version of this STPStartInfo. + + Returns a readonly reference to this STPStartInfo + + + + Get/Set the idle timeout in milliseconds. + If a thread is idle (starved) longer than IdleTimeout then it may quit. + + + + + Get/Set the lower limit of threads in the pool. + + + + + Get/Set the upper limit of threads in the pool. + + + + + Get/Set the scheduling priority of the threads in the pool. + The Os handles the scheduling. + + + + + Get/Set the thread pool name. Threads will get names depending on this. + + + + + Get/Set the performance counter instance name of this SmartThreadPool + The default is null which indicate not to use performance counters at all. + + + + + Enable/Disable the local performance counter. + This enables the user to get some performance information about the SmartThreadPool + without using Windows performance counters. (Useful on WindowsCE, Silverlight, etc.) + The default is false. + + + + + Get/Set backgroundness of thread in thread pool. + + + + + Get/Set the apartment state of threads in the thread pool + + + + + Get/Set the max stack size of threads in the thread pool + + + + + Holds a callback delegate and the state for that delegate. + + + + + Callback delegate for the callback. + + + + + State with which to call the callback delegate. + + + + + Stores the caller's context + + + + + Holds the result of the mehtod + + + + + Hold the exception if the method threw it + + + + + Hold the state of the work item + + + + + A ManualResetEvent to indicate that the result is ready + + + + + A reference count to the _workItemCompleted. + When it reaches to zero _workItemCompleted is Closed + + + + + Represents the result state of the work item + + + + + Work item info + + + + + A reference to an object that indicates whatever the + WorkItemsGroup has been canceled + + + + + A reference to an object that indicates whatever the + SmartThreadPool has been canceled + + + + + The work item group this work item belong to. + + + + + The thread that executes this workitem. + This field is available for the period when the work item is executed, before and after it is null. + + + + + The absulote time when the work item will be timeout + + + + + Stores how long the work item waited on the stp queue + + + + + Stores how much time it took the work item to execute after it went out of the queue + + + + + Initialize the callback holding object. + + The workItemGroup of the workitem + The WorkItemInfo of te workitem + Callback delegate for the callback. + State with which to call the callback delegate. + + We assume that the WorkItem object is created within the thread + that meant to run the callback + + + + Change the state of the work item to in progress if it wasn't canceled. + + + Return true on success or false in case the work item was canceled. + If the work item needs to run a post execute then the method will return true. + + + + + Execute the work item and the post execute + + + + + Execute the work item + + + + + Runs the post execute callback + + + + + Set the result of the work item to return + + The result of the work item + The exception that was throw while the workitem executed, null + if there was no exception. + + + + Returns the work item result + + The work item result + + + + Wait for all work items to complete + + Array of work item result objects + The number of milliseconds to wait, or Timeout.Infinite (-1) to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + A cancel wait handle to interrupt the wait if needed + + true when every work item in waitableResults has completed; otherwise false. + + + + + Waits for any of the work items in the specified array to complete, cancel, or timeout + + Array of work item result objects + The number of milliseconds to wait, or Timeout.Infinite (-1) to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + A cancel wait handle to interrupt the wait if needed + + The array index of the work item result that satisfied the wait, or WaitTimeout if no work item result satisfied the wait and a time interval equivalent to millisecondsTimeout has passed or the work item has been canceled. + + + + + Fill an array of wait handles with the work items wait handles. + + An array of work item results + An array of wait handles to fill + + + + Release the work items' wait handles + + An array of work item results + + + + Sets the work item's state + + The state to set the work item to + + + + Signals that work item has been completed or canceled + + Indicates that the work item has been canceled + + + + Cancel the work item if it didn't start running yet. + + Returns true on success or false if the work item is in progress or already completed + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits for the result, timeout, or cancel. + In case of error the method throws and exception + + The result of the work item + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits for the result, timeout, or cancel. + In case of error the e argument is filled with the exception + + The result of the work item + + + + A wait handle to wait for completion, cancel, or timeout + + + + + Called when the WorkItem starts + + + + + Called when the WorkItem completes + + + + + Returns true when the work item has completed or canceled + + + + + Returns true when the work item has canceled + + + + + Returns the priority of the work item + + + + + Indicates the state of the work item in the thread pool + + + + + A back reference to the work item + + + + + Return the result, same as GetResult() + + + + + Returns the exception if occured otherwise returns null. + This value is valid only after the work item completed, + before that it is always null. + + + + + Create a new work item + + The WorkItemsGroup of this workitem + Work item group start information + A callback to execute + Returns a work item + + + + Create a new work item + + The WorkItemsGroup of this workitem + Work item group start information + A callback to execute + The priority of the work item + Returns a work item + + + + Create a new work item + + The WorkItemsGroup of this workitem + Work item group start information + Work item info + A callback to execute + Returns a work item + + + + Create a new work item + + The WorkItemsGroup of this workitem + Work item group start information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + Returns a work item + + + + Create a new work item + + The work items group + Work item group start information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + The work item priority + Returns a work item + + + + Create a new work item + + The work items group + Work item group start information + Work item information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + Returns a work item + + + + Create a new work item + + The work items group + Work item group start information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Returns a work item + + + + Create a new work item + + The work items group + Work item group start information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + The work item priority + Returns a work item + + + + Create a new work item + + The work items group + Work item group start information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Indicates on which cases to call to the post execute callback + Returns a work item + + + + Create a new work item + + The work items group + Work item group start information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Indicates on which cases to call to the post execute callback + The work item priority + Returns a work item + + + + Summary description for WorkItemInfo. + + + + + Get/Set if to use the caller's security context + + + + + Get/Set if to use the caller's HTTP context + + + + + Get/Set if to dispose of the state object of a work item + + + + + Get/Set the run the post execute options + + + + + Get/Set the post execute callback + + + + + Get/Set the work item's priority + + + + + Get/Set the work item's timout in milliseconds. + This is a passive timout. When the timout expires the work item won't be actively aborted! + + + + + Summary description for WorkItemsGroup. + + + + + A reference to the SmartThreadPool instance that created this + WorkItemsGroup. + + + + + A flag to indicate if the Work Items Group is now suspended. + + + + + Defines how many work items of this WorkItemsGroup can run at once. + + + + + Priority queue to hold work items before they are passed + to the SmartThreadPool. + + + + + Indicate how many work items are waiting in the SmartThreadPool + queue. + This value is used to apply the concurrency. + + + + + Indicate how many work items are currently running in the SmartThreadPool. + This value is used with the Cancel, to calculate if we can send new + work items to the STP. + + + + + WorkItemsGroup start information + + + + + Signaled when all of the WorkItemsGroup's work item completed. + + + + + A common object for all the work items that this work items group + generate so we can mark them to cancel in O(1) + + + + + Start the Work Items Group if it was started suspended + + + + + Wait for the thread pool to be idle + + + + + The OnIdle event + + + + + WorkItemsGroup start information + + + + + WorkItemsQueue class. + + + + + Waiters queue (implemented as stack). + + + + + Waiters count + + + + + Work items queue + + + + + Indicate that work items are allowed to be queued + + + + + A flag that indicates if the WorkItemsQueue has been disposed. + + + + + Enqueue a work item to the queue. + + + + + Waits for a work item or exits on timeout or cancel + + Timeout in milliseconds + Cancel wait handle + Returns true if the resource was granted + + + + Cleanup the work items queue, hence no more work + items are allowed to be queue + + + + + Returns the WaiterEntry of the current thread + + + In order to avoid creation and destuction of WaiterEntry + objects each thread has its own WaiterEntry object. + + + + Push a new waiter into the waiter's stack + + A waiter to put in the stack + + + + Pop a waiter from the waiter's stack + + Returns the first waiter in the stack + + + + Remove a waiter from the stack + + A waiter entry to remove + If true the waiter count is always decremented + + + + Each thread in the thread pool keeps its own waiter entry. + + + + + Returns the current number of work items in the queue + + + + + Returns the current number of waiters + + + + + Event to signal the waiter that it got the work item. + + + + + Flag to know if this waiter already quited from the queue + because of a timeout. + + + + + Flag to know if the waiter was signaled and got a work item. + + + + + A work item that passed directly to the waiter withou going + through the queue + + + + + Signal the waiter that it got a work item. + + Return true on success + The method fails if Timeout() preceded its call + + + + Mark the wait entry that it has been timed out + + Return true on success + The method fails if Signal() preceded its call + + + + Reset the wait entry so it can be used again + + + + + Free resources + + + + + 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. + + + + + Service error logs are kept in 'urn:ServiceErrors:{ServiceName}' + + + + + Combined service error logs are maintained in 'urn:ServiceErrors:All' + + + + + 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 + + + + + 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. + + + + + Generic + Useful IService base class + + + + + Resolve an alternate Web Service from ServiceStack's IOC container. + + + + + + + Dynamic Session Bag + + + + + Typed UserSession + + + + + 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. + + + + + 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 + + + + 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 . + + + + + 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 + + + + + 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 + + + + + + + + Saves the Auth Tokens for this request. Called in OnAuthenticated(). + Overrideable, the default behaviour is to call IUserAuthRepository.CreateOrMergeAuthSession(). + + + + + Base class for entity validator classes. + + The type of the object being validated + + + + Defines a validator for a particualr type. + + + + + + Defines a validator for a particular type. + + + + + Validates the specified instance + + + A ValidationResult containing any validation failures + + + + Validates the specified instance. + + A ValidationContext + 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 + + + + + Validates the specified instance. + + The instance to validate + A ValidationResult object containing any validation failures. + + + + 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. + + Validation Context + 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 + + + + 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 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 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. + + + + Defines a condition that applies to several rules + + The condition that should apply to multiple rules + Action that encapsulates the rules. + + + + + Defiles an inverse condition that applies to several rules + + The condition that should be applied to multiple rules + Action that encapsulates the rules + + + + Returns an enumerator that iterates through the collection of validation rules. + + + A that can be used to iterate through the collection. + + 1 + + + + Sets the cascade mode for all rules within this validator. + + + + + Create a Facebook App at: https://developers.facebook.com/apps + The Callback URL for your app should match the CallbackUrl provided. + + + + + 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 + + + + + + + + + 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. + + + + + + Thread-safe In memory UserAuth data store so it can be used without a dependency on Redis. + + + + + Creates the required missing tables or DB schema + + + + + Create new Registration + + + + + Logic to update UserAuth from Registration info, not enabled on OnPut because of security. + + + + + Thank you Martijn + http://www.dijksterhuis.org/creating-salted-hash-values-in-c/ + + + + + 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. + + + + + 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). + + + + + 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. + + + + + 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. + + + + + The Yammer User's email addresses. + + + + + Gets or sets the email address type (e.g. primary). + + + + + Gets or sets the email address. + + + + + 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 + + + + Add value with specified key to the cache, and set the cache entry to never expire. + + + + + Stores The value with key only if such key doesn't exist at the server yet. + + + + + Adds or replaces the value with key, and sets the cache entry to never expire. + + + + + Adds or replaces the value with key. + + + + + Adds or replaces the value with key. + + + + + Replace the value with specified key if it exists, and set the cache entry to never expire. + + + + + 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. + + + + + Create new instance of CacheEntry. + + + + UTC time at which CacheEntry expires. + + + + Would've preferred to use [assembly: ContractNamespace] attribute but it is not supported in Mono + + + + + 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 + + + + + + + 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 + + + + Gets the nullable app setting. + + + + + Gets the app setting. + + + + + Determines wheter the Config section identified by the sectionName exists. + + + + + Returns AppSetting[key] if exists otherwise defaultValue + + + + + Returns AppSetting[key] if exists otherwise defaultValue, for non-string values + + + + + Gets the connection string setting. + + + + + Gets the connection string. + + + + + Gets the list from app setting. + + + + + Gets the dictionary from app setting. + + + + + 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 + + + + + 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. + + + + + 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. + + + + + Change the default HTML view or template used for the HTML response of this service + + + + + 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 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 IValidatorFactory that looks for ValidatorAttribute instances on the specified type in order to provide the validator instance. + + + + + Gets validators for a particular type. + + + + + Gets the validator for the specified type. + + + + + Gets the validator for the specified type. + + + + + Gets a validator for the appropriate type. + + + + + Gets a validator for the appropriate type. + + + + + Validator attribute to define the class that will describe the Validation rules + + + + + Creates an instance of the ValidatorAttribute allowing a validator type to be specified. + + + + + The type of the validator used to validate the current type. + + + + + Associates an instance of IValidator with the current property rule and is used to validate each item within the collection. + + The validator to use + + + + Rule builder + + + + + + + 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 + + + + Represents an object that is configurable. + + Type of object being configured + Return type + + + + Configures the current object. + + Action to configure the object. + + + + + 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 '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 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 specifed 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 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 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 specifed 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 specifed 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 specifed 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 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 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 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. + + + + Performs validation and then throws an exception if validation fails. + + + + + 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. + + + + + 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 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 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 + 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 code to use when validation fails + + The current rule + The error code to use + + + + + 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 a custom property name to use within the error message. + + 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 + + + + 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 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. + + + + + 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), + } + } + + + + + + + Allows configuration of the validator. + + + + + Delegate that specifies configuring an InlineValidator. + + + + + Default validator selector that will execute all rules that do not belong to a RuleSet. + + + + + 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. + + + + 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. + + + + + + Defines a rule associated with a property which can have multiple validators. + + + + + Performs validation 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. + + + + + Name of the 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. + + + + + 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. + + Validation Context + A collection of validation failures + + + + Rule set to which this rule belongs. + + + + + The validators that are grouped under this rule. + + + + + Useful extensions + + + + + 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 + + + + + Based on a child validator and a propery rule, infers whether the validator should be wrapped in a ChildValidatorAdaptor or a CollectionValidatorAdaptor + + + + + Instancace cache. + TODO: This isn't actually completely thread safe. It would be much better to use ConcurrentDictionary, but this isn't available in Silverlight/WP7. + + + + + 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 + + + + Selects validators that are associated with a particular property. + + + + + Creates a new instance of MemberNameValidatorSelector. + + + + + 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. + + + + + Assists in the construction of validation messages. + + + + + Default Property Name placeholder. + + + + + Adds a value for a validation message placeholder. + + + + + + + + Appends a property name to the message. + + The name 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 + + + + Represents a chain of properties + + + + + Creates a new PropertyChain. + + + + + Creates a new PropertyChain based on another. + + + + + 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. + + + + + Defines a rule associated with a property. + + + + + 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. + + + + + 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 + + + + Invokes a property validator using the specified validation context. + + + + + 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. + + + + + Returns the property name for the property being validated. + Returns null if it is not a property being validated (eg a method call) + + + + + Builds a validation rule and constructs a validator. + + Type of object being validated + Type of property being validated + + + + Rule builder that starts the chain + + + + + + + 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 + + + + The rule being created by this RuleBuilder. + + + + + Selects validators that belong to the specified rulesets. + + + + + 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. + + + + 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. + + + + + 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. + + + + + Builds a delegate for retrieving a localised resource from a resource type and property name. + + + + + Builds a function used to retrieve the resource. + + + + + 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. + + + + + Implemenetation of IResourceAccessorBuilder that can fall back to the default resource provider. + + + + + 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. + + + + + 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. + + + + + 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 + Strategy used to construct the resource accessor + + + + Creates an IErrorMessageSource 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. + + + + + 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 '{PropertyName}' is not a valid credit card number.. + + + + + Looks up a localized string similar to '{PropertyName}' is not a valid email address.. + + + + + Looks up a localized string similar to '{PropertyName}' should be equal to '{PropertyValue}'.. + + + + + Looks up a localized string similar to '{PropertyName}' must be {MaxLength} characters in length. You entered {TotalLength} characters.. + + + + + Looks up a localized string similar to '{PropertyName}' must be between {From} and {To} (exclusive). You entered {Value}.. + + + + + Looks up a localized string similar to '{PropertyName}' must be greater than '{ComparisonValue}'.. + + + + + Looks up a localized string similar to '{PropertyName}' must be greater than or equal to '{ComparisonValue}'.. + + + + + Looks up a localized string similar to '{PropertyName}' must be between {From} and {To}. You entered {Value}.. + + + + + Looks up a localized string similar to '{PropertyName}' must be between {MinLength} and {MaxLength} characters. You entered {TotalLength} characters.. + + + + + Looks up a localized string similar to '{PropertyName}' must be less than '{ComparisonValue}'.. + + + + + Looks up a localized string similar to '{PropertyName}' must be less than or equal to '{ComparisonValue}'.. + + + + + Looks up a localized string similar to '{PropertyName}' should not be empty.. + + + + + Looks up a localized string similar to '{PropertyName}' should not be equal to '{PropertyValue}'.. + + + + + Looks up a localized string similar to '{PropertyName}' must not be empty.. + + + + + Looks up a localized string similar to The specified condition was not met for '{PropertyName}'.. + + + + + Looks up a localized string similar to '{PropertyName}' is not in the correct format.. + + + + + 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. + + + + + Creates a new validation failure. + + + + + Creates a new ValidationFailure. + + + + + Creates a textual representation of the failure. + + + + + The name of the property. + + + + + The error message + + + + + The error code + + + + + The property value that caused the failure. + + + + + Custom state associated with the failure. + + + + + Used for providing metadata about a validator. + + + + + 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. + + + + + Creates an error validation result for this validator. + + The validator context + Returns an error validation result. + + + + Ensures that the property value is a valid credit card number. + + + + + Provides access to the anti-forgery system, which provides protection against + Cross-site Request Forgery (XSRF, also called CSRF) attacks. + + + + + Generates an anti-forgery token for this request. This token can + be validated by calling the Validate() method. + + An HTML string corresponding to an <input type="hidden"> + element. This element should be put inside a <form>. + + This method has a side effect: it may set a response cookie. + + + + + Generates an anti-forgery token pair (cookie and form token) for this request. + This method is similar to GetHtml(), but this method gives the caller control + over how to persist the returned values. To validate these tokens, call the + appropriate overload of Validate. + + The anti-forgery token - if any - that already existed + for this request. May be null. The anti-forgery system will try to reuse this cookie + value when generating a matching form token. + Will contain a new cookie value if the old cookie token + was null or invalid. If this value is non-null when the method completes, the caller + must persist this value in the form of a response cookie, and the existing cookie value + should be discarded. If this value is null when the method completes, the existing + cookie value was valid and needn't be modified. + The value that should be stored in the <form>. The caller + should take care not to accidentally swap the cookie and form tokens. + + Unlike the GetHtml() method, this method has no side effect. The caller + is responsible for setting the response cookie and injecting the returned + form token as appropriate. + + + + + Validates an anti-forgery token that was supplied for this request. + The anti-forgery token may be generated by calling GetHtml(). + + + Throws an HttpAntiForgeryException if validation fails. + + + + + Validates an anti-forgery token pair that was generated by the GetTokens method. + + The token that was supplied in the request cookie. + The token that was supplied in the request form body. + + Throws an HttpAntiForgeryException if validation fails. + + + + + Provides programmatic configuration for the anti-forgery token system. + + + + + Specifies an object that can provide additional data to put into all + generated tokens and that can validate additional data in incoming + tokens. + + + + + Specifies the name of the cookie that is used by the anti-forgery + system. + + + If an explicit name is not provided, the system will automatically + generate a name. + + + + + Specifies whether SSL is required for the anti-forgery system + to operate. If this setting is 'true' and a non-SSL request + comes into the system, all anti-forgery APIs will fail. + + + + + Specifies whether the anti-forgery system should skip checking + for conditions that might indicate misuse of the system. Please + use caution when setting this switch, as improper use could open + security holes in the application. + + + Setting this switch will disable several checks, including: + - Identity.IsAuthenticated = true without Identity.Name being set + - special-casing claims-based identities + + + + + If claims-based authorization is in use, specifies the claim + type from the identity that is used to uniquely identify the + user. If this property is set, all claims-based identities + must return unique values for this claim type. + + + If claims-based authorization is in use and this property has + not been set, the anti-forgery system will automatically look + for claim types "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier" + and "http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider". + + + + + Allows providing or validating additional custom data for anti-forgery tokens. + For example, the developer could use this to supply a nonce when the token is + generated, then he could validate the nonce when the token is validated. + + + The anti-forgery system already embeds the client's username within the + generated tokens. This interface provides and consumes supplemental + data. If an incoming anti-forgery token contains supplemental data but no + additional data provider is configured, the supplemental data will not be + validated. + + + + + Provides additional data to be stored for the anti-forgery tokens generated + during this request. + + Information about the current request. + Supplemental data to embed within the anti-forgery token. + + + + Validates additional data that was embedded inside an incoming anti-forgery + token. + + Information about the current request. + Supplemental data that was embedded within the token. + True if the data is valid; false if the data is invalid. + + + + Initializes a new instance of the class. + + The base scope. + + The dictionary to use as a storage. Since the dictionary would be used as-is, we expect the implementer to + use the same key-value comparison logic as we do here. + + + + + Custom comparer for the context dictionaries + The comparer treats strings as a special case, performing case insesitive comparison. + This guaratees that we remain consistent throughout the chain of contexts since PageData dictionary + behaves in this manner. + + + + + End a ServiceStack Request + + + + + End a ServiceStack Request + + + + + End a HttpHandler Request + + + + + End a HttpHandler Request + + + + + End a ServiceStack Request with no content + + + + + Main container class for components, supporting container hierarchies and + lifetime management of instances. + + + + + Initializes a new empty container. + + + + + 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. + + + + + Register an autowired dependency + + + + + + Register an autowired dependency as a separate type + + + + + + 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. + + + + + + Default owner for new registrations. by default. + + + + + Default reuse scope for new registrations. by default. + + + + + Enable the Registration feature and configure the RegistrationService. + + + + + Registers the 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 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 + + + + + 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. + + + + + + + + + + + + + + + + + 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 . + + + + + Fluent API for customizing the registration of a service. + + + + + 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 . + + + + + 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. + + + + + 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. + + + + + 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 . + + + + + BaseProfilerProvider. This providers some helper methods which provide access to + internals not otherwise available. + To use, override the , and + methods. + + + + + A provider used to create instances and maintain the current instance. + + + + + Starts a new MiniProfiler and sets it to be current. By the end of this method + should return the new MiniProfiler. + + + + + Ends the current profiling session, if one exists. + + + When true, clears the for this HttpContext, allowing profiling to + be prematurely stopped and discarded. Useful for when a specific route does not need to be profiled. + + + + + Returns the current MiniProfiler. This is used by . + + + + + + Starts a new MiniProfiler and sets it to be current. By the end of this method + should return the new MiniProfiler. + + + + + Stops the current MiniProfiler (if any is currently running). + should be called if is false + + If true, any current results will be thrown away and nothing saved + + + + Returns the current MiniProfiler. This is used by . + + + + + + Sets to be active (read to start profiling) + This should be called once a new MiniProfiler has been created. + + The profiler to set to active + If is null + + + + Stops the profiler and marks it as inactive. + + The profiler to stop + True if successful, false if Stop had previously been called on this profiler + If is null + + + + Calls to save the current + profiler using the current storage settings + + + + + + 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 + + + + + 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. + + + + + If the underlying command supports BindByName, this sets/clears the underlying + implementation accordingly. This is required to support OracleCommand from dapper-dot-net + + + + + Wraps a database connection, allowing sql execution timings to be collected when a session is started. + + + + + This will be made private; use + + + + + This will be made private; use + + + + + 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 + + + + + Used for db provider apis internally + + + + + Allow to re-init the provider factory. + + + + + + + proxy + + + + + + + proxy + + + + + proxy + + + + + proxy + + + + + proxy + + + + + proxy + + + + + proxy + + + + + proxy + + + + + proxy + + + + + proxy + + + + + Common extension methods to use only in this project + + + + + Answers true if this String is either null or empty. + + + + + Answers true if this String is neither null or empty. + + + + + Removes trailing / characters from a path and leaves just one + + + + + Removes any leading / characters from a path + + + + + Removes any leading / characters from a path + + + + + Serializes to a json string. + + + + + Gets part of a stack trace containing only methods we care about. + + + + + Gets the current formatted and filted stack trace. + + Space separated list of methods + + + + Identifies users based on ip address. + + + + + Provides functionality to identify which user is profiling a request. + + + + + Returns a string to identify the user profiling the current 'request'. + + The current HttpRequest being profiled. + + + + Returns the paramter HttpRequest's client ip address. + + + + + A single MiniProfiler can be used to represent any number of steps/levels in a call-graph, via Step() + + Totally baller. + + + + Starts when this profiler is instantiated. Each step will use this Stopwatch's current ticks as + their starting time. + + + + + Creates and starts a new MiniProfiler for the root , filtering steps to . + + + + + Returns the 's and this profiler recorded. + + + + + Returns true if Ids match. + + + + + Returns hashcode of Id. + + + + + Obsolete - used for serialization. + + + + + Walks the hierarchy contained in this profiler, starting with , and returns each Timing found. + + + + + Returns milliseconds based on Stopwatch's Frequency. + + + + + Starts a new MiniProfiler based on the current . This new profiler can be accessed by + + + + + + Ends the current profiling session, if one exists. + + + When true, clears the for this HttpContext, allowing profiling to + be prematurely stopped and discarded. Useful for when a specific route does not need to be profiled. + + + + + Returns an that will time the code between its creation and disposal. Use this method when you + do not wish to include the MvcMiniProfiler namespace for the extension method. + + A descriptive name for the code that is encapsulated by the resulting IDisposable's lifetime. + This step's visibility level; allows filtering when is called. + + + + Returns the css and javascript includes needed to display the MiniProfiler results UI. + + Which side of the page the profiler popup button should be displayed on (defaults to left) + Whether to show trivial timings by default (defaults to false) + Whether to show time the time with children column by default (defaults to false) + The maximum number of trace popups to show before removing the oldest (defaults to 15) + xhtml rendering mode, ensure script tag is closed ... etc + when true, shows buttons to minimize and clear MiniProfiler results + Script and link elements normally; an empty string when there is no active profiling session. + + + + Renders the current to json. + + + + + Renders the parameter to json. + + + + + Deserializes the json string parameter to a . + + + + + Create a DEEP clone of this object + + + + + + Returns all currently open commands on this connection + + + + + Returns all results contained in all child steps. + + + + + Contains any sql statements that are executed, along with how many times those statements are executed. + + + + + Adds to the current . + + + + + Returns the number of sql statements of that were executed in all s. + + + + + Identifies this Profiler so it may be stored/cached. + + + + + A display name for this profiling session. + + + + + When this profiler was instantiated. + + + + + Where this profiler was run. + + + + + Allows filtering of steps based on what + the steps are created with. + + + + + The first that is created and started when this profiler is instantiated. + All other s will be children of this one. + + + + + A string identifying the user/client that is profiling this request. Set + with an -implementing class to provide a custom value. + + + If this is not set manually at some point, the implementation will be used; + by default, this will be the current request's ip address. + + + + + Returns true when this MiniProfiler has been viewed by the that recorded it. + + + Allows POSTs that result in a redirect to be profiled. implementation + will keep a list of all profilers that haven't been fetched down. + + + + + For unit testing, returns the timer. + + + + + Milliseconds, to one decimal place, that this MiniProfiler ran. + + + + + Returns true when or any of its are . + + + + + Returns true when all child s are . + + + + + Any Timing step with a duration less than or equal to this will be hidden by default in the UI; defaults to 2.0 ms. + + + + + Ticks since this MiniProfiler was started. + + + + + Json representing the collection of CustomTimings relating to this Profiler + + + Is used when storing the Profiler in SqlStorage + + + + + Points to the currently executing Timing. + + + + + Gets the currently running MiniProfiler for the current HttpContext; null if no MiniProfiler was ed. + + + + + Contains information about queries executed during this profiling session. + + + + + Milliseconds, to one decimal place, that this MiniProfiler was executing sql. + + + + + Returns true when we have profiled queries. + + + + + Returns true when any child Timings have duplicate queries. + + + + + How many sql data readers were executed in all steps. + + + + + How many sql scalar queries were executed in all steps. + + + + + How many sql non-query statements were executed in all steps. + + + + + Various configuration properties. + + + + + Excludes the specified assembly from the stack trace output. + + The short name of the assembly. AssemblyName.Name + + + + Excludes the specified type from the stack trace output. + + The System.Type name to exclude + + + + Excludes the specified method name from the stack trace output. + + The name of the method + + + + Make sure we can at least store profiler results to the http runtime cache. + + + + + Assemblies to exclude from the stack trace report. + + + + + Types to exclude from the stack trace report. + + + + + Methods to exclude from the stack trace report. + + + + + The max length of the stack string to report back; defaults to 120 chars. + + + + + Any Timing step with a duration less than or equal to this will be hidden by default in the UI; defaults to 2.0 ms. + + + + + Dictates if the "time with children" column is displayed by default, defaults to false. + For a per-page override you can use .RenderIncludes(showTimeWithChildren: true/false) + + + + + Dictates if trivial timings are displayed by default, defaults to false. + For a per-page override you can use .RenderIncludes(showTrivial: true/false) + + + + + Determines how many traces to show before removing the oldest; defaults to 15. + For a per-page override you can use .RenderIncludes(maxTracesToShow: 10) + + + + + Dictates on which side of the page the profiler popup button is displayed; defaults to left. + For a per-page override you can use .RenderIncludes(position: RenderPosition.Left/Right) + + + + + Determines if min-max, clear, etc are rendered; defaults to false. + For a per-page override you can use .RenderIncludes(showControls: true/false) + + + + + By default, SqlTimings will grab a stack trace to help locate where queries are being executed. + When this setting is true, no stack trace will be collected, possibly improving profiler performance. + + + + + When is called, if the current request url contains any items in this property, + no profiler will be instantiated and no results will be displayed. + Default value is { "/ssr-", "/content/", "/scripts/", "/favicon.ico" }. + + + + + The path under which ALL routes are registered in, defaults to the application root. For example, "~/myDirectory/" would yield + "/myDirectory/ssr-includes.js" rather than just "/mini-profiler-includes.js" + Any setting here should be in APP RELATIVE FORM, e.g. "~/myDirectory/" + + + + + Understands how to save and load MiniProfilers. Used for caching between when + a profiling session ends and results can be fetched to the client, and for showing shared, full-page results. + + + The normal profiling session life-cycle is as follows: + 1) request begins + 2) profiler is started + 3) normal page/controller/request execution + 4) profiler is stopped + 5) profiler is cached with 's implementation of + 6) request ends + 7) page is displayed and profiling results are ajax-fetched down, pulling cached results from + 's implementation of + + + + + The formatter applied to the SQL being rendered (used only for UI) + + + + + Assembly version of this dank MiniProfiler. + + + + + The provider used to provider the current instance of a provider + This is also + + + + + A function that determines who can access the MiniProfiler results url. It should return true when + the request client has access, false for a 401 to be returned. HttpRequest parameter is the current request and + MiniProfiler parameter is the results that were profiled. + + + Both the HttpRequest and MiniProfiler parameters that will be passed into this function should never be null. + + + + + Allows switching out stopwatches for unit testing. + + + + + Categorizes individual steps to allow filtering. + + + + + Default level given to Timings. + + + + + Useful when profiling many items in a loop, but you don't wish to always see this detail. + + + + + Dictates on which side of the page the profiler popup button is displayed; defaults to left. + + + + + Profiler popup button is displayed on the left. + + + + + Profiler popup button is displayed on the right. + + + + + Contains helper methods that ease working with null s. + + + + + Wraps in a call and executes it, returning its result. + + The current profiling session or null. + Method to execute and profile. + The step name used to label the profiler results. + + + + + Returns an that will time the code between its creation and disposal. + + The current profiling session or null. + A descriptive name for the code that is encapsulated by the resulting IDisposable's lifetime. + This step's visibility level; allows filtering when is called. + + + + Adds 's hierarchy to this profiler's current Timing step, + allowing other threads, remote calls, etc. to be profiled and joined into this profiling session. + + + + + Returns an html-encoded string with a text-representation of ; returns "" when profiler is null. + + The current profiling session or null. + + + + Formats any SQL query with inline parameters, optionally including the value type + + + + + Takes a SqlTiming and returns a formatted SQL string, for parameter replacement, etc. + + + + + Return SQL the way you want it to look on the in the trace. Usually used to format parameters + + + Formatted SQL + + + + Creates a new Inline SQL Formatter, optionally including the parameter type info in comments beside the replaced value + + whether to include a comment after the value, indicating the type, e.g. /* @myParam DbType.Int32 */ + + + + Formats the SQL in a generic frieldly format, including the parameter type information in a comment if it was specified in the InlineFormatter constructor + + The SqlTiming to format + A formatted SQL string + + + + Returns a string representation of the parameter's value, including the type + + The parameter to get a value for + + + + + NOT IMPLEMENTED - will format statements with paramters in an Oracle friendly way + + + + + Does NOTHING, implement me! + + + + + Formats SQL server queries with a DECLARE up top for parameter values + + + + + Formats the SQL in a SQL-Server friendly way, with DECLARE statements for the parameters up top. + + The SqlTiming to format + A formatted SQL string + + + + Contains helper code to time sql statements. + + + + + Returns a new SqlProfiler to be used in the 'profiler' session. + + + + + Tracks when 'command' is started. + + + + + Returns all currently open commands on this connection + + + + + Finishes profiling for 'command', recording durations. + + + + + Called when 'reader' finishes its iterations and is closed. + + + + + The profiling session this SqlProfiler is part of. + + + + + Helper methods that allow operation on SqlProfilers, regardless of their instantiation. + + + + + Tracks when 'command' is started. + + + + + Finishes profiling for 'command', recording durations. + + + + + Called when 'reader' finishes its iterations and is closed. + + + + + Profiles a single sql execution. + + + + + Creates a new SqlTiming to profile 'command'. + + + + + Obsolete - used for serialization. + + + + + Returns a snippet of the sql command and the duration. + + + + + Returns true if Ids match. + + + + + Returns hashcode of Id. + + + + + Called when command execution is finished to determine this SqlTiming's duration. + + + + + Called when database reader is closed, ending profiling for SqlTimings. + + + + + To help with display, put some space around sammiched commas + + + + + Unique identifier for this SqlTiming. + + + + + Category of sql statement executed. + + + + + The sql that was executed. + + + + + The command string with special formatting applied based on MiniProfiler.Settings.SqlFormatter + + + + + Roughly where in the calling code that this sql was executed. + + + + + Offset from main MiniProfiler start that this sql began. + + + + + How long this sql statement took to execute. + + + + + When executing readers, how long it took to come back initially from the database, + before all records are fetched and reader is closed. + + + + + Stores any parameter names and values used by the profiled DbCommand. + + + + + Id of the Timing this statement was executed in. + + + Needed for database deserialization. + + + + + The Timing step that this sql execution occurred in. + + + + + True when other identical sql statements have been executed during this MiniProfiler session. + + + + + Information about a DbParameter used in the sql statement profiled by SqlTiming. + + + + + Returns true if this has the same parent , and as . + + + + + Returns the XOR of certain properties. + + + + + Which SqlTiming this Parameter was executed with. + + + + + Parameter name, e.g. "@routeName" + + + + + The value submitted to the database. + + + + + System.Data.DbType, e.g. "String", "Bit" + + + + + How large the type is, e.g. for string, size could be 4000 + + + + + Understands how to save MiniProfiler results to a MSSQL database, allowing more permanent storage and + querying of slow results. + + + + + Provides saving and loading s to a storage medium. + + + + + Stores under its . + + The results of a profiling session. + + Should also ensure the profiler is stored as being unviewed by its profiling . + + + + + Returns a from storage based on , which should map to . + + + Should also update that the resulting profiler has been marked as viewed by its profiling . + + + + + Returns a list of s that haven't been seen by . + + User identified by the current . + + + + Returns a new SqlServerDatabaseStorage object that will insert into the database identified by connectionString. + + + + + Saves 'profiler' to a database under its . + + + + + Returns the MiniProfiler identified by 'id' from the database or null when no MiniProfiler exists under that 'id'. + + + + + Returns a list of s that haven't been seen by . + + User identified by the current . + + + + Returns a DbConnection for your specific provider. + + + + + Returns a DbConnection already opened for execution. + + + + + How we connect to the database used to save/load MiniProfiler results. + + + + + Understands how to store a to the with absolute expiration. + + + + + The string that prefixes all keys that MiniProfilers are saved under, e.g. + "mini-profiler-ecfb0050-7ce8-4bf1-bf82-2cb38e90e31e". + + + + + Returns a new HttpRuntimeCacheStorage class that will cache MiniProfilers for the specified duration. + + + + + Saves to the HttpRuntime.Cache under a key concated with + and the parameter's . + + + + + Returns the saved identified by . Also marks the resulting + profiler to true. + + + + + Returns a list of s that haven't been seen by . + + User identified by the current . + + + + Syncs access to runtime cache when adding a new list of ids for a user. + + + + + How long to cache each for (i.e. the absolute expiration parameter of + ) + + + + + An individual profiling step that can contain child steps. + + + + + Rebuilds all the parent timings on deserialization calls + + + + + Offset from parent MiniProfiler's creation that this Timing was created. + + + + + Creates a new Timing named 'name' in the 'profiler's session, with 'parent' as this Timing's immediate ancestor. + + + + + Obsolete - used for serialization. + + + + + Returns this Timing's Name. + + + + + Returns true if Ids match. + + + + + Returns hashcode of Id. + + + + + Adds arbitrary string 'value' under 'key', allowing custom properties to be stored in this Timing step. + + + + + Completes this Timing's duration and sets the MiniProfiler's Head up one level. + + + + + Add the parameter 'timing' to this Timing's Children collection. + + + Used outside this assembly for custom deserialization when creating an implementation. + + + + + Adds the parameter 'sqlTiming' to this Timing's SqlTimings collection. + + A sql statement profiling that was executed in this Timing step. + + Used outside this assembly for custom deserialization when creating an implementation. + + + + + Returns the number of sql statements of that were executed in this . + + + + + Unique identifer for this timing; set during construction. + + + + + Text displayed when this Timing is rendered. + + + + + How long this Timing step took in ms; includes any Timings' durations. + + + + + The offset from the start of profiling. + + + + + All sub-steps that occur within this Timing step. Add new children through + + + + + Stores arbitrary key/value strings on this Timing step. Add new tuples through . + + + + + Any queries that occurred during this Timing step. + + + + + Needed for database deserialization and JSON serialization. + + + + + Which Timing this Timing is under - the duration that this step takes will be added to its parent's duration. + + This will be null for the root (initial) Timing. + + + + Gets the elapsed milliseconds in this step without any children's durations. + + + + + Gets the aggregate elapsed milliseconds of all SqlTimings executed in this Timing, excluding Children Timings. + + + + + Returns true when this is less than the configured + , by default 2.0 ms. + + + + + Reference to the containing profiler, allowing this Timing to affect the Head and get Stopwatch readings. + + + + + Returns true when this Timing has inner Timing steps. + + + + + Returns true if this Timing step collected sql execution timings. + + + + + Returns true if any s executed in this step are detected as duplicate statements. + + + + + Returns true when this Timing is the first one created in a MiniProfiler session. + + + + + How far away this Timing is from the Profiler's Root. + + + + + How many sql data readers were executed in this Timing step. Does not include queries in any child Timings. + + + + + How many sql scalar queries were executed in this Timing step. Does not include queries in any child Timings. + + + + + How many sql non-query statements were executed in this Timing step. Does not include queries in any child Timings. + + + + + Understands how to route and respond to MiniProfiler UI urls. + + + + + Returns either includes' css/javascript or results' html. + + + + + Handles rendering static content files. + + + + + Handles rendering a previous MiniProfiler session, identified by its "?id=GUID" on the query. + + + + + Embedded resource contents keyed by filename. + + + + + Helper method that sets a proper 404 response code. + + + + + Try to keep everything static so we can easily be reused. + + + + + HttpContext based profiler provider. This is the default provider to use in a web context. + The current profiler is associated with a HttpContext.Current ensuring that profilers are + specific to a individual HttpRequest. + + + + + Public constructor. This also registers any UI routes needed to display results + + + + + Starts a new MiniProfiler and associates it with the current . + + + + + Ends the current profiling session, if one exists. + + + When true, clears the for this HttpContext, allowing profiling to + be prematurely stopped and discarded. Useful for when a specific route does not need to be profiled. + + + + + Makes sure 'profiler' has a Name, pulling it from route data or url. + + + + + Returns the current profiler + + + + + + Gets the currently running MiniProfiler for the current HttpContext; null if no MiniProfiler was ed. + + + + + WebRequestProfilerProvider specific configurations + + + + + Provides user identification for a given profiling request. + + + + + 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. + + + + + + If they don't have an ICacheClient configured use an In Memory one. + + + + + 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 + + + + + Lets you Register new Services and the optional restPaths will be registered against + this default Request Type + + + + + 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. + + + + + Scans the supplied Assemblies to infer REST paths and HTTP verbs. + + The instance. + + The assemblies with REST services. + + The same instance; + never . + + + + 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 + + + + + + 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. + + + + + 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 + + + + In Memory repository for files. Useful for testing. + + + + + Context to capture IService action + + + + + Get an IAppHost container. + Note: Registering dependencies should only be done during setup/configuration + stage and remain immutable there after for thread-safety. + + + + + + + Ensure the same instance is used for subclasses + + + + + Called before page is executed + + + + + Called after page is executed but before it's merged with the + website template if any. + + + + + Don't HTML encode safe output + + + + + + + Return the output of a different view with the specified name + using the supplied model + + + + + + + + Resolve registered Assemblies + + + + + + Reference to MarkdownViewEngine + + + + + The AppHost so you can access configuration and resolve dependencies, etc. + + + + + This precompiled Markdown page with Metadata + + + + + ASP.NET MVC's HtmlHelper + + + + + All variables passed to and created by your page. + The Response DTO is stored and accessible via the 'Model' variable. + + All variables and outputs created are stored in ScopeArgs which is what's available + to your website template. The Generated page is stored in the 'Body' variable. + + + + + Whether HTML or Markdown output is requested + + + + + The Response DTO + + + + + 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.. + + + + + 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 + * + + + + 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 + + + + + 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 + + + + + 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. + + + + + + + + + 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 + + + + + Execute MQ + + + + + Execute MQ with requestContext + + + + + Execute using empty RequestContext + + + + + Execute HTTP + + + + + 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. + + + + + Inherit from this class if you want to host your web services inside an + ASP.NET application. + + + + + 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 + + + + 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 + + + + + when true, (most) bare plain URLs are auto-hyperlinked + WARNING: this is a significant deviation from the markdown spec + + + + + when true, RETURN becomes a literal newline + WARNING: this is a significant deviation from the markdown spec + + + + + use ">" for HTML output, or " />" for XHTML output + + + + + when true, problematic URL characters like [, ], (, and so forth will be encoded + WARNING: this is a significant deviation from the markdown spec + + + + + when false, email addresses will never be auto-linked + WARNING: this is a significant deviation from the markdown spec + + + + + when true, bold and italic require non-word characters on either side + WARNING: this is a significant deviation from the markdown spec + + + + + Markdown is a text-to-HTML conversion tool for web writers. + Markdown allows you to write using an easy-to-read, easy-to-write plain text format, + then convert it to structurally valid XHTML (or HTML). + + + + + Tabs are automatically converted to spaces as part of the transform + this constant determines how "wide" those tabs become in spaces + + + + + Create a new Markdown instance using default options + + + + + Create a new Markdown instance and optionally load options from a configuration + file. There they should be stored in the appSettings section, available options are: + + Markdown.StrictBoldItalic (true/false) + Markdown.EmptyElementSuffix (">" or " />" without the quotes) + Markdown.LinkEmails (true/false) + Markdown.AutoNewLines (true/false) + Markdown.AutoHyperlink (true/false) + Markdown.EncodeProblemUrlCharacters (true/false) + + + + + + Create a new Markdown instance and set the options from the MarkdownOptions object. + + + + + maximum nested depth of [] and () supported by the transform; implementation detail + + + + + In the static constuctor we'll initialize what stays the same across all transforms. + + + + + Transforms the provided Markdown-formatted text to HTML; + see http://en.wikipedia.org/wiki/Markdown + + + The order in which other subs are called here is + essential. Link and image substitutions need to happen before + EscapeSpecialChars(), so that any *'s or _'s in the a + and img tags get encoded. + + + + + Perform transformations that form block-level tags like paragraphs, headers, and list items. + + + + + Perform transformations that occur *within* block-level tags like paragraphs, headers, and list items. + + + + + splits on two or more newlines, to form "paragraphs"; + each paragraph is then unhashed (if it is a hash and unhashing isn't turned off) or wrapped in HTML p tag + + + + + Reusable pattern to match balanced [brackets]. See Friedl's + "Mastering Regular Expressions", 2nd Ed., pp. 328-331. + + + + + Reusable pattern to match balanced (parens). See Friedl's + "Mastering Regular Expressions", 2nd Ed., pp. 328-331. + + + + + Strips link definitions from text, stores the URLs and titles in hash references. + + + ^[id]: url "optional title" + + + + + derived pretty much verbatim from PHP Markdown + + + + + replaces any block-level HTML blocks with hash entries + + + + + returns an array of HTML tokens comprising the input string. Each token is + either a tag (possibly with nested, tags contained therein, such + as <a href="<MTFoo>">, or a run of text between tags. Each element of the + array is a two-element array; the first is either 'tag' or 'text'; the second is + the actual value. + + + + + Turn Markdown link shortcuts into HTML anchor tags + + + [link text](url "title") + [link text][id] + [id] + + + + + Turn Markdown image shortcuts into HTML img tags. + + + ![alt text][id] + ![alt text](url "optional title") + + + + + Turn Markdown headers into HTML header tags + + + Header 1 + ======== + + Header 2 + -------- + + # Header 1 + ## Header 2 + ## Header 2 with closing hashes ## + ... + ###### Header 6 + + + + + Turn Markdown horizontal rules into HTML hr tags + + + *** + * * * + --- + - - - + + + + + Turn Markdown lists into HTML ul and ol and li tags + + + + + Process the contents of a single ordered or unordered list, splitting it + into individual list items. + + + + + /// Turn Markdown 4-space indented code into HTML pre code blocks + + + + + Turn Markdown `code spans` into HTML code tags + + + + + Turn Markdown *italics* and **bold** into HTML strong and em tags + + + + + Turn markdown line breaks (two space at end of line) into HTML break tags + + + + + Turn Markdown > quoted blocks into HTML blockquote blocks + + + + + Turn angle-delimited URLs into HTML anchor tags + + + <http://www.example.com> + + + + + Remove one level of line-leading spaces + + + + + encodes email address randomly + roughly 10% raw, 45% hex, 45% dec + note that @ is always encoded and : never is + + + + + Encode/escape certain Markdown characters inside code blocks and spans where they are literals + + + + + Encode any ampersands (that aren't part of an HTML entity) and left or right angle brackets + + + + + Encodes any escaped characters such as \`, \*, \[ etc + + + + + swap back in all the special characters we've hidden + + + + + escapes Bold [ * ] and Italic [ _ ] characters + + + + + hex-encodes some unusual "problem" chars in URLs to avoid URL detection problems + + + + + Within tags -- meaning between < and > -- encode [\ ` * _] so they + don't conflict with their use in Markdown for code, italics and strong. + We're replacing each such character with its corresponding hash + value; this is likely overkill, but it should prevent us from colliding + with the escape values by accident. + + + + + convert all tabs to _tabWidth spaces; + standardizes line endings from DOS (CR LF) or Mac (CR) to UNIX (LF); + makes sure text ends with a couple of newlines; + removes any blank lines (only spaces) in the text + + + + + this is to emulate what's evailable in PHP + + + + + use ">" for HTML output, or " />" for XHTML output + + + + + when false, email addresses will never be auto-linked + WARNING: this is a significant deviation from the markdown spec + + + + + when true, bold and italic require non-word characters on either side + WARNING: this is a significant deviation from the markdown spec + + + + + when true, RETURN becomes a literal newline + WARNING: this is a significant deviation from the markdown spec + + + + + when true, (most) bare plain URLs are auto-hyperlinked + WARNING: this is a significant deviation from the markdown spec + + + + + when true, problematic URL characters like [, ], (, and so forth will be encoded + WARNING: this is a significant deviation from the markdown spec + + + + + current version of MarkdownSharp; + see http://code.google.com/p/markdownsharp/ for the latest code or to contribute + + + + + Render Markdown for text/markdown and text/plain ContentTypes + + + + + Used in Unit tests + + + + + + Non ASP.NET requests + + + + + + + + ASP.NET requests + + + + + + 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 + + + + + Highly 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 + + + + + Changes the links for the servicestack/metadata page + + + + + Non ASP.NET requests + + + + + ASP.NET requests + + + + + Keep default file contents in-memory + + + + + + 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. + + + + diff --git a/src/Docs/packages/ServiceStack.Client.4.0.11/ServiceStack.Client.4.0.11.nupkg b/src/Docs/packages/ServiceStack.Client.4.0.11/ServiceStack.Client.4.0.11.nupkg new file mode 100644 index 00000000..729cf384 Binary files /dev/null and b/src/Docs/packages/ServiceStack.Client.4.0.11/ServiceStack.Client.4.0.11.nupkg differ diff --git a/src/Docs/packages/ServiceStack.Client.4.0.11/lib/net40/ServiceStack.Client.dll b/src/Docs/packages/ServiceStack.Client.4.0.11/lib/net40/ServiceStack.Client.dll new file mode 100644 index 00000000..661af9fb Binary files /dev/null and b/src/Docs/packages/ServiceStack.Client.4.0.11/lib/net40/ServiceStack.Client.dll differ diff --git a/src/Docs/packages/ServiceStack.Client.4.0.11/lib/net40/ServiceStack.Client.xml b/src/Docs/packages/ServiceStack.Client.4.0.11/lib/net40/ServiceStack.Client.xml new file mode 100644 index 00000000..1811c5ff --- /dev/null +++ b/src/Docs/packages/ServiceStack.Client.4.0.11/lib/net40/ServiceStack.Client.xml @@ -0,0 +1,383 @@ + + + + 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 + + + + + Returns the next message from queueName or null if no message + + + + + + + Generic Proxy for service calls. + + The service Contract + + + + Returns the transparent proxy for the service call + + + + 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 + + + + + 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. + + + + + 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 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. + + + + + Gets the collection of headers to be added to outgoing requests. + + + + + 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. + + + + + 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 + + + + + Track any IDisposable's to dispose of at the end of the request in IAppHost.OnEndRequest() + + + + + + 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. + + + + + 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 + + + + Specifies if cookies should be stored + + + + + Compresses the specified text using the default compression method: Deflate + + The text. + Type of the compression. + + + + + Decompresses the specified gz buffer using the default compression method: Inflate + + The gz buffer. + Type of the compression. + + + + + 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. + + + + + Used if we need to serialize this exception to XML + + + + + + Returns the first error code + + The error code. + + + + Encapsulates a validation result. + + + + + 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 + + + + + + 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). + + + + + 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. + + + + + 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. + + + + + Gets the singleton instance. + + + + + Naming convention for the request's Response DTO + + + + + Shortcut to get the ResponseStatus whether it's bare or inside a IHttpResult + + + + + + diff --git a/src/Docs/packages/ServiceStack.Client.4.0.11/lib/sl5/ServiceStack.Client.dll b/src/Docs/packages/ServiceStack.Client.4.0.11/lib/sl5/ServiceStack.Client.dll new file mode 100644 index 00000000..51628a91 Binary files /dev/null and b/src/Docs/packages/ServiceStack.Client.4.0.11/lib/sl5/ServiceStack.Client.dll differ diff --git a/src/Docs/packages/ServiceStack.Common.4.0.11/ServiceStack.Common.4.0.11.nupkg b/src/Docs/packages/ServiceStack.Common.4.0.11/ServiceStack.Common.4.0.11.nupkg new file mode 100644 index 00000000..050eb691 Binary files /dev/null and b/src/Docs/packages/ServiceStack.Common.4.0.11/ServiceStack.Common.4.0.11.nupkg differ diff --git a/src/Docs/packages/ServiceStack.Common.4.0.11/lib/net40/ServiceStack.Common.dll b/src/Docs/packages/ServiceStack.Common.4.0.11/lib/net40/ServiceStack.Common.dll new file mode 100644 index 00000000..4c7a5afb Binary files /dev/null and b/src/Docs/packages/ServiceStack.Common.4.0.11/lib/net40/ServiceStack.Common.dll differ diff --git a/src/Docs/packages/ServiceStack.Common.4.0.11/lib/net40/ServiceStack.Common.xml b/src/Docs/packages/ServiceStack.Common.4.0.11/lib/net40/ServiceStack.Common.xml new file mode 100644 index 00000000..109d91cf --- /dev/null +++ b/src/Docs/packages/ServiceStack.Common.4.0.11/lib/net40/ServiceStack.Common.xml @@ -0,0 +1,206 @@ + + + + ServiceStack.Common + + + + + Useful .NET Encryption Utils from: + http://andrewlocatelliwoodcock.com/2011/08/01/implementing-rsa-asymmetric-public-private-key-encryption-in-c-encrypting-under-the-public-key/ + + + + + Encrypt an arbitrary string of data under the supplied public key + + The public key to encrypt under + The data to encrypt + The bit length or strength of the public key: 1024, 2048 or 4096 bits. This must match the + value actually used to create the publicKey + + + + + Create Public and Private Key Pair based on settings already in static class. + + RsaKeyPair + + + + Gets the textual description of the enum if it has one. e.g. + + + enum UserColors + { + [Description("Bright Red")] + BrightRed + } + UserColors.BrightRed.ToDescription(); + + + + + + + + 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. + + + + + 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. + + + + + + Func to get the Strongly-typed field + + + + + Required to cast the return ValueType to an object for caching + + + + + Func to set the Strongly-typed field + + + + + Required to cast the ValueType to an object for caching + + + + + Required to cast the ValueType to an object for caching + + + + + Func to get the Strongly-typed field + + + + + Required to cast the return ValueType to an object for caching + + + + + Func to set the Strongly-typed field + + + + + Required to cast the ValueType to an object for caching + + + + + Required to cast the ValueType to an object for caching + + + + + 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. + + + + + 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 + + + + + + + Provide the an option for the callee to block until all commands are executed + + + + + + + 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. + + + + diff --git a/src/Docs/packages/ServiceStack.Interfaces.4.0.11/ServiceStack.Interfaces.4.0.11.nupkg b/src/Docs/packages/ServiceStack.Interfaces.4.0.11/ServiceStack.Interfaces.4.0.11.nupkg new file mode 100644 index 00000000..4e4fca5b Binary files /dev/null and b/src/Docs/packages/ServiceStack.Interfaces.4.0.11/ServiceStack.Interfaces.4.0.11.nupkg differ diff --git a/src/Docs/packages/ServiceStack.Interfaces.4.0.11/lib/net40/ServiceStack.Interfaces.dll b/src/Docs/packages/ServiceStack.Interfaces.4.0.11/lib/net40/ServiceStack.Interfaces.dll new file mode 100644 index 00000000..d13fea94 Binary files /dev/null and b/src/Docs/packages/ServiceStack.Interfaces.4.0.11/lib/net40/ServiceStack.Interfaces.dll differ diff --git a/src/packages/ServiceStack.Common.3.9.63/lib/sl5/ServiceStack.Interfaces.xml b/src/Docs/packages/ServiceStack.Interfaces.4.0.11/lib/net40/ServiceStack.Interfaces.xml similarity index 61% rename from src/packages/ServiceStack.Common.3.9.63/lib/sl5/ServiceStack.Interfaces.xml rename to src/Docs/packages/ServiceStack.Interfaces.4.0.11/lib/net40/ServiceStack.Interfaces.xml index 27da3086..fd6b0866 100644 --- a/src/packages/ServiceStack.Common.3.9.63/lib/sl5/ServiceStack.Interfaces.xml +++ b/src/Docs/packages/ServiceStack.Interfaces.4.0.11/lib/net40/ServiceStack.Interfaces.xml @@ -4,12 +4,17 @@ ServiceStack.Interfaces - + + + Required when using a TypeDescriptor to make it unique + + + A common interface implementation that is implemented by most cache providers - + Removes the specified item from the cache. @@ -18,13 +23,13 @@ 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. @@ -34,7 +39,7 @@ 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. @@ -47,7 +52,7 @@ 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. @@ -60,7 +65,7 @@ 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. @@ -71,22 +76,22 @@ 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. @@ -96,14 +101,26 @@ a Dictionary holding all items indexed by their key. - + Sets multiple items to the cache. The values. - + + + 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 light interface over a cache client. This interface was inspired by Enyim.Caching.MemcachedClient @@ -113,7 +130,7 @@ implemented in DdnMemcachedClient - + Removes the specified item from the cache. @@ -122,13 +139,13 @@ 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. @@ -137,7 +154,7 @@ 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. @@ -148,7 +165,7 @@ 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. @@ -159,7 +176,7 @@ 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. @@ -170,7 +187,7 @@ 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. @@ -179,12 +196,12 @@ 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. @@ -193,12 +210,12 @@ a Dictionary holding all items indexed by their key. - + A Users Session - + Set a typed value at key @@ -206,7 +223,7 @@ - + Get a typed value at key @@ -214,13 +231,32 @@ - + Store any object at key + + + Retrieves a User Session + + + + + Gets the session for this request, creates one if it doesn't exist. + + + + + + + + Gets the session for this request, creates one if it doesn't exist. + Only for ASP.NET apps. Uses the HttpContext.Current singleton. + + Allow delegation of dependencies to other IOC's @@ -240,15 +276,85 @@ - + + + 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. + + + + + Explicit foreign key name. If it's null, or empty, the FK name will be autogenerated as before. + + + + + IgnoreAttribute + Use to indicate that a property is not a field in the table + properties with this attribute are ignored when building sql sentences + + + + + Primary key attribute. + use to indicate that property is part of the pk + + + + + Used to annotate an Entity with its DB schema + + + + For providers that want a cleaner API with a little more perf - + + + Decorate any type or property with adhoc info + + + + + Creates a Debug Logger, that logs all messages to: System.Diagnostics.Debug + + Made public so its testable + + + + + Factory to create ILog instances + + + + + Gets the logger. + + + + + Gets the logger. + + + - Manages a connection to a persistance provider + Default logger is to System.Diagnostics.Debug.WriteLine + + Made public so its testable @@ -364,274 +470,197 @@ true if this instance is debug enabled; otherwise, false. - - - Factory to create ILog instances - - - - - Gets the logger. - - The type. - - - - - Gets the logger. - - Name of the type. - - - + - Logging API for this library. You can inject your own implementation otherwise - will use the DebugLogFactory to write to System.Diagnostics.Debug + Initializes a new instance of the class. - + - Gets the logger. + Initializes a new instance of the class. - The type. - - + - Gets the logger. + Logs the specified message. - Name of the type. - - + - Gets or sets the log factory. - Use this to override the factory that is used to create loggers + Logs the format. - The log factory. - + - Creates a Console Logger, that logs all messages to: System.Console - - Made public so its testable + Logs the specified message. - + - Default logger is to Console.WriteLine + 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. - The type. - + - Initializes a new instance of the class. + 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. - + 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 - + StringBuilderLog writes to shared StringBuffer. Made public so its testable - + - Initializes a new instance of the class. + Logs the specified message. - The type. - + - Initializes a new instance of the class. + Logs the format. - The type. - + Logs the specified message. The message. - The exception. - - - - Logs the format. - - The message. - The args. - + - Logs the specified message. + Creates a test Logger, that stores all log messages in a member list - The message. - + - Default logger is to System.Diagnostics.Debug.Print + 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. + Initializes a new instance of the class. The type. - + - Initializes a new instance of the class. + 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. - - - Creates a Debug Logger, that logs all messages to: System.Diagnostics.Debug - - Made public so its testable - - - - - 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 + Contract indication that the Response DTO has a ResponseStatus - + - Initializes a new instance of the class. + Logging API for this library. You can inject your own implementation otherwise + will use the DebugLogFactory to write to System.Diagnostics.Debug - The type. - + - Initializes a new instance of the class. + Gets the logger. - The type. - + - Logs the specified message. + Gets the logger. - The message. - The exception. - + - Logs the format. + Gets or sets the log factory. + Use this to override the factory that is used to create loggers - The message. - The args. - + - Logs the specified message. + Publish the specified message into the durable queue @queueName - The message. - + - The same functionality is on IServiceResolver + Publish the specified message into the transient queue @queueName - + - Publish the specified message into the durable queue @queueName + Synchronous blocking get. - - - + - Publish the specified message into the transient queue @queueName + Non blocking get message - - - + - Synchronous blocking get. + Acknowledge the message has been successfully received or processed - - - - + - Non blocking get message + Negative acknowledgement the message was not processed correctly - - - + - Blocking wait for notifications on any of the supplied channels + Create a typed message from a raw MQ Response artefact - - @@ -691,22 +720,12 @@ Get a list of all message types registered on this MQ Host - - - An Error Message Type that can be easily serialized - - Basic implementation of IMessage[T] - - - Base Exception for all ServiceStack.Messaging exceptions - - Util static generic class to create unique queue names for types @@ -756,13 +775,6 @@ Interface to operations that allow queued commands to be completed - - - Returns a high-level typed client API - Shorter Alias is As<T>(); - - - Returns a high-level typed client API @@ -869,254 +881,458 @@ Interface to redis pipeline - + + + Gets or sets parameter name with which allowable values will be associated. + + + - If the Service also implements this interface, - IAsyncService.ExecuteAsync() will be used instead of IService.Execute() for - EndpointAttributes.AsyncOneWay requests + The overall description of an API. Used by Swagger. + + + + + 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, 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. + + + + + 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. + + + + + The status code of a response + + + + + The description of a response status code + + + + + Marker interfaces + + + + + Implement on Request DTOs that need access to the raw Request Stream + + + + + The raw Http Request Input Stream + + + + + Resolve a dependency from the AppHost's IOC + + + + + 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 + + + + A new shallow copy of this filter is used on every request. + + + + + + Order in which Request Filters are executed. + <0 Executed before global request filters + >0 Executed after global request filters + + + + + 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 new shallow copy of this filter is used on every request. + + + + + + Order in which Response Filters are executed. + <0 Executed before global response filters + >0 Executed after global response filters + + + The HTTP Response Status - + The HTTP Response Status Code - + The HTTP Status Description - + The HTTP Response ContentType - + Additional HTTP Headers - + Response DTO - + if not provided, get's injected by ServiceStack - + Holds the request call context - + + + A thin wrapper around ASP.NET or HttpListener's HttpRequest + + + + + A thin wrapper around each host's Request e.g: ASP.NET, HttpListener, MQ, etc + + + + + The entire string contents of Request.InputStream + + + + + + The underlying ASP.NET or HttpListener HttpRequest + + + + + The name of the service being called (e.g. Request DTO Name) + + + + + The Verb / HttpMethod or Action for this request + + + + + Optional preferences for the processing of this Request + + + + + The Request DTO, after it has been deserialized. + + + + + The request ContentType + + + + + 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. + + + + + Buffer the Request InputStream so it can be re-read + + + + + The Remote Ip as reported by Request.UserHostAddress + + + + + The Remote Ip as reported by X-Forwarded-For, X-Real-IP or Request.UserHostAddress + + + + + e.g. is https or not + + + + + Access to the multi-part/formdata files posted on this request + + + + + The value of the Referrer, null if not available + + + + + 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 + + + A thin wrapper around ASP.NET or HttpListener's HttpResponse - + + + A thin wrapper around each host's Response e.g: ASP.NET, HttpListener, MQ, etc + + + 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 - + The underlying ASP.NET or HttpListener HttpResponse - + + + The Response DTO + + + Gets a value indicating whether this instance is closed. - + Log every service request - + Log a request - The RequestContext + The RequestContext Request DTO Response DTO or Exception How long did the Request take - + View the most recent logs - + 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 access to /requestlogs service to role - + 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. - + Implement on services that need access to the RequestContext - - - If the Service also implements this interface, - IRestDeleteService.Delete() will be used instead of IService.Execute() for - EndpointAttributes.HttpDelete requests - - - - - - If the Service also implements this interface, - IRestGetService.Get() will be used instead of IService.Execute() for - EndpointAttributes.HttpGet requests - - - - - - If the Service also implements this interface, - IRestPutService.Patch() will be used instead of IService.Execute() for - EndpointAttributes.HttpPatch requests - - - - - - If the Service also implements this interface, - IRestPostService.Post() will be used instead of IService.Execute() for - EndpointAttributes.HttpPost requests - - - - - - If the Service also implements this interface, - IRestPutService.Put() will be used instead of IService.Execute() for - EndpointAttributes.HttpPut requests - - - - - - Utility interface that implements all Rest operations - - - - - - Marker interfaces - - - + 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. - - - - + - Allow the registration of custom routes + Executes the DTO request with an empty RequestContext. - + 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 RestServiceAttribute.Path + See RouteAttribute.Path for details on the correct format. - The same instance; + The same instance; never . - + Maps the specified REST path to the specified request DTO, and specifies the HTTP verbs supported by the path. @@ -1124,17 +1340,17 @@ The type of request DTO to map the path to. The path to map the request DTO to. - See RestServiceAttribute.Path + 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; + The same instance; never . - + Maps the specified REST path to the specified request DTO, specifies the HTTP verbs supported by the path, and indicates @@ -1144,16 +1360,27 @@ The type of request DTO to map the path to. The path to map the request DTO to. - See RestServiceAttribute.Path + 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; + 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 @@ -1163,7 +1390,7 @@ The type of request DTO to map the path to. The path to map the request DTO to. - See RestServiceAttribute.Path + See RouteAttribute.Path for details on the correct format. The comma-delimited list of HTTP verbs supported by the path, @@ -1175,46 +1402,39 @@ The longer text to explain the behaviour of the REST. - The same instance; + The same instance; never . - - - 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. - - - + 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. + Initializes an instance of the class. The path template to map to the request. See - RouteAttribute.Path + RouteAttribute.Path for details on the correct format. - + - Initializes an instance of the class. + Initializes an instance of the class. The path template to map to the request. See - RouteAttribute.Path + 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. @@ -1263,17 +1483,17 @@ 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". @@ -1283,87 +1503,144 @@ by the service, or empty if all verbs are supported. - + - Required when using a TypeDescriptor to make it unique + Used to rank the precedences of route definitions in reverse routing. + i.e. Priorities below 0 are auto-generated have less precedence. - + - Initializes an instance of the class. + Fallback routes have the lowest precedence, i.e. after normal Routes, static files or any matching Catch All Handlers. - - The path template to map to the request. See - RestServiceAttribute.Path - for details on the correct format. - - + - Initializes an instance of the class. + 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 - - The path template to map to the request. See - RestServiceAttribute.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. - + - Fallback routes have the lowest precedence, i.e. after normal Routes, static files or any matching Catch All Handlers. + A log entry added by the IRequestLogger - + - 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 + Decorate on Request DTO's to alter the accessibility of a service and its visibility on /metadata pages - + - Contract indication that the Response DTO has a ResponseStatus + Restrict access and metadata visibility to any of the specified access scenarios + The restrict access to scenarios. - + - A log entry added by the IRequestLogger + 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 + + + + + + + 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 and Local Intranet only - + + + Restrict access and hide from metadata to requests from Localhost 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 + + + + 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 + + + + + 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. + Initializes a new instance of the class. A response status without an errorcode == success - + - Initializes a new instance of the class. + Initializes a new instance of the class. A response status with an errorcode == failure - + - Initializes a new instance of the class. + 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 @@ -1371,49 +1648,38 @@ A value of non-null means the service encountered an error while processing the request. - + A human friendly error message - + - + For multiple detailed validation errors. Can hold a specific error message for each named field. - + - Sends the specified request. + Write a partial content result - The request. - - + - This instructs the generator tool to generate translator methods for the types supplied. - A {TypeName}.generated.cs partial class will be generated that contains the methods required - to generate to and from that type. + Whether this HttpResult allows Partial Response - + - This instructs the generator tool to generate translator extension methods for the types supplied. - A {TypeName}.generated.cs static class will be generated that contains the extension methods required - to generate to and from that type. - - The source type is what the type the attribute is decorated on which can only be resolved at runtime. - - - - - This changes the default behaviour for the + Sends the specified request. + The request. + diff --git a/src/Docs/packages/ServiceStack.Text.4.0.11/ServiceStack.Text.4.0.11.nupkg b/src/Docs/packages/ServiceStack.Text.4.0.11/ServiceStack.Text.4.0.11.nupkg new file mode 100644 index 00000000..9ff6da54 Binary files /dev/null and b/src/Docs/packages/ServiceStack.Text.4.0.11/ServiceStack.Text.4.0.11.nupkg differ diff --git a/src/Docs/packages/ServiceStack.Text.4.0.11/lib/net40/ServiceStack.Text.dll b/src/Docs/packages/ServiceStack.Text.4.0.11/lib/net40/ServiceStack.Text.dll new file mode 100644 index 00000000..30eee22c Binary files /dev/null and b/src/Docs/packages/ServiceStack.Text.4.0.11/lib/net40/ServiceStack.Text.dll differ diff --git a/src/packages/ServiceStack.Text.3.9.63/lib/sl5/ServiceStack.Text.XML b/src/Docs/packages/ServiceStack.Text.4.0.11/lib/net40/ServiceStack.Text.xml similarity index 72% rename from src/packages/ServiceStack.Text.3.9.63/lib/sl5/ServiceStack.Text.XML rename to src/Docs/packages/ServiceStack.Text.4.0.11/lib/net40/ServiceStack.Text.xml index 54ce1836..9688d3e1 100644 --- a/src/packages/ServiceStack.Text.3.9.63/lib/sl5/ServiceStack.Text.XML +++ b/src/Docs/packages/ServiceStack.Text.4.0.11/lib/net40/ServiceStack.Text.xml @@ -29,6 +29,21 @@ The type if it exists + + + Populate an object with Example data. + + + + + + + Populates the object with example data. + + + Tracks how deeply nested we are + + If AlwaysUseUtc is set to true then convert all DateTime to UTC. @@ -36,6 +51,14 @@ + + + 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)/ @@ -131,7 +154,7 @@ to support web-friendly serialized formats, ie emitting lowercase_underscore_casing for JSON - + Define how property names are mapped during deserialization @@ -244,22 +267,22 @@ Whether there is a fn (raw or otherwise) - + 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 @@ -340,6 +363,16 @@ + + + Public Code API to register commercial license for ServiceStack. + + + + + Internal Utilities to verify licensing + + Pretty Thread-Safe cache class from: @@ -350,31 +383,146 @@ equality. The type is fully thread-safe. - + + + Represents an individual object, allowing access to members by-name + + + + + 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 + + + + + Get or Set the value of a named member for the underlying object + + + + + The object represented by this instance + + + + + Provides by-name member-access to objects of a given type + + + + + 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 + + + + Does this type support new instances via a parameterless constructor? + + + + + Get or set the value of a named member on the target instance + + + + + Maps the path of a file in the context of a VS project + + 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 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 + + 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 + + + + + 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. + + + @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 @@ -382,54 +530,54 @@ 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 @@ -438,7 +586,7 @@ To. - + Skip the encoding process for 'safe strings' diff --git a/src/Docs/packages/repositories.config b/src/Docs/packages/repositories.config new file mode 100644 index 00000000..89297ada --- /dev/null +++ b/src/Docs/packages/repositories.config @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/Docs/redis-admin-ui/redis-admin-ui-overview.md b/src/Docs/redis-admin-ui/redis-admin-ui-overview.md index de24c4f2..9fe4728e 100644 --- a/src/Docs/redis-admin-ui/redis-admin-ui-overview.md +++ b/src/Docs/redis-admin-ui/redis-admin-ui-overview.md @@ -7,7 +7,7 @@ Included is a ServiceStack web service layer which provide JSON, XML, JSV and SO Just like the RedisAdminUI this allows you to fully manage your redis-server instance using javascript from a browser. ##Live Demo -A live demo of the RedisAdminUI can be found here [http://servicestack.net/RedisAdminUI/AjaxClient/](http://servicestack.net/RedisAdminUI/AjaxClient/) +A live demo of the RedisAdminUI can be found here [http://mono.servicestack.net/RedisAdminUI/AjaxClient/](http://mono.servicestack.net/RedisAdminUI/AjaxClient/) View the demos live list of the [available web services](http://www.servicestack.net/RedisAdminUI/servicestack/metadata). diff --git a/src/Docs/redis-client/redis-client.md b/src/Docs/redis-client/redis-client.md index 37feb2bd..7b3403bd 100644 --- a/src/Docs/redis-client/redis-client.md +++ b/src/Docs/redis-client/redis-client.md @@ -33,7 +33,7 @@ Each client is optimized for maximum efficiency and provides layered functionali At all times you can pick the most optimal Redis Client for your needs so you can achieve maximum efficiency in your applications. ### Redis Client API Overview -[![Redis Client API](http://servicestack.net/img/Redis-annotated-preview.png)](http://servicestack.net/img/Redis-annotated.png) +[![Redis Client API](http://mono.servicestack.net/img/Redis-annotated-preview.png)](http://mono.servicestack.net/img/Redis-annotated.png) ### Thread-safe client managers For multi-threaded applications you can choose from our different client connection managers: diff --git a/src/Docs/text-serializers/json-csv-jsv-serializers.md b/src/Docs/text-serializers/json-csv-jsv-serializers.md index a6d37519..8608c4b5 100644 --- a/src/Docs/text-serializers/json-csv-jsv-serializers.md +++ b/src/Docs/text-serializers/json-csv-jsv-serializers.md @@ -15,7 +15,7 @@ Benchmarks for .NET's popular Binary and JSON Serializers are available at: [ser ## NuGet ServiceStack.Text -![Install-Package ServiceStack.Text](http://servicestack.net/img/nuget-servicestack.text.png) +![Install-Package ServiceStack.Text](http://mono.servicestack.net/img/nuget-servicestack.text.png) ## ServiceStack.JsonSerializer - the fastest JSON Serializer for .NET For reasons outlined [in this blog post](http://www.servicestack.net/mythz_blog/?p=344) I decided to re-use *TypeSerializer's* text processing-core to create ServiceStack.JsonSerializer - the fastest JSON Serializer for .NET. diff --git a/src/Docs/text-serializers/json-serializer.md b/src/Docs/text-serializers/json-serializer.md index 3a20453c..ca8eb138 100644 --- a/src/Docs/text-serializers/json-serializer.md +++ b/src/Docs/text-serializers/json-serializer.md @@ -1,6 +1,6 @@ # ServiceStack JsonSerializer -Benchmarks for .NET's JSON Serializers are available at: [servicestack.net/benchmarks/](http://www.servicestack.net/benchmarks/) +Benchmarks for .NET's JSON Serializers are available at: [docs.servicestack.net/real-world-performance](https://docs.servicestack.net/real-world-performance) ServiceStack's JsonSerializer is optimized for serializing C# POCO types in and out of JSON as fast, compact and cleanly as possible. In most cases C# objects serializes as you would expect them to without added json extensions or serializer-specific artefacts. diff --git a/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/AnswersService.cs b/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/AnswersService.cs index 114e96df..7599c995 100644 --- a/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/AnswersService.cs +++ b/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/AnswersService.cs @@ -1,5 +1,5 @@ using RedisStackOverflow.ServiceModel; -using ServiceStack.ServiceInterface; +using ServiceStack; namespace RedisStackOverflow.ServiceInterface { diff --git a/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/IRepository.cs b/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/IRepository.cs index 165a2f54..e0b59519 100644 --- a/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/IRepository.cs +++ b/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/IRepository.cs @@ -2,9 +2,8 @@ using System.Collections.Generic; using System.Linq; using RedisStackOverflow.ServiceModel; -using ServiceStack.Common.Utils; +using ServiceStack; using ServiceStack.Redis; -using ServiceStack.Common.Extensions; namespace RedisStackOverflow.ServiceInterface { @@ -118,7 +117,7 @@ public User GetOrCreateUser(User user) redisUsers.Store(user); //Save reference to User key using the DisplayName alias - redis.SetEntry(userIdAliasKey, user.CreateUrn()); + redis.SetValue(userIdAliasKey, user.CreateUrn()); return redisUsers.GetById(user.Id); } @@ -172,10 +171,10 @@ public List GetQuestionsTaggedWith(string tagName) private List ToQuestionResults(IEnumerable questions) { - var uniqueUserIds = questions.ConvertAll(x => x.UserId).ToHashSet(); + var uniqueUserIds = questions.Map(x => x.UserId).ToHashSet(); var usersMap = GetUsersByIds(uniqueUserIds).ToDictionary(x => x.Id); - var results = questions.ConvertAll(x => new QuestionResult { Question = x }); + var results = questions.Map(x => new QuestionResult { Question = x }); var resultsMap = results.ToDictionary(q => q.Question.Id); results.ForEach(x => x.User = usersMap[x.Question.UserId]); @@ -399,7 +398,7 @@ public List GetTagsByPopularity(int skip, int take) using (var redis = RedisManager.GetReadOnlyClient()) { var tagEntries = redis.GetRangeWithScoresFromSortedSetDesc(TagIndex.All, skip, take); - var tags = tagEntries.ConvertAll(kvp => new Tag { Name = kvp.Key, Score = (int)kvp.Value }); + var tags = tagEntries.Map(kvp => new Tag { Name = kvp.Key, Score = (int)kvp.Value }); return tags; } } diff --git a/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/QuestionsService.cs b/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/QuestionsService.cs index 88f2cf9a..a0bfc4e9 100644 --- a/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/QuestionsService.cs +++ b/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/QuestionsService.cs @@ -1,6 +1,5 @@ using RedisStackOverflow.ServiceModel; -using ServiceStack.Common.Extensions; -using ServiceStack.ServiceInterface; +using ServiceStack; namespace RedisStackOverflow.ServiceInterface { diff --git a/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/RedisStackOverflow.ServiceInterface.csproj b/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/RedisStackOverflow.ServiceInterface.csproj index 7b0f22d6..3ff814da 100644 --- a/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/RedisStackOverflow.ServiceInterface.csproj +++ b/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/RedisStackOverflow.ServiceInterface.csproj @@ -10,7 +10,7 @@ Properties RedisStackOverflow.ServiceInterface RedisStackOverflow.ServiceInterface - v3.5 + v4.5 512 @@ -31,6 +31,7 @@ false false true + true @@ -41,6 +42,7 @@ prompt 4 AllRules.ruleset + false pdbonly @@ -50,44 +52,41 @@ prompt 4 AllRules.ruleset + false - - ..\..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.dll + + ..\..\packages\ServiceStack.4.5.0\lib\net45\ServiceStack.dll + True - - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Common.dll + + ..\..\packages\ServiceStack.Client.4.5.0\lib\net45\ServiceStack.Client.dll + True - - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Interfaces.dll + + ..\..\packages\ServiceStack.Common.4.5.0\lib\net45\ServiceStack.Common.dll + True - - ..\..\packages\ServiceStack.OrmLite.SqlServer.3.9.63\lib\net35\ServiceStack.OrmLite.dll + + ..\..\packages\ServiceStack.Interfaces.4.5.0\lib\portable-wp80+sl5+net45+win8+wpa81+monotouch+monoandroid+xamarin.ios10\ServiceStack.Interfaces.dll + True - - ..\..\packages\ServiceStack.OrmLite.SqlServer.3.9.63\lib\net35\ServiceStack.OrmLite.SqlServer.dll + + ..\..\packages\ServiceStack.Redis.4.5.0\lib\net45\ServiceStack.Redis.dll + True - - ..\..\packages\ServiceStack.Redis.3.9.63\lib\net35\ServiceStack.Redis.dll - - - ..\..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.ServiceInterface.dll - - - ..\..\packages\ServiceStack.Text.3.9.63\lib\net35\ServiceStack.Text.dll + + ..\..\packages\ServiceStack.Text.4.5.0\lib\net45\ServiceStack.Text.dll + True - 3.5 - 3.0 - 3.5 - 3.5 diff --git a/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/ResetService.cs b/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/ResetService.cs index e51d2692..9311a93f 100644 --- a/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/ResetService.cs +++ b/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/ResetService.cs @@ -1,8 +1,7 @@ using System.Collections.Generic; using RedisStackOverflow.ServiceModel; -using ServiceStack.Common.Extensions; +using ServiceStack; using ServiceStack.Redis; -using ServiceStack.ServiceInterface; namespace RedisStackOverflow.ServiceInterface { @@ -54,8 +53,8 @@ public object Get(Reset request) JavascriptQuestions.ForEach(questionsd.Add); var questions = new List(); - questions.AddRange(RestQuestions.ConvertAll(kvp => ToQuestion(kvp.Key, kvp.Value, new List { "rest", "http" }))); - questions.AddRange(JavascriptQuestions.ConvertAll(kvp => ToQuestion(kvp.Key, kvp.Value, new List { "javascript", "jquery" }))); + questions.AddRange(RestQuestions.Map(kvp => ToQuestion(kvp.Key, kvp.Value, new List { "rest", "http" }))); + questions.AddRange(JavascriptQuestions.Map(kvp => ToQuestion(kvp.Key, kvp.Value, new List { "javascript", "jquery" }))); RedisManager.Exec(r => r.FlushAll()); diff --git a/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/StatsService.cs b/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/StatsService.cs index 10ab8e1f..83b0cab9 100644 --- a/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/StatsService.cs +++ b/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/StatsService.cs @@ -1,5 +1,5 @@ using RedisStackOverflow.ServiceModel; -using ServiceStack.ServiceInterface; +using ServiceStack; namespace RedisStackOverflow.ServiceInterface { diff --git a/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/UserService.cs b/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/UserService.cs index 10bf3ce1..6e7877bb 100644 --- a/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/UserService.cs +++ b/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/UserService.cs @@ -1,5 +1,5 @@ using RedisStackOverflow.ServiceModel; -using ServiceStack.ServiceInterface; +using ServiceStack; namespace RedisStackOverflow.ServiceInterface { diff --git a/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/packages.config b/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/packages.config index f57348a5..1b4c7602 100644 --- a/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/packages.config +++ b/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/packages.config @@ -1,8 +1,9 @@  - - - - - + + + + + + \ No newline at end of file diff --git a/src/RedisStackOverflow/RedisStackOverflow.ServiceModel/Answers.cs b/src/RedisStackOverflow/RedisStackOverflow.ServiceModel/Answers.cs index f3a73e5e..d80f4a62 100644 --- a/src/RedisStackOverflow/RedisStackOverflow.ServiceModel/Answers.cs +++ b/src/RedisStackOverflow/RedisStackOverflow.ServiceModel/Answers.cs @@ -1,5 +1,5 @@ using System; -using ServiceStack.ServiceHost; +using ServiceStack; namespace RedisStackOverflow.ServiceModel { diff --git a/src/RedisStackOverflow/RedisStackOverflow.ServiceModel/Questions.cs b/src/RedisStackOverflow/RedisStackOverflow.ServiceModel/Questions.cs index 7e1f5f85..eecc2bce 100644 --- a/src/RedisStackOverflow/RedisStackOverflow.ServiceModel/Questions.cs +++ b/src/RedisStackOverflow/RedisStackOverflow.ServiceModel/Questions.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; -using ServiceStack.ServiceHost; -using ServiceStack.ServiceInterface.ServiceModel; +using ServiceStack; namespace RedisStackOverflow.ServiceModel { diff --git a/src/RedisStackOverflow/RedisStackOverflow.ServiceModel/RedisStackOverflow.ServiceModel.csproj b/src/RedisStackOverflow/RedisStackOverflow.ServiceModel/RedisStackOverflow.ServiceModel.csproj index dc3f94d3..6e1f3559 100644 --- a/src/RedisStackOverflow/RedisStackOverflow.ServiceModel/RedisStackOverflow.ServiceModel.csproj +++ b/src/RedisStackOverflow/RedisStackOverflow.ServiceModel/RedisStackOverflow.ServiceModel.csproj @@ -10,7 +10,7 @@ Properties RedisStackOverflow.ServiceModel RedisStackOverflow.ServiceModel - v3.5 + v4.5 512 @@ -22,6 +22,7 @@ DEBUG;TRACE prompt 4 + false pdbonly @@ -30,19 +31,12 @@ TRACE prompt 4 + false - - False - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Common.dll - - - False - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Interfaces.dll - - - False - ..\..\packages\ServiceStack.Text.3.9.63\lib\net35\ServiceStack.Text.dll + + ..\..\packages\ServiceStack.Interfaces.4.5.0\lib\portable-wp80+sl5+net45+win8+wpa81+monotouch+monoandroid+xamarin.ios10\ServiceStack.Interfaces.dll + True diff --git a/src/RedisStackOverflow/RedisStackOverflow.ServiceModel/Reset.cs b/src/RedisStackOverflow/RedisStackOverflow.ServiceModel/Reset.cs index 2548ebe1..5fdfef62 100644 --- a/src/RedisStackOverflow/RedisStackOverflow.ServiceModel/Reset.cs +++ b/src/RedisStackOverflow/RedisStackOverflow.ServiceModel/Reset.cs @@ -1,5 +1,4 @@ -using ServiceStack.ServiceHost; -using ServiceStack.ServiceInterface.ServiceModel; +using ServiceStack; namespace RedisStackOverflow.ServiceModel { diff --git a/src/RedisStackOverflow/RedisStackOverflow.ServiceModel/Stats.cs b/src/RedisStackOverflow/RedisStackOverflow.ServiceModel/Stats.cs index 27c9a519..0ab4fe7d 100644 --- a/src/RedisStackOverflow/RedisStackOverflow.ServiceModel/Stats.cs +++ b/src/RedisStackOverflow/RedisStackOverflow.ServiceModel/Stats.cs @@ -1,5 +1,5 @@ using System.Collections.Generic; -using ServiceStack.ServiceHost; +using ServiceStack; namespace RedisStackOverflow.ServiceModel { diff --git a/src/RedisStackOverflow/RedisStackOverflow.ServiceModel/Users.cs b/src/RedisStackOverflow/RedisStackOverflow.ServiceModel/Users.cs index 5a8c8e44..f087675e 100644 --- a/src/RedisStackOverflow/RedisStackOverflow.ServiceModel/Users.cs +++ b/src/RedisStackOverflow/RedisStackOverflow.ServiceModel/Users.cs @@ -1,4 +1,4 @@ -using ServiceStack.ServiceHost; +using ServiceStack; namespace RedisStackOverflow.ServiceModel { diff --git a/src/RedisStackOverflow/RedisStackOverflow.ServiceModel/packages.config b/src/RedisStackOverflow/RedisStackOverflow.ServiceModel/packages.config index d0392c07..5c87f865 100644 --- a/src/RedisStackOverflow/RedisStackOverflow.ServiceModel/packages.config +++ b/src/RedisStackOverflow/RedisStackOverflow.ServiceModel/packages.config @@ -1,5 +1,4 @@  - - + \ No newline at end of file diff --git a/src/RedisStackOverflow/RedisStackOverflow/Global.asax.cs b/src/RedisStackOverflow/RedisStackOverflow/Global.asax.cs index d33c3667..e42da2be 100644 --- a/src/RedisStackOverflow/RedisStackOverflow/Global.asax.cs +++ b/src/RedisStackOverflow/RedisStackOverflow/Global.asax.cs @@ -1,11 +1,11 @@ using System; using Funq; using RedisStackOverflow.ServiceInterface; +using ServiceStack; using ServiceStack.Configuration; using ServiceStack.Logging; -using ServiceStack.Logging.Support.Logging; using ServiceStack.Redis; -using ServiceStack.WebHost.Endpoints; +using IRepository = RedisStackOverflow.ServiceInterface.IRepository; namespace RedisStackOverflow { @@ -26,7 +26,7 @@ public AppHost() : base("Redis StackOverflow", typeof(QuestionsService).Assembly public override void Configure(Container container) { //Show StackTrace in Web Service Exceptions - SetConfig(new EndpointHostConfig { DebugMode = true }); + SetConfig(new HostConfig { DebugMode = true }); //Register any dependencies you want injected into your services container.Register(c => new PooledRedisClientManager()); diff --git a/src/RedisStackOverflow/RedisStackOverflow/RedisStackOverflow.csproj b/src/RedisStackOverflow/RedisStackOverflow/RedisStackOverflow.csproj index 3ab8d30e..f109ef04 100644 --- a/src/RedisStackOverflow/RedisStackOverflow/RedisStackOverflow.csproj +++ b/src/RedisStackOverflow/RedisStackOverflow/RedisStackOverflow.csproj @@ -12,7 +12,7 @@ Properties RedisStackOverflow RedisStackOverflow - v3.5 + v4.5 4.0 @@ -23,6 +23,8 @@ + + true @@ -33,6 +35,7 @@ prompt 4 AllRules.ruleset + false pdbonly @@ -42,55 +45,47 @@ prompt 4 AllRules.ruleset + false - - ..\..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.dll + + ..\..\packages\ServiceStack.4.5.0\lib\net45\ServiceStack.dll + True - - False - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Common.dll + + ..\..\packages\ServiceStack.Client.4.5.0\lib\net45\ServiceStack.Client.dll + True - - False - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Interfaces.dll + + ..\..\packages\ServiceStack.Common.4.5.0\lib\net45\ServiceStack.Common.dll + True - - ..\..\packages\ServiceStack.OrmLite.SqlServer.3.9.63\lib\net35\ServiceStack.OrmLite.dll + + ..\..\packages\ServiceStack.Interfaces.4.5.0\lib\portable-wp80+sl5+net45+win8+wpa81+monotouch+monoandroid+xamarin.ios10\ServiceStack.Interfaces.dll + True - - ..\..\packages\ServiceStack.OrmLite.SqlServer.3.9.63\lib\net35\ServiceStack.OrmLite.SqlServer.dll + + ..\..\packages\ServiceStack.Redis.4.5.0\lib\net45\ServiceStack.Redis.dll + True - - ..\..\packages\ServiceStack.Redis.3.9.63\lib\net35\ServiceStack.Redis.dll - - - ..\..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.ServiceInterface.dll - - - False - ..\..\packages\ServiceStack.Text.3.9.63\lib\net35\ServiceStack.Text.dll + + ..\..\packages\ServiceStack.Text.4.5.0\lib\net45\ServiceStack.Text.dll + True - - 3.5 - - - 3.5 - - - 3.5 - - - 3.5 - + + + + + + @@ -163,5 +158,10 @@ + + + + + \ No newline at end of file diff --git a/src/RedisStackOverflow/RedisStackOverflow/Web.config b/src/RedisStackOverflow/RedisStackOverflow/Web.config index 21997c03..c301f35a 100644 --- a/src/RedisStackOverflow/RedisStackOverflow/Web.config +++ b/src/RedisStackOverflow/RedisStackOverflow/Web.config @@ -1,44 +1,35 @@ - - - -
- -
-
-
-
- - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + \ No newline at end of file diff --git a/src/RedisStackOverflow/RedisStackOverflow/packages.config b/src/RedisStackOverflow/RedisStackOverflow/packages.config index f57348a5..1b4c7602 100644 --- a/src/RedisStackOverflow/RedisStackOverflow/packages.config +++ b/src/RedisStackOverflow/RedisStackOverflow/packages.config @@ -1,8 +1,9 @@  - - - - - + + + + + + \ No newline at end of file diff --git a/src/RedisStackOverflow/packages/ServiceStack.4.0.11/ServiceStack.4.0.11.nupkg b/src/RedisStackOverflow/packages/ServiceStack.4.0.11/ServiceStack.4.0.11.nupkg new file mode 100644 index 00000000..4ec38fea Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.4.0.11/ServiceStack.4.0.11.nupkg differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.4.0.11/lib/net40/ServiceStack.dll b/src/RedisStackOverflow/packages/ServiceStack.4.0.11/lib/net40/ServiceStack.dll new file mode 100644 index 00000000..83933d41 Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.4.0.11/lib/net40/ServiceStack.dll differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.4.0.11/lib/net40/ServiceStack.xml b/src/RedisStackOverflow/packages/ServiceStack.4.0.11/lib/net40/ServiceStack.xml new file mode 100644 index 00000000..d238a55a --- /dev/null +++ b/src/RedisStackOverflow/packages/ServiceStack.4.0.11/lib/net40/ServiceStack.xml @@ -0,0 +1,8174 @@ + + + + ServiceStack + + + + + 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. + + + + + + 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. + + + + + 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. + + + + + ASP.NET or HttpListener ServiceStack host + + + + + 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 an Adhoc web service on Startup + + + + + Apply plugins to this AppHost + + + + + Create a service runner for IService actions + + + + + Resolve the absolute url for this request + + + + + Resolve localized text, returns itself by default. + + + + + Register user-defined custom routes. + + + + + Register custom ContentType serializers + + + + + Add Request Filters, to be applied before the dto is deserialized + + + + + Add Request Filters for HTTP Requests + + + + + Add Response Filters for HTTP Responses + + + + + Add Request Filters for MQ/TCP Requests + + + + + Add Response Filters for MQ/TCP Responses + + + + + Add alternative HTML View Engines + + + + + Provide an exception handler for unhandled exceptions + + + + + Provide an exception handler for un-caught exceptions + + + + + Skip the ServiceStack Request Pipeline and process the returned IHttpHandler instead + + + + + Provide a catch-all handler that doesn't match any routes + + + + + Use a Custom Error Handler for handling specific error HttpStatusCodes + + + + + Provide a custom model minder for a specific Request DTO + + + + + The AppHost config + + + + + List of pre-registered and user-defined plugins to be enabled in this AppHost + + + + + Virtual access to file resources + + + + + 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. + + + + 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. + + + + + Apply PreRequest Filters for participating Custom Handlers, e.g. RazorFormat, MarkdownFormat, etc + + + + + 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. + + + + + + The AppHost.Container. Note: it is not thread safe to register dependencies after AppStart. + + + + + 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 + + + + Creates the required missing tables or DB schema + + + + + 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 + + + + + Single threaded message handler that can process all messages + of a particular message type. + + + + + 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 + + + + + + The type of the message this handler processes + + + + + 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. + + + + + + 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 + + + + + This class stores the caller call context in order to restore + it when the work item is executed in the thread pool environment. + + + + + Constructor + + + + + Captures the current thread context + + + + + + Applies the thread context stored earlier + + + + + + EventWaitHandleFactory class. + This is a static class that creates AutoResetEvent and ManualResetEvent objects. + In WindowCE the WaitForMultipleObjects API fails to use the Handle property + of XxxResetEvent. It can use only handles that were created by the CreateEvent API. + Consequently this class creates the needed XxxResetEvent and replaces the handle if + it's a WindowsCE OS. + + + + + Create a new AutoResetEvent object + + Return a new AutoResetEvent object + + + + Create a new ManualResetEvent object + + Return a new ManualResetEvent object + + + + Represents an exception in case IWorkItemResult.GetResult has been canceled + + + Represents an exception in case IWorkItemResult.GetResult has been canceled + + + + + Represents an exception in case IWorkItemResult.GetResult has been timed out + + + Represents an exception in case IWorkItemResult.GetResult has been timed out + + + + + Represents an exception in case IWorkItemResult.GetResult has been timed out + + + Represents an exception in case IWorkItemResult.GetResult has been timed out + + + + + A delegate that represents the method to run as the work item + + A state object for the method to run + + + + A delegate to call after the WorkItemCallback completed + + The work item result object + + + + A delegate to call after the WorkItemCallback completed + + The work item result object + + + + A delegate to call when a WorkItemsGroup becomes idle + + A reference to the WorkItemsGroup that became idle + + + + A delegate to call after a thread is created, but before + it's first use. + + + + + A delegate to call when a thread is about to exit, after + it is no longer belong to the pool. + + + + + Defines the availeable priorities of a work item. + The higher the priority a work item has, the sooner + it will be executed. + + + + + IWorkItemsGroup interface + Created by SmartThreadPool.CreateWorkItemsGroup() + + + + + Get an array with all the state objects of the currently running items. + The array represents a snap shot and impact performance. + + + + + Starts to execute work items + + + + + Cancel all the work items. + Same as Cancel(false) + + + + + Cancel all work items using thread abortion + + True to stop work items by raising ThreadAbortException + + + + Wait for all work item to complete. + + + + + Wait for all work item to complete, until timeout expired + + How long to wait for the work items to complete + Returns true if work items completed within the timeout, otherwise false. + + + + Wait for all work item to complete, until timeout expired + + How long to wait for the work items to complete in milliseconds + Returns true if work items completed within the timeout, otherwise false. + + + + Queue a work item + + A callback to execute + Returns a work item result + + + + Queue a work item + + A callback to execute + The priority of the work item + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + The work item priority + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + The work item priority + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Indicates on which cases to call to the post execute callback + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Indicates on which cases to call to the post execute callback + The work item priority + Returns a work item result + + + + Queue a work item + + Work item info + A callback to execute + Returns a work item result + + + + Queue a work item + + Work item information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + Returns a work item result + + + + Queue a work item. + + Returns a IWorkItemResult object, but its GetResult() will always return null + + + + Queue a work item. + + Returns a IWorkItemResult object, but its GetResult() will always return null + + + + Queue a work item. + + Returns a IWorkItemResult object, but its GetResult() will always return null + + + + Queue a work item. + + Returns a IWorkItemResult object, but its GetResult() will always return null + + + + Queue a work item. + + Returns a IWorkItemResult object, but its GetResult() will always return null + + + + Queue a work item. + + Returns a IWorkItemResult<TResult> object. + its GetResult() returns a TResult object + + + + Queue a work item. + + Returns a IWorkItemResult<TResult> object. + its GetResult() returns a TResult object + + + + Queue a work item. + + Returns a IWorkItemResult<TResult> object. + its GetResult() returns a TResult object + + + + Queue a work item. + + Returns a IWorkItemResult<TResult> object. + its GetResult() returns a TResult object + + + + Queue a work item. + + Returns a IWorkItemResult<TResult> object. + its GetResult() returns a TResult object + + + + Get/Set the name of the WorkItemsGroup + + + + + Get/Set the maximum number of workitem that execute cocurrency on the thread pool + + + + + Get the number of work items waiting in the queue. + + + + + Get the WorkItemsGroup start information + + + + + IsIdle is true when there are no work items running or queued. + + + + + This event is fired when all work items are completed. + (When IsIdle changes to true) + This event only work on WorkItemsGroup. On SmartThreadPool + it throws the NotImplementedException. + + + + + Never call to the PostExecute call back + + + + + Call to the PostExecute only when the work item is cancelled + + + + + Call to the PostExecute only when the work item is not cancelled + + + + + Always call to the PostExecute + + + + + The common interface of IWorkItemResult and IWorkItemResult<T> + + + + + This method intent is for internal use. + + + + + + This method intent is for internal use. + + + + + + IWorkItemResult interface. + Created when a WorkItemCallback work item is queued. + + + + + IWorkItemResult<TResult> interface. + Created when a Func<TResult> work item is queued. + + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits. + + The result of the work item + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits until timeout. + + The result of the work item + On timeout throws WorkItemTimeoutException + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits until timeout. + + The result of the work item + On timeout throws WorkItemTimeoutException + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits until timeout or until the cancelWaitHandle is signaled. + + Timeout in milliseconds, or -1 for infinite + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + A cancel wait handle to interrupt the blocking if needed + The result of the work item + On timeout throws WorkItemTimeoutException + On cancel throws WorkItemCancelException + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits until timeout or until the cancelWaitHandle is signaled. + + The result of the work item + On timeout throws WorkItemTimeoutException + On cancel throws WorkItemCancelException + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits. + + Filled with the exception if one was thrown + The result of the work item + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits until timeout. + + + + Filled with the exception if one was thrown + The result of the work item + On timeout throws WorkItemTimeoutException + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits until timeout. + + + Filled with the exception if one was thrown + + The result of the work item + On timeout throws WorkItemTimeoutException + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits until timeout or until the cancelWaitHandle is signaled. + + Timeout in milliseconds, or -1 for infinite + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + A cancel wait handle to interrupt the blocking if needed + Filled with the exception if one was thrown + The result of the work item + On timeout throws WorkItemTimeoutException + On cancel throws WorkItemCancelException + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits until timeout or until the cancelWaitHandle is signaled. + + The result of the work item + + Filled with the exception if one was thrown + + + On timeout throws WorkItemTimeoutException + On cancel throws WorkItemCancelException + + + + Same as Cancel(false). + + + + + Cancel the work item execution. + If the work item is in the queue then it won't execute + If the work item is completed, it will remain completed + If the work item is in progress then the user can check the SmartThreadPool.IsWorkItemCanceled + property to check if the work item has been cancelled. If the abortExecution is set to true then + the Smart Thread Pool will send an AbortException to the running thread to stop the execution + of the work item. When an in progress work item is canceled its GetResult will throw WorkItemCancelException. + If the work item is already cancelled it will remain cancelled + + When true send an AbortException to the executing thread. + Returns true if the work item was not completed, otherwise false. + + + + Gets an indication whether the asynchronous operation has completed. + + + + + Gets an indication whether the asynchronous operation has been canceled. + + + + + Gets the user-defined object that contains context data + for the work item method. + + + + + Get the work item's priority + + + + + Return the result, same as GetResult() + + + + + Returns the exception if occured otherwise returns null. + + + + + An internal delegate to call when the WorkItem starts or completes + + + + + This method is intent for internal use. + + + + + PriorityQueue class + This class is not thread safe because we use external lock + + + + + The number of queues, there is one for each type of priority + + + + + Work items queues. There is one for each type of priority + + + + + The total number of work items within the queues + + + + + Use with IEnumerable interface + + + + + Enqueue a work item. + + A work item + + + + Dequeque a work item. + + Returns the next work item + + + + Find the next non empty queue starting at queue queueIndex+1 + + The index-1 to start from + + The index of the next non empty queue or -1 if all the queues are empty + + + + + Clear all the work items + + + + + Returns an enumerator to iterate over the work items + + Returns an enumerator + + + + The number of work items + + + + + The class the implements the enumerator + + + + + Smart thread pool class. + + + + + Contains the name of this instance of SmartThreadPool. + Can be changed by the user. + + + + + Cancel all the work items. + Same as Cancel(false) + + + + + Wait for the SmartThreadPool/WorkItemsGroup to be idle + + + + + Wait for the SmartThreadPool/WorkItemsGroup to be idle + + + + + Queue a work item + + A callback to execute + Returns a work item result + + + + Queue a work item + + A callback to execute + The priority of the work item + Returns a work item result + + + + Queue a work item + + Work item info + A callback to execute + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + The work item priority + Returns a work item result + + + + Queue a work item + + Work item information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + The work item priority + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Indicates on which cases to call to the post execute callback + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Indicates on which cases to call to the post execute callback + The work item priority + Returns a work item result + + + + Get/Set the name of the SmartThreadPool/WorkItemsGroup instance + + + + + IsIdle is true when there are no work items running or queued. + + + + + Default minimum number of threads the thread pool contains. (0) + + + + + Default maximum number of threads the thread pool contains. (25) + + + + + Default idle timeout in milliseconds. (One minute) + + + + + Indicate to copy the security context of the caller and then use it in the call. (false) + + + + + Indicate to copy the HTTP context of the caller and then use it in the call. (false) + + + + + Indicate to dispose of the state objects if they support the IDispose interface. (false) + + + + + The default option to run the post execute (CallToPostExecute.Always) + + + + + The default work item priority (WorkItemPriority.Normal) + + + + + The default is to work on work items as soon as they arrive + and not to wait for the start. (false) + + + + + The default thread priority (ThreadPriority.Normal) + + + + + The default thread pool name. (SmartThreadPool) + + + + + The default fill state with params. (false) + It is relevant only to QueueWorkItem of Action<...>/Func<...> + + + + + The default thread backgroundness. (true) + + + + + The default apartment state of a thread in the thread pool. + The default is ApartmentState.Unknown which means the STP will not + set the apartment of the thread. It will use the .NET default. + + + + + The default post execute method to run. (None) + When null it means not to call it. + + + + + The default name to use for the performance counters instance. (null) + + + + + The default Max Stack Size. (SmartThreadPool) + + + + + Dictionary of all the threads in the thread pool. + + + + + Queue of work items. + + + + + Count the work items handled. + Used by the performance counter. + + + + + Number of threads that currently work (not idle). + + + + + Stores a copy of the original STPStartInfo. + It is used to change the MinThread and MaxThreads + + + + + Total number of work items that are stored in the work items queue + plus the work items that the threads in the pool are working on. + + + + + Signaled when the thread pool is idle, i.e. no thread is busy + and the work items queue is empty + + + + + An event to signal all the threads to quit immediately. + + + + + A flag to indicate if the Smart Thread Pool is now suspended. + + + + + A flag to indicate the threads to quit. + + + + + Counts the threads created in the pool. + It is used to name the threads. + + + + + Indicate that the SmartThreadPool has been disposed + + + + + Holds all the WorkItemsGroup instaces that have at least one + work item int the SmartThreadPool + This variable is used in case of Shutdown + + + + + A common object for all the work items int the STP + so we can mark them to cancel in O(1) + + + + + Windows STP performance counters + + + + + Local STP performance counters + + + + + Constructor + + + + + Constructor + + Idle timeout in milliseconds + + + + Constructor + + Idle timeout in milliseconds + Upper limit of threads in the pool + + + + Constructor + + Idle timeout in milliseconds + Upper limit of threads in the pool + Lower limit of threads in the pool + + + + Constructor + + A SmartThreadPool configuration that overrides the default behavior + + + + Waits on the queue for a work item, shutdown, or timeout. + + + Returns the WaitingCallback or null in case of timeout or shutdown. + + + + + Put a new work item in the queue + + A work item to queue + + + + Inform that the current thread is about to quit or quiting. + The same thread may call this method more than once. + + + + + Starts new threads + + The number of threads to start + + + + A worker thread method that processes work items from the work items queue. + + + + + Force the SmartThreadPool to shutdown + + + + + Force the SmartThreadPool to shutdown with timeout + + + + + Empties the queue of work items and abort the threads in the pool. + + + + + Wait for all work items to complete + + Array of work item result objects + + true when every work item in workItemResults has completed; otherwise false. + + + + + Wait for all work items to complete + + Array of work item result objects + The number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + + true when every work item in workItemResults has completed; otherwise false. + + + + + Wait for all work items to complete + + Array of work item result objects + The number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + A cancel wait handle to interrupt the wait if needed + + true when every work item in workItemResults has completed; otherwise false. + + + + + Wait for all work items to complete + + Array of work item result objects + The number of milliseconds to wait, or Timeout.Infinite (-1) to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + + true when every work item in workItemResults has completed; otherwise false. + + + + + Wait for all work items to complete + + Array of work item result objects + The number of milliseconds to wait, or Timeout.Infinite (-1) to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + A cancel wait handle to interrupt the wait if needed + + true when every work item in workItemResults has completed; otherwise false. + + + + + Waits for any of the work items in the specified array to complete, cancel, or timeout + + Array of work item result objects + + The array index of the work item result that satisfied the wait, or WaitTimeout if any of the work items has been canceled. + + + + + Waits for any of the work items in the specified array to complete, cancel, or timeout + + Array of work item result objects + The number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + + The array index of the work item result that satisfied the wait, or WaitTimeout if no work item result satisfied the wait and a time interval equivalent to millisecondsTimeout has passed or the work item has been canceled. + + + + + Waits for any of the work items in the specified array to complete, cancel, or timeout + + Array of work item result objects + The number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + A cancel wait handle to interrupt the wait if needed + + The array index of the work item result that satisfied the wait, or WaitTimeout if no work item result satisfied the wait and a time interval equivalent to millisecondsTimeout has passed or the work item has been canceled. + + + + + Waits for any of the work items in the specified array to complete, cancel, or timeout + + Array of work item result objects + The number of milliseconds to wait, or Timeout.Infinite (-1) to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + + The array index of the work item result that satisfied the wait, or WaitTimeout if no work item result satisfied the wait and a time interval equivalent to millisecondsTimeout has passed or the work item has been canceled. + + + + + Waits for any of the work items in the specified array to complete, cancel, or timeout + + Array of work item result objects + The number of milliseconds to wait, or Timeout.Infinite (-1) to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + A cancel wait handle to interrupt the wait if needed + + The array index of the work item result that satisfied the wait, or WaitTimeout if no work item result satisfied the wait and a time interval equivalent to millisecondsTimeout has passed or the work item has been canceled. + + + + + Creates a new WorkItemsGroup. + + The number of work items that can be run concurrently + A reference to the WorkItemsGroup + + + + Creates a new WorkItemsGroup. + + The number of work items that can be run concurrently + A WorkItemsGroup configuration that overrides the default behavior + A reference to the WorkItemsGroup + + + + Checks if the work item has been cancelled, and if yes then abort the thread. + Can be used with Cancel and timeout + + + + + Get an array with all the state objects of the currently running items. + The array represents a snap shot and impact performance. + + + + + Start the thread pool if it was started suspended. + If it is already running, this method is ignored. + + + + + Cancel all work items using thread abortion + + True to stop work items by raising ThreadAbortException + + + + Wait for the thread pool to be idle + + + + + Executes all actions in parallel. + Returns when they all finish. + + Actions to execute + + + + Executes all actions in parallel. + Returns when they all finish. + + Actions to execute + + + + Executes all actions in parallel + Returns when the first one completes + + Actions to execute + + + + Executes all actions in parallel + Returns when the first one completes + + Actions to execute + + + + Executes actions in sequence asynchronously. + Returns immediately. + + A state context that passes + Actions to execute in the order they should run + + + + Executes actions in sequence asynchronously. + Returns immediately. + + + Actions to execute in the order they should run + + + + An event to call after a thread is created, but before + it's first use. + + + + + An event to call when a thread is about to exit, after + it is no longer belong to the pool. + + + + + A reference to the current work item a thread from the thread pool + is executing. + + + + + This event is fired when a thread is created. + Use it to initialize a thread before the work items use it. + + + + + This event is fired when a thread is terminating. + Use it for cleanup. + + + + + Get/Set the lower limit of threads in the pool. + + + + + Get/Set the upper limit of threads in the pool. + + + + + Get the number of threads in the thread pool. + Should be between the lower and the upper limits. + + + + + Get the number of busy (not idle) threads in the thread pool. + + + + + Returns true if the current running work item has been cancelled. + Must be used within the work item's callback method. + The work item should sample this value in order to know if it + needs to quit before its completion. + + + + + Thread Pool start information (readonly) + + + + + Return the local calculated performance counters + Available only if STPStartInfo.EnableLocalPerformanceCounters is true. + + + + + Get/Set the maximum number of work items that execute cocurrency on the thread pool + + + + + Get the number of work items in the queue. + + + + + WorkItemsGroup start information (readonly) + + + + + This event is fired when all work items are completed. + (When IsIdle changes to true) + This event only work on WorkItemsGroup. On SmartThreadPool + it throws the NotImplementedException. + + + + + The thread creation time + The value is stored as UTC value. + + + + + The last time this thread has been running + It is updated by IAmAlive() method + The value is stored as UTC value. + + + + + A reference from each thread in the thread pool to its SmartThreadPool + object container. + With this variable a thread can know whatever it belongs to a + SmartThreadPool. + + + + + A reference to the current work item a thread from the thread pool + is executing. + + + + + Summary description for STPPerformanceCounter. + + + + + Summary description for STPStartInfo. + + + + + Summary description for WIGStartInfo. + + + + + Get a readonly version of this WIGStartInfo + + Returns a readonly reference to this WIGStartInfoRO + + + + Get/Set if to use the caller's security context + + + + + Get/Set if to use the caller's HTTP context + + + + + Get/Set if to dispose of the state object of a work item + + + + + Get/Set the run the post execute options + + + + + Get/Set the default post execute callback + + + + + Get/Set if the work items execution should be suspended until the Start() + method is called. + + + + + Get/Set the default priority that a work item gets when it is enqueued + + + + + Get/Set the if QueueWorkItem of Action<...>/Func<...> fill the + arguments as an object array into the state of the work item. + The arguments can be access later by IWorkItemResult.State. + + + + + Get a readonly version of this STPStartInfo. + + Returns a readonly reference to this STPStartInfo + + + + Get/Set the idle timeout in milliseconds. + If a thread is idle (starved) longer than IdleTimeout then it may quit. + + + + + Get/Set the lower limit of threads in the pool. + + + + + Get/Set the upper limit of threads in the pool. + + + + + Get/Set the scheduling priority of the threads in the pool. + The Os handles the scheduling. + + + + + Get/Set the thread pool name. Threads will get names depending on this. + + + + + Get/Set the performance counter instance name of this SmartThreadPool + The default is null which indicate not to use performance counters at all. + + + + + Enable/Disable the local performance counter. + This enables the user to get some performance information about the SmartThreadPool + without using Windows performance counters. (Useful on WindowsCE, Silverlight, etc.) + The default is false. + + + + + Get/Set backgroundness of thread in thread pool. + + + + + Get/Set the apartment state of threads in the thread pool + + + + + Get/Set the max stack size of threads in the thread pool + + + + + Holds a callback delegate and the state for that delegate. + + + + + Callback delegate for the callback. + + + + + State with which to call the callback delegate. + + + + + Stores the caller's context + + + + + Holds the result of the mehtod + + + + + Hold the exception if the method threw it + + + + + Hold the state of the work item + + + + + A ManualResetEvent to indicate that the result is ready + + + + + A reference count to the _workItemCompleted. + When it reaches to zero _workItemCompleted is Closed + + + + + Represents the result state of the work item + + + + + Work item info + + + + + A reference to an object that indicates whatever the + WorkItemsGroup has been canceled + + + + + A reference to an object that indicates whatever the + SmartThreadPool has been canceled + + + + + The work item group this work item belong to. + + + + + The thread that executes this workitem. + This field is available for the period when the work item is executed, before and after it is null. + + + + + The absulote time when the work item will be timeout + + + + + Stores how long the work item waited on the stp queue + + + + + Stores how much time it took the work item to execute after it went out of the queue + + + + + Initialize the callback holding object. + + The workItemGroup of the workitem + The WorkItemInfo of te workitem + Callback delegate for the callback. + State with which to call the callback delegate. + + We assume that the WorkItem object is created within the thread + that meant to run the callback + + + + Change the state of the work item to in progress if it wasn't canceled. + + + Return true on success or false in case the work item was canceled. + If the work item needs to run a post execute then the method will return true. + + + + + Execute the work item and the post execute + + + + + Execute the work item + + + + + Runs the post execute callback + + + + + Set the result of the work item to return + + The result of the work item + The exception that was throw while the workitem executed, null + if there was no exception. + + + + Returns the work item result + + The work item result + + + + Wait for all work items to complete + + Array of work item result objects + The number of milliseconds to wait, or Timeout.Infinite (-1) to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + A cancel wait handle to interrupt the wait if needed + + true when every work item in waitableResults has completed; otherwise false. + + + + + Waits for any of the work items in the specified array to complete, cancel, or timeout + + Array of work item result objects + The number of milliseconds to wait, or Timeout.Infinite (-1) to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + A cancel wait handle to interrupt the wait if needed + + The array index of the work item result that satisfied the wait, or WaitTimeout if no work item result satisfied the wait and a time interval equivalent to millisecondsTimeout has passed or the work item has been canceled. + + + + + Fill an array of wait handles with the work items wait handles. + + An array of work item results + An array of wait handles to fill + + + + Release the work items' wait handles + + An array of work item results + + + + Sets the work item's state + + The state to set the work item to + + + + Signals that work item has been completed or canceled + + Indicates that the work item has been canceled + + + + Cancel the work item if it didn't start running yet. + + Returns true on success or false if the work item is in progress or already completed + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits for the result, timeout, or cancel. + In case of error the method throws and exception + + The result of the work item + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits for the result, timeout, or cancel. + In case of error the e argument is filled with the exception + + The result of the work item + + + + A wait handle to wait for completion, cancel, or timeout + + + + + Called when the WorkItem starts + + + + + Called when the WorkItem completes + + + + + Returns true when the work item has completed or canceled + + + + + Returns true when the work item has canceled + + + + + Returns the priority of the work item + + + + + Indicates the state of the work item in the thread pool + + + + + A back reference to the work item + + + + + Return the result, same as GetResult() + + + + + Returns the exception if occured otherwise returns null. + This value is valid only after the work item completed, + before that it is always null. + + + + + Create a new work item + + The WorkItemsGroup of this workitem + Work item group start information + A callback to execute + Returns a work item + + + + Create a new work item + + The WorkItemsGroup of this workitem + Work item group start information + A callback to execute + The priority of the work item + Returns a work item + + + + Create a new work item + + The WorkItemsGroup of this workitem + Work item group start information + Work item info + A callback to execute + Returns a work item + + + + Create a new work item + + The WorkItemsGroup of this workitem + Work item group start information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + Returns a work item + + + + Create a new work item + + The work items group + Work item group start information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + The work item priority + Returns a work item + + + + Create a new work item + + The work items group + Work item group start information + Work item information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + Returns a work item + + + + Create a new work item + + The work items group + Work item group start information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Returns a work item + + + + Create a new work item + + The work items group + Work item group start information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + The work item priority + Returns a work item + + + + Create a new work item + + The work items group + Work item group start information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Indicates on which cases to call to the post execute callback + Returns a work item + + + + Create a new work item + + The work items group + Work item group start information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Indicates on which cases to call to the post execute callback + The work item priority + Returns a work item + + + + Summary description for WorkItemInfo. + + + + + Get/Set if to use the caller's security context + + + + + Get/Set if to use the caller's HTTP context + + + + + Get/Set if to dispose of the state object of a work item + + + + + Get/Set the run the post execute options + + + + + Get/Set the post execute callback + + + + + Get/Set the work item's priority + + + + + Get/Set the work item's timout in milliseconds. + This is a passive timout. When the timout expires the work item won't be actively aborted! + + + + + Summary description for WorkItemsGroup. + + + + + A reference to the SmartThreadPool instance that created this + WorkItemsGroup. + + + + + A flag to indicate if the Work Items Group is now suspended. + + + + + Defines how many work items of this WorkItemsGroup can run at once. + + + + + Priority queue to hold work items before they are passed + to the SmartThreadPool. + + + + + Indicate how many work items are waiting in the SmartThreadPool + queue. + This value is used to apply the concurrency. + + + + + Indicate how many work items are currently running in the SmartThreadPool. + This value is used with the Cancel, to calculate if we can send new + work items to the STP. + + + + + WorkItemsGroup start information + + + + + Signaled when all of the WorkItemsGroup's work item completed. + + + + + A common object for all the work items that this work items group + generate so we can mark them to cancel in O(1) + + + + + Start the Work Items Group if it was started suspended + + + + + Wait for the thread pool to be idle + + + + + The OnIdle event + + + + + WorkItemsGroup start information + + + + + WorkItemsQueue class. + + + + + Waiters queue (implemented as stack). + + + + + Waiters count + + + + + Work items queue + + + + + Indicate that work items are allowed to be queued + + + + + A flag that indicates if the WorkItemsQueue has been disposed. + + + + + Enqueue a work item to the queue. + + + + + Waits for a work item or exits on timeout or cancel + + Timeout in milliseconds + Cancel wait handle + Returns true if the resource was granted + + + + Cleanup the work items queue, hence no more work + items are allowed to be queue + + + + + Returns the WaiterEntry of the current thread + + + In order to avoid creation and destuction of WaiterEntry + objects each thread has its own WaiterEntry object. + + + + Push a new waiter into the waiter's stack + + A waiter to put in the stack + + + + Pop a waiter from the waiter's stack + + Returns the first waiter in the stack + + + + Remove a waiter from the stack + + A waiter entry to remove + If true the waiter count is always decremented + + + + Each thread in the thread pool keeps its own waiter entry. + + + + + Returns the current number of work items in the queue + + + + + Returns the current number of waiters + + + + + Event to signal the waiter that it got the work item. + + + + + Flag to know if this waiter already quited from the queue + because of a timeout. + + + + + Flag to know if the waiter was signaled and got a work item. + + + + + A work item that passed directly to the waiter withou going + through the queue + + + + + Signal the waiter that it got a work item. + + Return true on success + The method fails if Timeout() preceded its call + + + + Mark the wait entry that it has been timed out + + Return true on success + The method fails if Signal() preceded its call + + + + Reset the wait entry so it can be used again + + + + + Free resources + + + + + 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. + + + + + Service error logs are kept in 'urn:ServiceErrors:{ServiceName}' + + + + + Combined service error logs are maintained in 'urn:ServiceErrors:All' + + + + + 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 + + + + + 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. + + + + + Generic + Useful IService base class + + + + + Resolve an alternate Web Service from ServiceStack's IOC container. + + + + + + + Dynamic Session Bag + + + + + Typed UserSession + + + + + 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. + + + + + 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 + + + + 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 . + + + + + 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 + + + + + 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 + + + + + + + + Saves the Auth Tokens for this request. Called in OnAuthenticated(). + Overrideable, the default behaviour is to call IUserAuthRepository.CreateOrMergeAuthSession(). + + + + + Base class for entity validator classes. + + The type of the object being validated + + + + Defines a validator for a particualr type. + + + + + + Defines a validator for a particular type. + + + + + Validates the specified instance + + + A ValidationResult containing any validation failures + + + + Validates the specified instance. + + A ValidationContext + 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 + + + + + Validates the specified instance. + + The instance to validate + A ValidationResult object containing any validation failures. + + + + 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. + + Validation Context + 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 + + + + 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 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 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. + + + + Defines a condition that applies to several rules + + The condition that should apply to multiple rules + Action that encapsulates the rules. + + + + + Defiles an inverse condition that applies to several rules + + The condition that should be applied to multiple rules + Action that encapsulates the rules + + + + Returns an enumerator that iterates through the collection of validation rules. + + + A that can be used to iterate through the collection. + + 1 + + + + Sets the cascade mode for all rules within this validator. + + + + + Create a Facebook App at: https://developers.facebook.com/apps + The Callback URL for your app should match the CallbackUrl provided. + + + + + 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 + + + + + + + + + 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. + + + + + + Thread-safe In memory UserAuth data store so it can be used without a dependency on Redis. + + + + + Creates the required missing tables or DB schema + + + + + Create new Registration + + + + + Logic to update UserAuth from Registration info, not enabled on OnPut because of security. + + + + + Thank you Martijn + http://www.dijksterhuis.org/creating-salted-hash-values-in-c/ + + + + + 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. + + + + + 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). + + + + + 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. + + + + + 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. + + + + + The Yammer User's email addresses. + + + + + Gets or sets the email address type (e.g. primary). + + + + + Gets or sets the email address. + + + + + 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 + + + + Add value with specified key to the cache, and set the cache entry to never expire. + + + + + Stores The value with key only if such key doesn't exist at the server yet. + + + + + Adds or replaces the value with key, and sets the cache entry to never expire. + + + + + Adds or replaces the value with key. + + + + + Adds or replaces the value with key. + + + + + Replace the value with specified key if it exists, and set the cache entry to never expire. + + + + + 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. + + + + + Create new instance of CacheEntry. + + + + UTC time at which CacheEntry expires. + + + + Would've preferred to use [assembly: ContractNamespace] attribute but it is not supported in Mono + + + + + 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 + + + + + + + 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 + + + + Gets the nullable app setting. + + + + + Gets the app setting. + + + + + Determines wheter the Config section identified by the sectionName exists. + + + + + Returns AppSetting[key] if exists otherwise defaultValue + + + + + Returns AppSetting[key] if exists otherwise defaultValue, for non-string values + + + + + Gets the connection string setting. + + + + + Gets the connection string. + + + + + Gets the list from app setting. + + + + + Gets the dictionary from app setting. + + + + + 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 + + + + + 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. + + + + + 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. + + + + + Change the default HTML view or template used for the HTML response of this service + + + + + 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 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 IValidatorFactory that looks for ValidatorAttribute instances on the specified type in order to provide the validator instance. + + + + + Gets validators for a particular type. + + + + + Gets the validator for the specified type. + + + + + Gets the validator for the specified type. + + + + + Gets a validator for the appropriate type. + + + + + Gets a validator for the appropriate type. + + + + + Validator attribute to define the class that will describe the Validation rules + + + + + Creates an instance of the ValidatorAttribute allowing a validator type to be specified. + + + + + The type of the validator used to validate the current type. + + + + + Associates an instance of IValidator with the current property rule and is used to validate each item within the collection. + + The validator to use + + + + Rule builder + + + + + + + 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 + + + + Represents an object that is configurable. + + Type of object being configured + Return type + + + + Configures the current object. + + Action to configure the object. + + + + + 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 '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 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 specifed 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 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 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 specifed 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 specifed 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 specifed 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 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 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 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. + + + + Performs validation and then throws an exception if validation fails. + + + + + 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. + + + + + 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 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 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 + 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 code to use when validation fails + + The current rule + The error code to use + + + + + 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 a custom property name to use within the error message. + + 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 + + + + 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 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. + + + + + 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), + } + } + + + + + + + Allows configuration of the validator. + + + + + Delegate that specifies configuring an InlineValidator. + + + + + Default validator selector that will execute all rules that do not belong to a RuleSet. + + + + + 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. + + + + 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. + + + + + + Defines a rule associated with a property which can have multiple validators. + + + + + Performs validation 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. + + + + + Name of the 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. + + + + + 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. + + Validation Context + A collection of validation failures + + + + Rule set to which this rule belongs. + + + + + The validators that are grouped under this rule. + + + + + Useful extensions + + + + + 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 + + + + + Based on a child validator and a propery rule, infers whether the validator should be wrapped in a ChildValidatorAdaptor or a CollectionValidatorAdaptor + + + + + Instancace cache. + TODO: This isn't actually completely thread safe. It would be much better to use ConcurrentDictionary, but this isn't available in Silverlight/WP7. + + + + + 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 + + + + Selects validators that are associated with a particular property. + + + + + Creates a new instance of MemberNameValidatorSelector. + + + + + 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. + + + + + Assists in the construction of validation messages. + + + + + Default Property Name placeholder. + + + + + Adds a value for a validation message placeholder. + + + + + + + + Appends a property name to the message. + + The name 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 + + + + Represents a chain of properties + + + + + Creates a new PropertyChain. + + + + + Creates a new PropertyChain based on another. + + + + + 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. + + + + + Defines a rule associated with a property. + + + + + 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. + + + + + 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 + + + + Invokes a property validator using the specified validation context. + + + + + 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. + + + + + Returns the property name for the property being validated. + Returns null if it is not a property being validated (eg a method call) + + + + + Builds a validation rule and constructs a validator. + + Type of object being validated + Type of property being validated + + + + Rule builder that starts the chain + + + + + + + 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 + + + + The rule being created by this RuleBuilder. + + + + + Selects validators that belong to the specified rulesets. + + + + + 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. + + + + 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. + + + + + 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. + + + + + Builds a delegate for retrieving a localised resource from a resource type and property name. + + + + + Builds a function used to retrieve the resource. + + + + + 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. + + + + + Implemenetation of IResourceAccessorBuilder that can fall back to the default resource provider. + + + + + 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. + + + + + 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. + + + + + 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 + Strategy used to construct the resource accessor + + + + Creates an IErrorMessageSource 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. + + + + + 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 '{PropertyName}' is not a valid credit card number.. + + + + + Looks up a localized string similar to '{PropertyName}' is not a valid email address.. + + + + + Looks up a localized string similar to '{PropertyName}' should be equal to '{PropertyValue}'.. + + + + + Looks up a localized string similar to '{PropertyName}' must be {MaxLength} characters in length. You entered {TotalLength} characters.. + + + + + Looks up a localized string similar to '{PropertyName}' must be between {From} and {To} (exclusive). You entered {Value}.. + + + + + Looks up a localized string similar to '{PropertyName}' must be greater than '{ComparisonValue}'.. + + + + + Looks up a localized string similar to '{PropertyName}' must be greater than or equal to '{ComparisonValue}'.. + + + + + Looks up a localized string similar to '{PropertyName}' must be between {From} and {To}. You entered {Value}.. + + + + + Looks up a localized string similar to '{PropertyName}' must be between {MinLength} and {MaxLength} characters. You entered {TotalLength} characters.. + + + + + Looks up a localized string similar to '{PropertyName}' must be less than '{ComparisonValue}'.. + + + + + Looks up a localized string similar to '{PropertyName}' must be less than or equal to '{ComparisonValue}'.. + + + + + Looks up a localized string similar to '{PropertyName}' should not be empty.. + + + + + Looks up a localized string similar to '{PropertyName}' should not be equal to '{PropertyValue}'.. + + + + + Looks up a localized string similar to '{PropertyName}' must not be empty.. + + + + + Looks up a localized string similar to The specified condition was not met for '{PropertyName}'.. + + + + + Looks up a localized string similar to '{PropertyName}' is not in the correct format.. + + + + + 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. + + + + + Creates a new validation failure. + + + + + Creates a new ValidationFailure. + + + + + Creates a textual representation of the failure. + + + + + The name of the property. + + + + + The error message + + + + + The error code + + + + + The property value that caused the failure. + + + + + Custom state associated with the failure. + + + + + Used for providing metadata about a validator. + + + + + 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. + + + + + Creates an error validation result for this validator. + + The validator context + Returns an error validation result. + + + + Ensures that the property value is a valid credit card number. + + + + + Provides access to the anti-forgery system, which provides protection against + Cross-site Request Forgery (XSRF, also called CSRF) attacks. + + + + + Generates an anti-forgery token for this request. This token can + be validated by calling the Validate() method. + + An HTML string corresponding to an <input type="hidden"> + element. This element should be put inside a <form>. + + This method has a side effect: it may set a response cookie. + + + + + Generates an anti-forgery token pair (cookie and form token) for this request. + This method is similar to GetHtml(), but this method gives the caller control + over how to persist the returned values. To validate these tokens, call the + appropriate overload of Validate. + + The anti-forgery token - if any - that already existed + for this request. May be null. The anti-forgery system will try to reuse this cookie + value when generating a matching form token. + Will contain a new cookie value if the old cookie token + was null or invalid. If this value is non-null when the method completes, the caller + must persist this value in the form of a response cookie, and the existing cookie value + should be discarded. If this value is null when the method completes, the existing + cookie value was valid and needn't be modified. + The value that should be stored in the <form>. The caller + should take care not to accidentally swap the cookie and form tokens. + + Unlike the GetHtml() method, this method has no side effect. The caller + is responsible for setting the response cookie and injecting the returned + form token as appropriate. + + + + + Validates an anti-forgery token that was supplied for this request. + The anti-forgery token may be generated by calling GetHtml(). + + + Throws an HttpAntiForgeryException if validation fails. + + + + + Validates an anti-forgery token pair that was generated by the GetTokens method. + + The token that was supplied in the request cookie. + The token that was supplied in the request form body. + + Throws an HttpAntiForgeryException if validation fails. + + + + + Provides programmatic configuration for the anti-forgery token system. + + + + + Specifies an object that can provide additional data to put into all + generated tokens and that can validate additional data in incoming + tokens. + + + + + Specifies the name of the cookie that is used by the anti-forgery + system. + + + If an explicit name is not provided, the system will automatically + generate a name. + + + + + Specifies whether SSL is required for the anti-forgery system + to operate. If this setting is 'true' and a non-SSL request + comes into the system, all anti-forgery APIs will fail. + + + + + Specifies whether the anti-forgery system should skip checking + for conditions that might indicate misuse of the system. Please + use caution when setting this switch, as improper use could open + security holes in the application. + + + Setting this switch will disable several checks, including: + - Identity.IsAuthenticated = true without Identity.Name being set + - special-casing claims-based identities + + + + + If claims-based authorization is in use, specifies the claim + type from the identity that is used to uniquely identify the + user. If this property is set, all claims-based identities + must return unique values for this claim type. + + + If claims-based authorization is in use and this property has + not been set, the anti-forgery system will automatically look + for claim types "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier" + and "http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider". + + + + + Allows providing or validating additional custom data for anti-forgery tokens. + For example, the developer could use this to supply a nonce when the token is + generated, then he could validate the nonce when the token is validated. + + + The anti-forgery system already embeds the client's username within the + generated tokens. This interface provides and consumes supplemental + data. If an incoming anti-forgery token contains supplemental data but no + additional data provider is configured, the supplemental data will not be + validated. + + + + + Provides additional data to be stored for the anti-forgery tokens generated + during this request. + + Information about the current request. + Supplemental data to embed within the anti-forgery token. + + + + Validates additional data that was embedded inside an incoming anti-forgery + token. + + Information about the current request. + Supplemental data that was embedded within the token. + True if the data is valid; false if the data is invalid. + + + + Initializes a new instance of the class. + + The base scope. + + The dictionary to use as a storage. Since the dictionary would be used as-is, we expect the implementer to + use the same key-value comparison logic as we do here. + + + + + Custom comparer for the context dictionaries + The comparer treats strings as a special case, performing case insesitive comparison. + This guaratees that we remain consistent throughout the chain of contexts since PageData dictionary + behaves in this manner. + + + + + End a ServiceStack Request + + + + + End a ServiceStack Request + + + + + End a HttpHandler Request + + + + + End a HttpHandler Request + + + + + End a ServiceStack Request with no content + + + + + Main container class for components, supporting container hierarchies and + lifetime management of instances. + + + + + Initializes a new empty container. + + + + + 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. + + + + + Register an autowired dependency + + + + + + Register an autowired dependency as a separate type + + + + + + 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. + + + + + + Default owner for new registrations. by default. + + + + + Default reuse scope for new registrations. by default. + + + + + Enable the Registration feature and configure the RegistrationService. + + + + + Registers the 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 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 + + + + + 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. + + + + + + + + + + + + + + + + + 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 . + + + + + Fluent API for customizing the registration of a service. + + + + + 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 . + + + + + 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. + + + + + 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. + + + + + 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 . + + + + + BaseProfilerProvider. This providers some helper methods which provide access to + internals not otherwise available. + To use, override the , and + methods. + + + + + A provider used to create instances and maintain the current instance. + + + + + Starts a new MiniProfiler and sets it to be current. By the end of this method + should return the new MiniProfiler. + + + + + Ends the current profiling session, if one exists. + + + When true, clears the for this HttpContext, allowing profiling to + be prematurely stopped and discarded. Useful for when a specific route does not need to be profiled. + + + + + Returns the current MiniProfiler. This is used by . + + + + + + Starts a new MiniProfiler and sets it to be current. By the end of this method + should return the new MiniProfiler. + + + + + Stops the current MiniProfiler (if any is currently running). + should be called if is false + + If true, any current results will be thrown away and nothing saved + + + + Returns the current MiniProfiler. This is used by . + + + + + + Sets to be active (read to start profiling) + This should be called once a new MiniProfiler has been created. + + The profiler to set to active + If is null + + + + Stops the profiler and marks it as inactive. + + The profiler to stop + True if successful, false if Stop had previously been called on this profiler + If is null + + + + Calls to save the current + profiler using the current storage settings + + + + + + 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 + + + + + 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. + + + + + If the underlying command supports BindByName, this sets/clears the underlying + implementation accordingly. This is required to support OracleCommand from dapper-dot-net + + + + + Wraps a database connection, allowing sql execution timings to be collected when a session is started. + + + + + This will be made private; use + + + + + This will be made private; use + + + + + 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 + + + + + Used for db provider apis internally + + + + + Allow to re-init the provider factory. + + + + + + + proxy + + + + + + + proxy + + + + + proxy + + + + + proxy + + + + + proxy + + + + + proxy + + + + + proxy + + + + + proxy + + + + + proxy + + + + + proxy + + + + + Common extension methods to use only in this project + + + + + Answers true if this String is either null or empty. + + + + + Answers true if this String is neither null or empty. + + + + + Removes trailing / characters from a path and leaves just one + + + + + Removes any leading / characters from a path + + + + + Removes any leading / characters from a path + + + + + Serializes to a json string. + + + + + Gets part of a stack trace containing only methods we care about. + + + + + Gets the current formatted and filted stack trace. + + Space separated list of methods + + + + Identifies users based on ip address. + + + + + Provides functionality to identify which user is profiling a request. + + + + + Returns a string to identify the user profiling the current 'request'. + + The current HttpRequest being profiled. + + + + Returns the paramter HttpRequest's client ip address. + + + + + A single MiniProfiler can be used to represent any number of steps/levels in a call-graph, via Step() + + Totally baller. + + + + Starts when this profiler is instantiated. Each step will use this Stopwatch's current ticks as + their starting time. + + + + + Creates and starts a new MiniProfiler for the root , filtering steps to . + + + + + Returns the 's and this profiler recorded. + + + + + Returns true if Ids match. + + + + + Returns hashcode of Id. + + + + + Obsolete - used for serialization. + + + + + Walks the hierarchy contained in this profiler, starting with , and returns each Timing found. + + + + + Returns milliseconds based on Stopwatch's Frequency. + + + + + Starts a new MiniProfiler based on the current . This new profiler can be accessed by + + + + + + Ends the current profiling session, if one exists. + + + When true, clears the for this HttpContext, allowing profiling to + be prematurely stopped and discarded. Useful for when a specific route does not need to be profiled. + + + + + Returns an that will time the code between its creation and disposal. Use this method when you + do not wish to include the MvcMiniProfiler namespace for the extension method. + + A descriptive name for the code that is encapsulated by the resulting IDisposable's lifetime. + This step's visibility level; allows filtering when is called. + + + + Returns the css and javascript includes needed to display the MiniProfiler results UI. + + Which side of the page the profiler popup button should be displayed on (defaults to left) + Whether to show trivial timings by default (defaults to false) + Whether to show time the time with children column by default (defaults to false) + The maximum number of trace popups to show before removing the oldest (defaults to 15) + xhtml rendering mode, ensure script tag is closed ... etc + when true, shows buttons to minimize and clear MiniProfiler results + Script and link elements normally; an empty string when there is no active profiling session. + + + + Renders the current to json. + + + + + Renders the parameter to json. + + + + + Deserializes the json string parameter to a . + + + + + Create a DEEP clone of this object + + + + + + Returns all currently open commands on this connection + + + + + Returns all results contained in all child steps. + + + + + Contains any sql statements that are executed, along with how many times those statements are executed. + + + + + Adds to the current . + + + + + Returns the number of sql statements of that were executed in all s. + + + + + Identifies this Profiler so it may be stored/cached. + + + + + A display name for this profiling session. + + + + + When this profiler was instantiated. + + + + + Where this profiler was run. + + + + + Allows filtering of steps based on what + the steps are created with. + + + + + The first that is created and started when this profiler is instantiated. + All other s will be children of this one. + + + + + A string identifying the user/client that is profiling this request. Set + with an -implementing class to provide a custom value. + + + If this is not set manually at some point, the implementation will be used; + by default, this will be the current request's ip address. + + + + + Returns true when this MiniProfiler has been viewed by the that recorded it. + + + Allows POSTs that result in a redirect to be profiled. implementation + will keep a list of all profilers that haven't been fetched down. + + + + + For unit testing, returns the timer. + + + + + Milliseconds, to one decimal place, that this MiniProfiler ran. + + + + + Returns true when or any of its are . + + + + + Returns true when all child s are . + + + + + Any Timing step with a duration less than or equal to this will be hidden by default in the UI; defaults to 2.0 ms. + + + + + Ticks since this MiniProfiler was started. + + + + + Json representing the collection of CustomTimings relating to this Profiler + + + Is used when storing the Profiler in SqlStorage + + + + + Points to the currently executing Timing. + + + + + Gets the currently running MiniProfiler for the current HttpContext; null if no MiniProfiler was ed. + + + + + Contains information about queries executed during this profiling session. + + + + + Milliseconds, to one decimal place, that this MiniProfiler was executing sql. + + + + + Returns true when we have profiled queries. + + + + + Returns true when any child Timings have duplicate queries. + + + + + How many sql data readers were executed in all steps. + + + + + How many sql scalar queries were executed in all steps. + + + + + How many sql non-query statements were executed in all steps. + + + + + Various configuration properties. + + + + + Excludes the specified assembly from the stack trace output. + + The short name of the assembly. AssemblyName.Name + + + + Excludes the specified type from the stack trace output. + + The System.Type name to exclude + + + + Excludes the specified method name from the stack trace output. + + The name of the method + + + + Make sure we can at least store profiler results to the http runtime cache. + + + + + Assemblies to exclude from the stack trace report. + + + + + Types to exclude from the stack trace report. + + + + + Methods to exclude from the stack trace report. + + + + + The max length of the stack string to report back; defaults to 120 chars. + + + + + Any Timing step with a duration less than or equal to this will be hidden by default in the UI; defaults to 2.0 ms. + + + + + Dictates if the "time with children" column is displayed by default, defaults to false. + For a per-page override you can use .RenderIncludes(showTimeWithChildren: true/false) + + + + + Dictates if trivial timings are displayed by default, defaults to false. + For a per-page override you can use .RenderIncludes(showTrivial: true/false) + + + + + Determines how many traces to show before removing the oldest; defaults to 15. + For a per-page override you can use .RenderIncludes(maxTracesToShow: 10) + + + + + Dictates on which side of the page the profiler popup button is displayed; defaults to left. + For a per-page override you can use .RenderIncludes(position: RenderPosition.Left/Right) + + + + + Determines if min-max, clear, etc are rendered; defaults to false. + For a per-page override you can use .RenderIncludes(showControls: true/false) + + + + + By default, SqlTimings will grab a stack trace to help locate where queries are being executed. + When this setting is true, no stack trace will be collected, possibly improving profiler performance. + + + + + When is called, if the current request url contains any items in this property, + no profiler will be instantiated and no results will be displayed. + Default value is { "/ssr-", "/content/", "/scripts/", "/favicon.ico" }. + + + + + The path under which ALL routes are registered in, defaults to the application root. For example, "~/myDirectory/" would yield + "/myDirectory/ssr-includes.js" rather than just "/mini-profiler-includes.js" + Any setting here should be in APP RELATIVE FORM, e.g. "~/myDirectory/" + + + + + Understands how to save and load MiniProfilers. Used for caching between when + a profiling session ends and results can be fetched to the client, and for showing shared, full-page results. + + + The normal profiling session life-cycle is as follows: + 1) request begins + 2) profiler is started + 3) normal page/controller/request execution + 4) profiler is stopped + 5) profiler is cached with 's implementation of + 6) request ends + 7) page is displayed and profiling results are ajax-fetched down, pulling cached results from + 's implementation of + + + + + The formatter applied to the SQL being rendered (used only for UI) + + + + + Assembly version of this dank MiniProfiler. + + + + + The provider used to provider the current instance of a provider + This is also + + + + + A function that determines who can access the MiniProfiler results url. It should return true when + the request client has access, false for a 401 to be returned. HttpRequest parameter is the current request and + MiniProfiler parameter is the results that were profiled. + + + Both the HttpRequest and MiniProfiler parameters that will be passed into this function should never be null. + + + + + Allows switching out stopwatches for unit testing. + + + + + Categorizes individual steps to allow filtering. + + + + + Default level given to Timings. + + + + + Useful when profiling many items in a loop, but you don't wish to always see this detail. + + + + + Dictates on which side of the page the profiler popup button is displayed; defaults to left. + + + + + Profiler popup button is displayed on the left. + + + + + Profiler popup button is displayed on the right. + + + + + Contains helper methods that ease working with null s. + + + + + Wraps in a call and executes it, returning its result. + + The current profiling session or null. + Method to execute and profile. + The step name used to label the profiler results. + + + + + Returns an that will time the code between its creation and disposal. + + The current profiling session or null. + A descriptive name for the code that is encapsulated by the resulting IDisposable's lifetime. + This step's visibility level; allows filtering when is called. + + + + Adds 's hierarchy to this profiler's current Timing step, + allowing other threads, remote calls, etc. to be profiled and joined into this profiling session. + + + + + Returns an html-encoded string with a text-representation of ; returns "" when profiler is null. + + The current profiling session or null. + + + + Formats any SQL query with inline parameters, optionally including the value type + + + + + Takes a SqlTiming and returns a formatted SQL string, for parameter replacement, etc. + + + + + Return SQL the way you want it to look on the in the trace. Usually used to format parameters + + + Formatted SQL + + + + Creates a new Inline SQL Formatter, optionally including the parameter type info in comments beside the replaced value + + whether to include a comment after the value, indicating the type, e.g. /* @myParam DbType.Int32 */ + + + + Formats the SQL in a generic frieldly format, including the parameter type information in a comment if it was specified in the InlineFormatter constructor + + The SqlTiming to format + A formatted SQL string + + + + Returns a string representation of the parameter's value, including the type + + The parameter to get a value for + + + + + NOT IMPLEMENTED - will format statements with paramters in an Oracle friendly way + + + + + Does NOTHING, implement me! + + + + + Formats SQL server queries with a DECLARE up top for parameter values + + + + + Formats the SQL in a SQL-Server friendly way, with DECLARE statements for the parameters up top. + + The SqlTiming to format + A formatted SQL string + + + + Contains helper code to time sql statements. + + + + + Returns a new SqlProfiler to be used in the 'profiler' session. + + + + + Tracks when 'command' is started. + + + + + Returns all currently open commands on this connection + + + + + Finishes profiling for 'command', recording durations. + + + + + Called when 'reader' finishes its iterations and is closed. + + + + + The profiling session this SqlProfiler is part of. + + + + + Helper methods that allow operation on SqlProfilers, regardless of their instantiation. + + + + + Tracks when 'command' is started. + + + + + Finishes profiling for 'command', recording durations. + + + + + Called when 'reader' finishes its iterations and is closed. + + + + + Profiles a single sql execution. + + + + + Creates a new SqlTiming to profile 'command'. + + + + + Obsolete - used for serialization. + + + + + Returns a snippet of the sql command and the duration. + + + + + Returns true if Ids match. + + + + + Returns hashcode of Id. + + + + + Called when command execution is finished to determine this SqlTiming's duration. + + + + + Called when database reader is closed, ending profiling for SqlTimings. + + + + + To help with display, put some space around sammiched commas + + + + + Unique identifier for this SqlTiming. + + + + + Category of sql statement executed. + + + + + The sql that was executed. + + + + + The command string with special formatting applied based on MiniProfiler.Settings.SqlFormatter + + + + + Roughly where in the calling code that this sql was executed. + + + + + Offset from main MiniProfiler start that this sql began. + + + + + How long this sql statement took to execute. + + + + + When executing readers, how long it took to come back initially from the database, + before all records are fetched and reader is closed. + + + + + Stores any parameter names and values used by the profiled DbCommand. + + + + + Id of the Timing this statement was executed in. + + + Needed for database deserialization. + + + + + The Timing step that this sql execution occurred in. + + + + + True when other identical sql statements have been executed during this MiniProfiler session. + + + + + Information about a DbParameter used in the sql statement profiled by SqlTiming. + + + + + Returns true if this has the same parent , and as . + + + + + Returns the XOR of certain properties. + + + + + Which SqlTiming this Parameter was executed with. + + + + + Parameter name, e.g. "@routeName" + + + + + The value submitted to the database. + + + + + System.Data.DbType, e.g. "String", "Bit" + + + + + How large the type is, e.g. for string, size could be 4000 + + + + + Understands how to save MiniProfiler results to a MSSQL database, allowing more permanent storage and + querying of slow results. + + + + + Provides saving and loading s to a storage medium. + + + + + Stores under its . + + The results of a profiling session. + + Should also ensure the profiler is stored as being unviewed by its profiling . + + + + + Returns a from storage based on , which should map to . + + + Should also update that the resulting profiler has been marked as viewed by its profiling . + + + + + Returns a list of s that haven't been seen by . + + User identified by the current . + + + + Returns a new SqlServerDatabaseStorage object that will insert into the database identified by connectionString. + + + + + Saves 'profiler' to a database under its . + + + + + Returns the MiniProfiler identified by 'id' from the database or null when no MiniProfiler exists under that 'id'. + + + + + Returns a list of s that haven't been seen by . + + User identified by the current . + + + + Returns a DbConnection for your specific provider. + + + + + Returns a DbConnection already opened for execution. + + + + + How we connect to the database used to save/load MiniProfiler results. + + + + + Understands how to store a to the with absolute expiration. + + + + + The string that prefixes all keys that MiniProfilers are saved under, e.g. + "mini-profiler-ecfb0050-7ce8-4bf1-bf82-2cb38e90e31e". + + + + + Returns a new HttpRuntimeCacheStorage class that will cache MiniProfilers for the specified duration. + + + + + Saves to the HttpRuntime.Cache under a key concated with + and the parameter's . + + + + + Returns the saved identified by . Also marks the resulting + profiler to true. + + + + + Returns a list of s that haven't been seen by . + + User identified by the current . + + + + Syncs access to runtime cache when adding a new list of ids for a user. + + + + + How long to cache each for (i.e. the absolute expiration parameter of + ) + + + + + An individual profiling step that can contain child steps. + + + + + Rebuilds all the parent timings on deserialization calls + + + + + Offset from parent MiniProfiler's creation that this Timing was created. + + + + + Creates a new Timing named 'name' in the 'profiler's session, with 'parent' as this Timing's immediate ancestor. + + + + + Obsolete - used for serialization. + + + + + Returns this Timing's Name. + + + + + Returns true if Ids match. + + + + + Returns hashcode of Id. + + + + + Adds arbitrary string 'value' under 'key', allowing custom properties to be stored in this Timing step. + + + + + Completes this Timing's duration and sets the MiniProfiler's Head up one level. + + + + + Add the parameter 'timing' to this Timing's Children collection. + + + Used outside this assembly for custom deserialization when creating an implementation. + + + + + Adds the parameter 'sqlTiming' to this Timing's SqlTimings collection. + + A sql statement profiling that was executed in this Timing step. + + Used outside this assembly for custom deserialization when creating an implementation. + + + + + Returns the number of sql statements of that were executed in this . + + + + + Unique identifer for this timing; set during construction. + + + + + Text displayed when this Timing is rendered. + + + + + How long this Timing step took in ms; includes any Timings' durations. + + + + + The offset from the start of profiling. + + + + + All sub-steps that occur within this Timing step. Add new children through + + + + + Stores arbitrary key/value strings on this Timing step. Add new tuples through . + + + + + Any queries that occurred during this Timing step. + + + + + Needed for database deserialization and JSON serialization. + + + + + Which Timing this Timing is under - the duration that this step takes will be added to its parent's duration. + + This will be null for the root (initial) Timing. + + + + Gets the elapsed milliseconds in this step without any children's durations. + + + + + Gets the aggregate elapsed milliseconds of all SqlTimings executed in this Timing, excluding Children Timings. + + + + + Returns true when this is less than the configured + , by default 2.0 ms. + + + + + Reference to the containing profiler, allowing this Timing to affect the Head and get Stopwatch readings. + + + + + Returns true when this Timing has inner Timing steps. + + + + + Returns true if this Timing step collected sql execution timings. + + + + + Returns true if any s executed in this step are detected as duplicate statements. + + + + + Returns true when this Timing is the first one created in a MiniProfiler session. + + + + + How far away this Timing is from the Profiler's Root. + + + + + How many sql data readers were executed in this Timing step. Does not include queries in any child Timings. + + + + + How many sql scalar queries were executed in this Timing step. Does not include queries in any child Timings. + + + + + How many sql non-query statements were executed in this Timing step. Does not include queries in any child Timings. + + + + + Understands how to route and respond to MiniProfiler UI urls. + + + + + Returns either includes' css/javascript or results' html. + + + + + Handles rendering static content files. + + + + + Handles rendering a previous MiniProfiler session, identified by its "?id=GUID" on the query. + + + + + Embedded resource contents keyed by filename. + + + + + Helper method that sets a proper 404 response code. + + + + + Try to keep everything static so we can easily be reused. + + + + + HttpContext based profiler provider. This is the default provider to use in a web context. + The current profiler is associated with a HttpContext.Current ensuring that profilers are + specific to a individual HttpRequest. + + + + + Public constructor. This also registers any UI routes needed to display results + + + + + Starts a new MiniProfiler and associates it with the current . + + + + + Ends the current profiling session, if one exists. + + + When true, clears the for this HttpContext, allowing profiling to + be prematurely stopped and discarded. Useful for when a specific route does not need to be profiled. + + + + + Makes sure 'profiler' has a Name, pulling it from route data or url. + + + + + Returns the current profiler + + + + + + Gets the currently running MiniProfiler for the current HttpContext; null if no MiniProfiler was ed. + + + + + WebRequestProfilerProvider specific configurations + + + + + Provides user identification for a given profiling request. + + + + + 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. + + + + + + If they don't have an ICacheClient configured use an In Memory one. + + + + + 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 + + + + + Lets you Register new Services and the optional restPaths will be registered against + this default Request Type + + + + + 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. + + + + + Scans the supplied Assemblies to infer REST paths and HTTP verbs. + + The instance. + + The assemblies with REST services. + + The same instance; + never . + + + + 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 + + + + + + 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. + + + + + 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 + + + + In Memory repository for files. Useful for testing. + + + + + Context to capture IService action + + + + + Get an IAppHost container. + Note: Registering dependencies should only be done during setup/configuration + stage and remain immutable there after for thread-safety. + + + + + + + Ensure the same instance is used for subclasses + + + + + Called before page is executed + + + + + Called after page is executed but before it's merged with the + website template if any. + + + + + Don't HTML encode safe output + + + + + + + Return the output of a different view with the specified name + using the supplied model + + + + + + + + Resolve registered Assemblies + + + + + + Reference to MarkdownViewEngine + + + + + The AppHost so you can access configuration and resolve dependencies, etc. + + + + + This precompiled Markdown page with Metadata + + + + + ASP.NET MVC's HtmlHelper + + + + + All variables passed to and created by your page. + The Response DTO is stored and accessible via the 'Model' variable. + + All variables and outputs created are stored in ScopeArgs which is what's available + to your website template. The Generated page is stored in the 'Body' variable. + + + + + Whether HTML or Markdown output is requested + + + + + The Response DTO + + + + + 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.. + + + + + 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 + * + + + + 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 + + + + + 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 + + + + + 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. + + + + + + + + + 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 + + + + + Execute MQ + + + + + Execute MQ with requestContext + + + + + Execute using empty RequestContext + + + + + Execute HTTP + + + + + 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. + + + + + Inherit from this class if you want to host your web services inside an + ASP.NET application. + + + + + 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 + + + + 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 + + + + + when true, (most) bare plain URLs are auto-hyperlinked + WARNING: this is a significant deviation from the markdown spec + + + + + when true, RETURN becomes a literal newline + WARNING: this is a significant deviation from the markdown spec + + + + + use ">" for HTML output, or " />" for XHTML output + + + + + when true, problematic URL characters like [, ], (, and so forth will be encoded + WARNING: this is a significant deviation from the markdown spec + + + + + when false, email addresses will never be auto-linked + WARNING: this is a significant deviation from the markdown spec + + + + + when true, bold and italic require non-word characters on either side + WARNING: this is a significant deviation from the markdown spec + + + + + Markdown is a text-to-HTML conversion tool for web writers. + Markdown allows you to write using an easy-to-read, easy-to-write plain text format, + then convert it to structurally valid XHTML (or HTML). + + + + + Tabs are automatically converted to spaces as part of the transform + this constant determines how "wide" those tabs become in spaces + + + + + Create a new Markdown instance using default options + + + + + Create a new Markdown instance and optionally load options from a configuration + file. There they should be stored in the appSettings section, available options are: + + Markdown.StrictBoldItalic (true/false) + Markdown.EmptyElementSuffix (">" or " />" without the quotes) + Markdown.LinkEmails (true/false) + Markdown.AutoNewLines (true/false) + Markdown.AutoHyperlink (true/false) + Markdown.EncodeProblemUrlCharacters (true/false) + + + + + + Create a new Markdown instance and set the options from the MarkdownOptions object. + + + + + maximum nested depth of [] and () supported by the transform; implementation detail + + + + + In the static constuctor we'll initialize what stays the same across all transforms. + + + + + Transforms the provided Markdown-formatted text to HTML; + see http://en.wikipedia.org/wiki/Markdown + + + The order in which other subs are called here is + essential. Link and image substitutions need to happen before + EscapeSpecialChars(), so that any *'s or _'s in the a + and img tags get encoded. + + + + + Perform transformations that form block-level tags like paragraphs, headers, and list items. + + + + + Perform transformations that occur *within* block-level tags like paragraphs, headers, and list items. + + + + + splits on two or more newlines, to form "paragraphs"; + each paragraph is then unhashed (if it is a hash and unhashing isn't turned off) or wrapped in HTML p tag + + + + + Reusable pattern to match balanced [brackets]. See Friedl's + "Mastering Regular Expressions", 2nd Ed., pp. 328-331. + + + + + Reusable pattern to match balanced (parens). See Friedl's + "Mastering Regular Expressions", 2nd Ed., pp. 328-331. + + + + + Strips link definitions from text, stores the URLs and titles in hash references. + + + ^[id]: url "optional title" + + + + + derived pretty much verbatim from PHP Markdown + + + + + replaces any block-level HTML blocks with hash entries + + + + + returns an array of HTML tokens comprising the input string. Each token is + either a tag (possibly with nested, tags contained therein, such + as <a href="<MTFoo>">, or a run of text between tags. Each element of the + array is a two-element array; the first is either 'tag' or 'text'; the second is + the actual value. + + + + + Turn Markdown link shortcuts into HTML anchor tags + + + [link text](url "title") + [link text][id] + [id] + + + + + Turn Markdown image shortcuts into HTML img tags. + + + ![alt text][id] + ![alt text](url "optional title") + + + + + Turn Markdown headers into HTML header tags + + + Header 1 + ======== + + Header 2 + -------- + + # Header 1 + ## Header 2 + ## Header 2 with closing hashes ## + ... + ###### Header 6 + + + + + Turn Markdown horizontal rules into HTML hr tags + + + *** + * * * + --- + - - - + + + + + Turn Markdown lists into HTML ul and ol and li tags + + + + + Process the contents of a single ordered or unordered list, splitting it + into individual list items. + + + + + /// Turn Markdown 4-space indented code into HTML pre code blocks + + + + + Turn Markdown `code spans` into HTML code tags + + + + + Turn Markdown *italics* and **bold** into HTML strong and em tags + + + + + Turn markdown line breaks (two space at end of line) into HTML break tags + + + + + Turn Markdown > quoted blocks into HTML blockquote blocks + + + + + Turn angle-delimited URLs into HTML anchor tags + + + <http://www.example.com> + + + + + Remove one level of line-leading spaces + + + + + encodes email address randomly + roughly 10% raw, 45% hex, 45% dec + note that @ is always encoded and : never is + + + + + Encode/escape certain Markdown characters inside code blocks and spans where they are literals + + + + + Encode any ampersands (that aren't part of an HTML entity) and left or right angle brackets + + + + + Encodes any escaped characters such as \`, \*, \[ etc + + + + + swap back in all the special characters we've hidden + + + + + escapes Bold [ * ] and Italic [ _ ] characters + + + + + hex-encodes some unusual "problem" chars in URLs to avoid URL detection problems + + + + + Within tags -- meaning between < and > -- encode [\ ` * _] so they + don't conflict with their use in Markdown for code, italics and strong. + We're replacing each such character with its corresponding hash + value; this is likely overkill, but it should prevent us from colliding + with the escape values by accident. + + + + + convert all tabs to _tabWidth spaces; + standardizes line endings from DOS (CR LF) or Mac (CR) to UNIX (LF); + makes sure text ends with a couple of newlines; + removes any blank lines (only spaces) in the text + + + + + this is to emulate what's evailable in PHP + + + + + use ">" for HTML output, or " />" for XHTML output + + + + + when false, email addresses will never be auto-linked + WARNING: this is a significant deviation from the markdown spec + + + + + when true, bold and italic require non-word characters on either side + WARNING: this is a significant deviation from the markdown spec + + + + + when true, RETURN becomes a literal newline + WARNING: this is a significant deviation from the markdown spec + + + + + when true, (most) bare plain URLs are auto-hyperlinked + WARNING: this is a significant deviation from the markdown spec + + + + + when true, problematic URL characters like [, ], (, and so forth will be encoded + WARNING: this is a significant deviation from the markdown spec + + + + + current version of MarkdownSharp; + see http://code.google.com/p/markdownsharp/ for the latest code or to contribute + + + + + Render Markdown for text/markdown and text/plain ContentTypes + + + + + Used in Unit tests + + + + + + Non ASP.NET requests + + + + + + + + ASP.NET requests + + + + + + 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 + + + + + Highly 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 + + + + + Changes the links for the servicestack/metadata page + + + + + Non ASP.NET requests + + + + + ASP.NET requests + + + + + Keep default file contents in-memory + + + + + + 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. + + + + diff --git a/src/RedisStackOverflow/packages/ServiceStack.4.0.60/ServiceStack.4.0.60.nupkg b/src/RedisStackOverflow/packages/ServiceStack.4.0.60/ServiceStack.4.0.60.nupkg new file mode 100644 index 00000000..b566b763 Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.4.0.60/ServiceStack.4.0.60.nupkg differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.4.0.60/lib/net40/ServiceStack.dll b/src/RedisStackOverflow/packages/ServiceStack.4.0.60/lib/net40/ServiceStack.dll new file mode 100644 index 00000000..834296ce Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.4.0.60/lib/net40/ServiceStack.dll differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.4.0.60/lib/net40/ServiceStack.xml b/src/RedisStackOverflow/packages/ServiceStack.4.0.60/lib/net40/ServiceStack.xml new file mode 100644 index 00000000..58f9f82d --- /dev/null +++ b/src/RedisStackOverflow/packages/ServiceStack.4.0.60/lib/net40/ServiceStack.xml @@ -0,0 +1,8801 @@ + + + + ServiceStack + + + + + 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. + + + + + + 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. + + + + + 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. + + + + + ASP.NET or HttpListener ServiceStack host + + + + + 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. + + + + + Add Request Filter for a specific Request DTO Type + + + + + Add Request Filter for a specific Response DTO Type + + + + + Add Request Filter for a specific MQ Request DTO Type + + + + + Add Request Filter for a specific MQ Response DTO Type + + + + + Register an Adhoc web service on Startup + + + + + Register all Services in Assembly + + + + + Apply plugins to this AppHost + + + + + 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. + + + + + 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 Response Filters for HTTP Responses + + + + + Add Request Filters for MQ/TCP Requests + + + + + Add Response Filters for MQ/TCP Responses + + + + + Add alternative HTML View Engines + + + + + Provide an exception handler for unhandled exceptions + + + + + Provide an exception handler for un-caught exceptions + + + + + 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. + + + + + List of pre-registered and user-defined plugins to be enabled in this AppHost + + + + + Cascading number of file sources, inc. Embedded Resources, File System, In Memory, S3 + + + + + Read/Write Virtual FileSystem. Defaults to FileSystemVirtualPathProvider + + + + + 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. + + + + Retain the same behavior as ASP.NET and redirect requests to directores + without a trailing '/' + + + + + 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. + + + + + 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. + + + + + The AppHost.Container. Note: it is not thread safe to register dependencies after AppStart. + + + + + 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 + + + + Default redirct URL if [Authenticate] attribute doesn't permit access. + + + + + Default redirct URL if Required Role or Permission attributes doesn't permit access. + + + + + 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 + + + + + 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 + + + + + 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 + + + + + + + + Saves the Auth Tokens for this request. Called in OnAuthenticated(). + Overrideable, the default behaviour is to call IUserAuthRepository.CreateOrMergeAuthSession(). + + + + + Callback for AuthProviders to register callbacks with AuthFeature + + + + + Modify the registration of GetApiKeys and RegenrateApiKeys 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 + + + + + Conveneint base class with empty virtual methods so subclasses only need to override the hooks they need. + + + + + Generic + Useful IService base class + + + + + Resolve an alternate Web Service from ServiceStack's IOC container. + + + + + + + Dynamic Session Bag + + + + + Typed UserSession + + + + + Cascading collection of virtual file sources, inc. Embedded Resources, File System, In Memory, S3 + + + + + Read/Write Virtual FileSystem. Defaults to FileSystemVirtualPathProvider + + + + + Used to Issue and process JWT Tokens and registers ConvertSessionToToken Service to convert Sessions to JWT Tokens + + + + + Enable access to protected Services using JWT Tokens + + + + + Different HMAC Algorithms supported + + + + + Different RSA Signing Algorithms supported + + + + + The RSA Private Key used to Sign the JWT Token when RSA is used + + + + + 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) + + + + + 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 + + + + + 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 + + + + + How long should JWT Tokens be valid for. (default 14 days) + + + + + Convenient overload to initialize ExpireTokensIn with an Integer + + + + + Whether to invalidate all JWT Tokens issued before a specified date. + + + + + Modify the registration of ConvertSessionToToken Service + + + + + Callback for Plugins to register necessary handlers with ServiceStack + + + + + Callback to post-configure any logic after IPlugin.Register() is fired + + + + + 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 + + + + + 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 + + + + + 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 + + + + + Use HostContext.LocalCache or HostContext.Cache + + + + + Defines a rule associated with a property. + + + + + Defines a rule associated with a property which can have multiple validators. + + + + + Performs validation 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. + + + + + Name of the rule-set to which this rule belongs. + + + + + 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. + + + + + 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 + + + + Invokes a property validator using the specified validation context. + + + + + 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. + + + + + Returns the property name for the property being validated. + Returns null if it is not a property being validated (eg a method call) + + + + + Creates a new property rule from a lambda expression. + + + + + 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. + + + + + If the underlying command supports BindByName, this sets/clears the underlying + implementation accordingly. This is required to support OracleCommand from dapper-dot-net + + + + + 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. + + + + This will be made private; use + + + + + This will be made private; use + + + + + Wrapper for a db provider factory to enable profiling + + + + + Every provider factory must have an Instance public field + + + + + Used for db provider apis internally + + + + + proxy + + + + + proxy + + + + + 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. + + + + + + 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 + + + + Typed UserSession + + + + + Dynamic Session Bag + + + + + Specify all roles to be used by this application + + + + + Only allow access to users in specified roles + + + + + 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 + + + + + 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 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 + + + + + + + Create Yandex App at: https://oauth.yandex.ru/client/new + 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. + + + + + Calling to Github API without defined Useragent throws + exception "The server committed a protocol violation. Section=ResponseStatusLine" + + + + + Creates the required missing tables or DB schema + + + + + 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 + + + + + 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. + + + + + + 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 + + + + + Only generate specified Verb entries for "ANY" routes + + + + + 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. + + + + + 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 + + + + 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. + + + + + This class stores the caller call context in order to restore + it when the work item is executed in the thread pool environment. + + + + + Constructor + + + + + Captures the current thread context + + + + + + Applies the thread context stored earlier + + + + + + EventWaitHandleFactory class. + This is a static class that creates AutoResetEvent and ManualResetEvent objects. + In WindowCE the WaitForMultipleObjects API fails to use the Handle property + of XxxResetEvent. It can use only handles that were created by the CreateEvent API. + Consequently this class creates the needed XxxResetEvent and replaces the handle if + it's a WindowsCE OS. + + + + + Create a new AutoResetEvent object + + Return a new AutoResetEvent object + + + + Create a new ManualResetEvent object + + Return a new ManualResetEvent object + + + + Represents an exception in case IWorkItemResult.GetResult has been canceled + + + Represents an exception in case IWorkItemResult.GetResult has been canceled + + + + + Represents an exception in case IWorkItemResult.GetResult has been timed out + + + Represents an exception in case IWorkItemResult.GetResult has been timed out + + + + + Represents an exception in case IWorkItemResult.GetResult has been timed out + + + Represents an exception in case IWorkItemResult.GetResult has been timed out + + + + + A delegate that represents the method to run as the work item + + A state object for the method to run + + + + A delegate to call after the WorkItemCallback completed + + The work item result object + + + + A delegate to call after the WorkItemCallback completed + + The work item result object + + + + A delegate to call when a WorkItemsGroup becomes idle + + A reference to the WorkItemsGroup that became idle + + + + A delegate to call after a thread is created, but before + it's first use. + + + + + A delegate to call when a thread is about to exit, after + it is no longer belong to the pool. + + + + + Defines the availeable priorities of a work item. + The higher the priority a work item has, the sooner + it will be executed. + + + + + IWorkItemsGroup interface + Created by SmartThreadPool.CreateWorkItemsGroup() + + + + + Get an array with all the state objects of the currently running items. + The array represents a snap shot and impact performance. + + + + + Starts to execute work items + + + + + Cancel all the work items. + Same as Cancel(false) + + + + + Cancel all work items using thread abortion + + True to stop work items by raising ThreadAbortException + + + + Wait for all work item to complete. + + + + + Wait for all work item to complete, until timeout expired + + How long to wait for the work items to complete + Returns true if work items completed within the timeout, otherwise false. + + + + Wait for all work item to complete, until timeout expired + + How long to wait for the work items to complete in milliseconds + Returns true if work items completed within the timeout, otherwise false. + + + + Queue a work item + + A callback to execute + Returns a work item result + + + + Queue a work item + + A callback to execute + The priority of the work item + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + The work item priority + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + The work item priority + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Indicates on which cases to call to the post execute callback + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Indicates on which cases to call to the post execute callback + The work item priority + Returns a work item result + + + + Queue a work item + + Work item info + A callback to execute + Returns a work item result + + + + Queue a work item + + Work item information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + Returns a work item result + + + + Queue a work item. + + Returns a IWorkItemResult object, but its GetResult() will always return null + + + + Queue a work item. + + Returns a IWorkItemResult object, but its GetResult() will always return null + + + + Queue a work item. + + Returns a IWorkItemResult object, but its GetResult() will always return null + + + + Queue a work item. + + Returns a IWorkItemResult object, but its GetResult() will always return null + + + + Queue a work item. + + Returns a IWorkItemResult object, but its GetResult() will always return null + + + + Queue a work item. + + Returns a IWorkItemResult<TResult> object. + its GetResult() returns a TResult object + + + + Queue a work item. + + Returns a IWorkItemResult<TResult> object. + its GetResult() returns a TResult object + + + + Queue a work item. + + Returns a IWorkItemResult<TResult> object. + its GetResult() returns a TResult object + + + + Queue a work item. + + Returns a IWorkItemResult<TResult> object. + its GetResult() returns a TResult object + + + + Queue a work item. + + Returns a IWorkItemResult<TResult> object. + its GetResult() returns a TResult object + + + + Get/Set the name of the WorkItemsGroup + + + + + Get/Set the maximum number of workitem that execute cocurrency on the thread pool + + + + + Get the number of work items waiting in the queue. + + + + + Get the WorkItemsGroup start information + + + + + IsIdle is true when there are no work items running or queued. + + + + + This event is fired when all work items are completed. + (When IsIdle changes to true) + This event only work on WorkItemsGroup. On SmartThreadPool + it throws the NotImplementedException. + + + + + Never call to the PostExecute call back + + + + + Call to the PostExecute only when the work item is cancelled + + + + + Call to the PostExecute only when the work item is not cancelled + + + + + Always call to the PostExecute + + + + + The common interface of IWorkItemResult and IWorkItemResult<T> + + + + + This method intent is for internal use. + + + + + + This method intent is for internal use. + + + + + + IWorkItemResult interface. + Created when a WorkItemCallback work item is queued. + + + + + IWorkItemResult<TResult> interface. + Created when a Func<TResult> work item is queued. + + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits. + + The result of the work item + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits until timeout. + + The result of the work item + On timeout throws WorkItemTimeoutException + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits until timeout. + + The result of the work item + On timeout throws WorkItemTimeoutException + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits until timeout or until the cancelWaitHandle is signaled. + + Timeout in milliseconds, or -1 for infinite + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + A cancel wait handle to interrupt the blocking if needed + The result of the work item + On timeout throws WorkItemTimeoutException + On cancel throws WorkItemCancelException + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits until timeout or until the cancelWaitHandle is signaled. + + The result of the work item + On timeout throws WorkItemTimeoutException + On cancel throws WorkItemCancelException + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits. + + Filled with the exception if one was thrown + The result of the work item + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits until timeout. + + + + Filled with the exception if one was thrown + The result of the work item + On timeout throws WorkItemTimeoutException + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits until timeout. + + + Filled with the exception if one was thrown + + The result of the work item + On timeout throws WorkItemTimeoutException + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits until timeout or until the cancelWaitHandle is signaled. + + Timeout in milliseconds, or -1 for infinite + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + A cancel wait handle to interrupt the blocking if needed + Filled with the exception if one was thrown + The result of the work item + On timeout throws WorkItemTimeoutException + On cancel throws WorkItemCancelException + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits until timeout or until the cancelWaitHandle is signaled. + + The result of the work item + + Filled with the exception if one was thrown + + + On timeout throws WorkItemTimeoutException + On cancel throws WorkItemCancelException + + + + Same as Cancel(false). + + + + + Cancel the work item execution. + If the work item is in the queue then it won't execute + If the work item is completed, it will remain completed + If the work item is in progress then the user can check the SmartThreadPool.IsWorkItemCanceled + property to check if the work item has been cancelled. If the abortExecution is set to true then + the Smart Thread Pool will send an AbortException to the running thread to stop the execution + of the work item. When an in progress work item is canceled its GetResult will throw WorkItemCancelException. + If the work item is already cancelled it will remain cancelled + + When true send an AbortException to the executing thread. + Returns true if the work item was not completed, otherwise false. + + + + Gets an indication whether the asynchronous operation has completed. + + + + + Gets an indication whether the asynchronous operation has been canceled. + + + + + Gets the user-defined object that contains context data + for the work item method. + + + + + Get the work item's priority + + + + + Return the result, same as GetResult() + + + + + Returns the exception if occured otherwise returns null. + + + + + An internal delegate to call when the WorkItem starts or completes + + + + + This method is intent for internal use. + + + + + PriorityQueue class + This class is not thread safe because we use external lock + + + + + The number of queues, there is one for each type of priority + + + + + Work items queues. There is one for each type of priority + + + + + The total number of work items within the queues + + + + + Use with IEnumerable interface + + + + + Enqueue a work item. + + A work item + + + + Dequeque a work item. + + Returns the next work item + + + + Find the next non empty queue starting at queue queueIndex+1 + + The index-1 to start from + + The index of the next non empty queue or -1 if all the queues are empty + + + + + Clear all the work items + + + + + Returns an enumerator to iterate over the work items + + Returns an enumerator + + + + The number of work items + + + + + The class the implements the enumerator + + + + + Smart thread pool class. + + + + + Contains the name of this instance of SmartThreadPool. + Can be changed by the user. + + + + + Cancel all the work items. + Same as Cancel(false) + + + + + Wait for the SmartThreadPool/WorkItemsGroup to be idle + + + + + Wait for the SmartThreadPool/WorkItemsGroup to be idle + + + + + Queue a work item + + A callback to execute + Returns a work item result + + + + Queue a work item + + A callback to execute + The priority of the work item + Returns a work item result + + + + Queue a work item + + Work item info + A callback to execute + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + The work item priority + Returns a work item result + + + + Queue a work item + + Work item information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + The work item priority + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Indicates on which cases to call to the post execute callback + Returns a work item result + + + + Queue a work item + + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Indicates on which cases to call to the post execute callback + The work item priority + Returns a work item result + + + + Get/Set the name of the SmartThreadPool/WorkItemsGroup instance + + + + + IsIdle is true when there are no work items running or queued. + + + + + Default minimum number of threads the thread pool contains. (0) + + + + + Default maximum number of threads the thread pool contains. (25) + + + + + Default idle timeout in milliseconds. (One minute) + + + + + Indicate to copy the security context of the caller and then use it in the call. (false) + + + + + Indicate to copy the HTTP context of the caller and then use it in the call. (false) + + + + + Indicate to dispose of the state objects if they support the IDispose interface. (false) + + + + + The default option to run the post execute (CallToPostExecute.Always) + + + + + The default work item priority (WorkItemPriority.Normal) + + + + + The default is to work on work items as soon as they arrive + and not to wait for the start. (false) + + + + + The default thread priority (ThreadPriority.Normal) + + + + + The default thread pool name. (SmartThreadPool) + + + + + The default fill state with params. (false) + It is relevant only to QueueWorkItem of Action<...>/Func<...> + + + + + The default thread backgroundness. (true) + + + + + The default apartment state of a thread in the thread pool. + The default is ApartmentState.Unknown which means the STP will not + set the apartment of the thread. It will use the .NET default. + + + + + The default post execute method to run. (None) + When null it means not to call it. + + + + + The default name to use for the performance counters instance. (null) + + + + + The default Max Stack Size. (SmartThreadPool) + + + + + Dictionary of all the threads in the thread pool. + + + + + Queue of work items. + + + + + Count the work items handled. + Used by the performance counter. + + + + + Number of threads that currently work (not idle). + + + + + Stores a copy of the original STPStartInfo. + It is used to change the MinThread and MaxThreads + + + + + Total number of work items that are stored in the work items queue + plus the work items that the threads in the pool are working on. + + + + + Signaled when the thread pool is idle, i.e. no thread is busy + and the work items queue is empty + + + + + An event to signal all the threads to quit immediately. + + + + + A flag to indicate if the Smart Thread Pool is now suspended. + + + + + A flag to indicate the threads to quit. + + + + + Counts the threads created in the pool. + It is used to name the threads. + + + + + Indicate that the SmartThreadPool has been disposed + + + + + Holds all the WorkItemsGroup instaces that have at least one + work item int the SmartThreadPool + This variable is used in case of Shutdown + + + + + A common object for all the work items int the STP + so we can mark them to cancel in O(1) + + + + + Windows STP performance counters + + + + + Local STP performance counters + + + + + Constructor + + + + + Constructor + + Idle timeout in milliseconds + + + + Constructor + + Idle timeout in milliseconds + Upper limit of threads in the pool + + + + Constructor + + Idle timeout in milliseconds + Upper limit of threads in the pool + Lower limit of threads in the pool + + + + Constructor + + A SmartThreadPool configuration that overrides the default behavior + + + + Waits on the queue for a work item, shutdown, or timeout. + + + Returns the WaitingCallback or null in case of timeout or shutdown. + + + + + Put a new work item in the queue + + A work item to queue + + + + Inform that the current thread is about to quit or quiting. + The same thread may call this method more than once. + + + + + Starts new threads + + The number of threads to start + + + + A worker thread method that processes work items from the work items queue. + + + + + Force the SmartThreadPool to shutdown + + + + + Force the SmartThreadPool to shutdown with timeout + + + + + Empties the queue of work items and abort the threads in the pool. + + + + + Wait for all work items to complete + + Array of work item result objects + + true when every work item in workItemResults has completed; otherwise false. + + + + + Wait for all work items to complete + + Array of work item result objects + The number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + + true when every work item in workItemResults has completed; otherwise false. + + + + + Wait for all work items to complete + + Array of work item result objects + The number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + A cancel wait handle to interrupt the wait if needed + + true when every work item in workItemResults has completed; otherwise false. + + + + + Wait for all work items to complete + + Array of work item result objects + The number of milliseconds to wait, or Timeout.Infinite (-1) to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + + true when every work item in workItemResults has completed; otherwise false. + + + + + Wait for all work items to complete + + Array of work item result objects + The number of milliseconds to wait, or Timeout.Infinite (-1) to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + A cancel wait handle to interrupt the wait if needed + + true when every work item in workItemResults has completed; otherwise false. + + + + + Waits for any of the work items in the specified array to complete, cancel, or timeout + + Array of work item result objects + + The array index of the work item result that satisfied the wait, or WaitTimeout if any of the work items has been canceled. + + + + + Waits for any of the work items in the specified array to complete, cancel, or timeout + + Array of work item result objects + The number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + + The array index of the work item result that satisfied the wait, or WaitTimeout if no work item result satisfied the wait and a time interval equivalent to millisecondsTimeout has passed or the work item has been canceled. + + + + + Waits for any of the work items in the specified array to complete, cancel, or timeout + + Array of work item result objects + The number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + A cancel wait handle to interrupt the wait if needed + + The array index of the work item result that satisfied the wait, or WaitTimeout if no work item result satisfied the wait and a time interval equivalent to millisecondsTimeout has passed or the work item has been canceled. + + + + + Waits for any of the work items in the specified array to complete, cancel, or timeout + + Array of work item result objects + The number of milliseconds to wait, or Timeout.Infinite (-1) to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + + The array index of the work item result that satisfied the wait, or WaitTimeout if no work item result satisfied the wait and a time interval equivalent to millisecondsTimeout has passed or the work item has been canceled. + + + + + Waits for any of the work items in the specified array to complete, cancel, or timeout + + Array of work item result objects + The number of milliseconds to wait, or Timeout.Infinite (-1) to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + A cancel wait handle to interrupt the wait if needed + + The array index of the work item result that satisfied the wait, or WaitTimeout if no work item result satisfied the wait and a time interval equivalent to millisecondsTimeout has passed or the work item has been canceled. + + + + + Creates a new WorkItemsGroup. + + The number of work items that can be run concurrently + A reference to the WorkItemsGroup + + + + Creates a new WorkItemsGroup. + + The number of work items that can be run concurrently + A WorkItemsGroup configuration that overrides the default behavior + A reference to the WorkItemsGroup + + + + Checks if the work item has been cancelled, and if yes then abort the thread. + Can be used with Cancel and timeout + + + + + Get an array with all the state objects of the currently running items. + The array represents a snap shot and impact performance. + + + + + Start the thread pool if it was started suspended. + If it is already running, this method is ignored. + + + + + Cancel all work items using thread abortion + + True to stop work items by raising ThreadAbortException + + + + Wait for the thread pool to be idle + + + + + Executes all actions in parallel. + Returns when they all finish. + + Actions to execute + + + + Executes all actions in parallel. + Returns when they all finish. + + Actions to execute + + + + Executes all actions in parallel + Returns when the first one completes + + Actions to execute + + + + Executes all actions in parallel + Returns when the first one completes + + Actions to execute + + + + Executes actions in sequence asynchronously. + Returns immediately. + + A state context that passes + Actions to execute in the order they should run + + + + Executes actions in sequence asynchronously. + Returns immediately. + + + Actions to execute in the order they should run + + + + An event to call after a thread is created, but before + it's first use. + + + + + An event to call when a thread is about to exit, after + it is no longer belong to the pool. + + + + + A reference to the current work item a thread from the thread pool + is executing. + + + + + This event is fired when a thread is created. + Use it to initialize a thread before the work items use it. + + + + + This event is fired when a thread is terminating. + Use it for cleanup. + + + + + Get/Set the lower limit of threads in the pool. + + + + + Get/Set the upper limit of threads in the pool. + + + + + Get the number of threads in the thread pool. + Should be between the lower and the upper limits. + + + + + Get the number of busy (not idle) threads in the thread pool. + + + + + Returns true if the current running work item has been cancelled. + Must be used within the work item's callback method. + The work item should sample this value in order to know if it + needs to quit before its completion. + + + + + Thread Pool start information (readonly) + + + + + Return the local calculated performance counters + Available only if STPStartInfo.EnableLocalPerformanceCounters is true. + + + + + Get/Set the maximum number of work items that execute cocurrency on the thread pool + + + + + Get the number of work items in the queue. + + + + + WorkItemsGroup start information (readonly) + + + + + This event is fired when all work items are completed. + (When IsIdle changes to true) + This event only work on WorkItemsGroup. On SmartThreadPool + it throws the NotImplementedException. + + + + + The thread creation time + The value is stored as UTC value. + + + + + The last time this thread has been running + It is updated by IAmAlive() method + The value is stored as UTC value. + + + + + A reference from each thread in the thread pool to its SmartThreadPool + object container. + With this variable a thread can know whatever it belongs to a + SmartThreadPool. + + + + + A reference to the current work item a thread from the thread pool + is executing. + + + + + Summary description for STPPerformanceCounter. + + + + + Summary description for STPStartInfo. + + + + + Summary description for WIGStartInfo. + + + + + Get a readonly version of this WIGStartInfo + + Returns a readonly reference to this WIGStartInfoRO + + + + Get/Set if to use the caller's security context + + + + + Get/Set if to use the caller's HTTP context + + + + + Get/Set if to dispose of the state object of a work item + + + + + Get/Set the run the post execute options + + + + + Get/Set the default post execute callback + + + + + Get/Set if the work items execution should be suspended until the Start() + method is called. + + + + + Get/Set the default priority that a work item gets when it is enqueued + + + + + Get/Set the if QueueWorkItem of Action<...>/Func<...> fill the + arguments as an object array into the state of the work item. + The arguments can be access later by IWorkItemResult.State. + + + + + Get a readonly version of this STPStartInfo. + + Returns a readonly reference to this STPStartInfo + + + + Get/Set the idle timeout in milliseconds. + If a thread is idle (starved) longer than IdleTimeout then it may quit. + + + + + Get/Set the lower limit of threads in the pool. + + + + + Get/Set the upper limit of threads in the pool. + + + + + Get/Set the scheduling priority of the threads in the pool. + The Os handles the scheduling. + + + + + Get/Set the thread pool name. Threads will get names depending on this. + + + + + Get/Set the performance counter instance name of this SmartThreadPool + The default is null which indicate not to use performance counters at all. + + + + + Enable/Disable the local performance counter. + This enables the user to get some performance information about the SmartThreadPool + without using Windows performance counters. (Useful on WindowsCE, Silverlight, etc.) + The default is false. + + + + + Get/Set backgroundness of thread in thread pool. + + + + + Get/Set the apartment state of threads in the thread pool + + + + + Get/Set the max stack size of threads in the thread pool + + + + + Holds a callback delegate and the state for that delegate. + + + + + Callback delegate for the callback. + + + + + State with which to call the callback delegate. + + + + + Stores the caller's context + + + + + Holds the result of the mehtod + + + + + Hold the exception if the method threw it + + + + + Hold the state of the work item + + + + + A ManualResetEvent to indicate that the result is ready + + + + + A reference count to the _workItemCompleted. + When it reaches to zero _workItemCompleted is Closed + + + + + Represents the result state of the work item + + + + + Work item info + + + + + A reference to an object that indicates whatever the + WorkItemsGroup has been canceled + + + + + A reference to an object that indicates whatever the + SmartThreadPool has been canceled + + + + + The work item group this work item belong to. + + + + + The thread that executes this workitem. + This field is available for the period when the work item is executed, before and after it is null. + + + + + The absulote time when the work item will be timeout + + + + + Stores how long the work item waited on the stp queue + + + + + Stores how much time it took the work item to execute after it went out of the queue + + + + + Initialize the callback holding object. + + The workItemGroup of the workitem + The WorkItemInfo of te workitem + Callback delegate for the callback. + State with which to call the callback delegate. + + We assume that the WorkItem object is created within the thread + that meant to run the callback + + + + Change the state of the work item to in progress if it wasn't canceled. + + + Return true on success or false in case the work item was canceled. + If the work item needs to run a post execute then the method will return true. + + + + + Execute the work item and the post execute + + + + + Execute the work item + + + + + Runs the post execute callback + + + + + Set the result of the work item to return + + The result of the work item + The exception that was throw while the workitem executed, null + if there was no exception. + + + + Returns the work item result + + The work item result + + + + Wait for all work items to complete + + Array of work item result objects + The number of milliseconds to wait, or Timeout.Infinite (-1) to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + A cancel wait handle to interrupt the wait if needed + + true when every work item in waitableResults has completed; otherwise false. + + + + + Waits for any of the work items in the specified array to complete, cancel, or timeout + + Array of work item result objects + The number of milliseconds to wait, or Timeout.Infinite (-1) to wait indefinitely. + + true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it; otherwise, false. + + A cancel wait handle to interrupt the wait if needed + + The array index of the work item result that satisfied the wait, or WaitTimeout if no work item result satisfied the wait and a time interval equivalent to millisecondsTimeout has passed or the work item has been canceled. + + + + + Fill an array of wait handles with the work items wait handles. + + An array of work item results + An array of wait handles to fill + + + + Release the work items' wait handles + + An array of work item results + + + + Sets the work item's state + + The state to set the work item to + + + + Signals that work item has been completed or canceled + + Indicates that the work item has been canceled + + + + Cancel the work item if it didn't start running yet. + + Returns true on success or false if the work item is in progress or already completed + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits for the result, timeout, or cancel. + In case of error the method throws and exception + + The result of the work item + + + + Get the result of the work item. + If the work item didn't run yet then the caller waits for the result, timeout, or cancel. + In case of error the e argument is filled with the exception + + The result of the work item + + + + A wait handle to wait for completion, cancel, or timeout + + + + + Called when the WorkItem starts + + + + + Called when the WorkItem completes + + + + + Returns true when the work item has completed or canceled + + + + + Returns true when the work item has canceled + + + + + Returns the priority of the work item + + + + + Indicates the state of the work item in the thread pool + + + + + A back reference to the work item + + + + + Return the result, same as GetResult() + + + + + Returns the exception if occured otherwise returns null. + This value is valid only after the work item completed, + before that it is always null. + + + + + Create a new work item + + The WorkItemsGroup of this workitem + Work item group start information + A callback to execute + Returns a work item + + + + Create a new work item + + The WorkItemsGroup of this workitem + Work item group start information + A callback to execute + The priority of the work item + Returns a work item + + + + Create a new work item + + The WorkItemsGroup of this workitem + Work item group start information + Work item info + A callback to execute + Returns a work item + + + + Create a new work item + + The WorkItemsGroup of this workitem + Work item group start information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + Returns a work item + + + + Create a new work item + + The work items group + Work item group start information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + The work item priority + Returns a work item + + + + Create a new work item + + The work items group + Work item group start information + Work item information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + Returns a work item + + + + Create a new work item + + The work items group + Work item group start information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Returns a work item + + + + Create a new work item + + The work items group + Work item group start information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + The work item priority + Returns a work item + + + + Create a new work item + + The work items group + Work item group start information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Indicates on which cases to call to the post execute callback + Returns a work item + + + + Create a new work item + + The work items group + Work item group start information + A callback to execute + + The context object of the work item. Used for passing arguments to the work item. + + + A delegate to call after the callback completion + + Indicates on which cases to call to the post execute callback + The work item priority + Returns a work item + + + + Summary description for WorkItemInfo. + + + + + Get/Set if to use the caller's security context + + + + + Get/Set if to use the caller's HTTP context + + + + + Get/Set if to dispose of the state object of a work item + + + + + Get/Set the run the post execute options + + + + + Get/Set the post execute callback + + + + + Get/Set the work item's priority + + + + + Get/Set the work item's timout in milliseconds. + This is a passive timout. When the timout expires the work item won't be actively aborted! + + + + + Summary description for WorkItemsGroup. + + + + + A reference to the SmartThreadPool instance that created this + WorkItemsGroup. + + + + + A flag to indicate if the Work Items Group is now suspended. + + + + + Defines how many work items of this WorkItemsGroup can run at once. + + + + + Priority queue to hold work items before they are passed + to the SmartThreadPool. + + + + + Indicate how many work items are waiting in the SmartThreadPool + queue. + This value is used to apply the concurrency. + + + + + Indicate how many work items are currently running in the SmartThreadPool. + This value is used with the Cancel, to calculate if we can send new + work items to the STP. + + + + + WorkItemsGroup start information + + + + + Signaled when all of the WorkItemsGroup's work item completed. + + + + + A common object for all the work items that this work items group + generate so we can mark them to cancel in O(1) + + + + + Start the Work Items Group if it was started suspended + + + + + Wait for the thread pool to be idle + + + + + The OnIdle event + + + + + WorkItemsGroup start information + + + + + WorkItemsQueue class. + + + + + Waiters queue (implemented as stack). + + + + + Waiters count + + + + + Work items queue + + + + + Indicate that work items are allowed to be queued + + + + + A flag that indicates if the WorkItemsQueue has been disposed. + + + + + Enqueue a work item to the queue. + + + + + Waits for a work item or exits on timeout or cancel + + Timeout in milliseconds + Cancel wait handle + Returns true if the resource was granted + + + + Cleanup the work items queue, hence no more work + items are allowed to be queue + + + + + Returns the WaiterEntry of the current thread + + + In order to avoid creation and destuction of WaiterEntry + objects each thread has its own WaiterEntry object. + + + + Push a new waiter into the waiter's stack + + A waiter to put in the stack + + + + Pop a waiter from the waiter's stack + + Returns the first waiter in the stack + + + + Remove a waiter from the stack + + A waiter entry to remove + If true the waiter count is always decremented + + + + Each thread in the thread pool keeps its own waiter entry. + + + + + Returns the current number of work items in the queue + + + + + Returns the current number of waiters + + + + + Event to signal the waiter that it got the work item. + + + + + Flag to know if this waiter already quited from the queue + because of a timeout. + + + + + Flag to know if the waiter was signaled and got a work item. + + + + + A work item that passed directly to the waiter withou going + through the queue + + + + + Signal the waiter that it got a work item. + + Return true on success + The method fails if Timeout() preceded its call + + + + Mark the wait entry that it has been timed out + + Return true on success + The method fails if Signal() preceded its call + + + + Reset the wait entry so it can be used again + + + + + Free resources + + + + + 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. + + + + + Service error logs are kept in 'urn:ServiceErrors:{ServiceName}' + + + + + Combined service error logs are maintained in 'urn:ServiceErrors:All' + + + + + 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 + + + + + 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. + + + + + 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. + + + + + 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 + + + + 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 . + + + + + Base class for entity validator classes. + + The type of the object being validated + + + + Defines a validator for a particualr type. + + + + + + Defines a validator for a particular type. + + + + + Validates the specified instance + + + A ValidationResult containing any validation failures + + + + Validates the specified instance. + + A ValidationContext + 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 + + + + + Validates the specified instance. + + The instance to validate + A ValidationResult object containing any validation failures. + + + + 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. + + Validation Context + 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 + + + + 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 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 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. + + + + Defines a condition that applies to several rules + + The condition that should apply to multiple rules + Action that encapsulates the rules. + + + + + Defiles an inverse condition that applies to several rules + + The condition that should be applied to multiple rules + Action that encapsulates the rules + + + + Returns an enumerator that iterates through the collection of validation rules. + + + A that can be used to iterate through the collection. + + 1 + + + + Sets the cascade mode for all rules within this validator. + + + + + Create a Facebook App at: https://developers.facebook.com/apps + 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. + + + + + + Thread-safe In memory UserAuth data store so it can be used without a dependency on Redis. + + + + + 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. + + + + + 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). + + + + + 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. + + + + + 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. + + + + + The Yammer User's email addresses. + + + + + Gets or sets the email address type (e.g. primary). + + + + + Gets or sets the email address. + + + + + 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 + + + + 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. + + + + + Create new instance of CacheEntry. + + + + UTC time at which CacheEntry expires. + + + + Would've preferred to use [assembly: ContractNamespace] attribute but it is not supported in Mono + + + + + 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 + + + + + + + Gets the nullable app setting. + + + + + Gets the app setting. + + + + + Determines wheter the Config section identified by the sectionName exists. + + + + + Returns AppSetting[key] if exists otherwise defaultValue + + + + + Returns AppSetting[key] if exists otherwise defaultValue, for non-string values + + + + + Gets the connection string setting. + + + + + Gets the connection string. + + + + + Gets the list from app setting. + + + + + Gets the dictionary from app setting. + + + + + 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 + + + + + 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. + + + + + 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. + + + + + Change the default HTML view or template used for the HTML response of this service + + + + + 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 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 IValidatorFactory that looks for ValidatorAttribute instances on the specified type in order to provide the validator instance. + + + + + Gets validators for a particular type. + + + + + Gets the validator for the specified type. + + + + + Gets the validator for the specified type. + + + + + Gets a validator for the appropriate type. + + + + + Gets a validator for the appropriate type. + + + + + Validator attribute to define the class that will describe the Validation rules + + + + + Creates an instance of the ValidatorAttribute allowing a validator type to be specified. + + + + + The type of the validator used to validate the current type. + + + + + Associates an instance of IValidator with the current property rule and is used to validate each item within the collection. + + The validator to use + + + + Rule builder + + + + + + + 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 + + + + Represents an object that is configurable. + + Type of object being configured + Return type + + + + Configures the current object. + + Action to configure the object. + + + + + 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 '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 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 specifed 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 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 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 specifed 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 specifed 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 specifed 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 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 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 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. + + + + Performs validation and then throws an exception if validation fails. + + + + + 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. + + + + + 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 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 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 + 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 code to use when validation fails + + The current rule + The error code to use + + + + + 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 a custom property name to use within the error message. + + 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 + + + + 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 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. + + + + + 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), + } + } + + + + + + + Allows configuration of the validator. + + + + + Delegate that specifies configuring an InlineValidator. + + + + + Default validator selector that will execute all rules that do not belong to a RuleSet. + + + + + 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. + + + + 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. + + + + + + Creates a new DelegateValidator using the specified function to perform validation. + + + + + Creates a new DelegateValidator using the specified 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 using a validation context and returns a collection of Validation Failures. + + Validation Context + A collection of validation failures + + + + Rule set to which this rule belongs. + + + + + The validators that are grouped under this rule. + + + + + Useful extensions + + + + + 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 + + + + + Based on a child validator and a propery rule, infers whether the validator should be wrapped in a ChildValidatorAdaptor or a CollectionValidatorAdaptor + + + + + Instancace cache. + TODO: This isn't actually completely thread safe. It would be much better to use ConcurrentDictionary, but this isn't available in Silverlight/WP7. + + + + + 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 + + + + Selects validators that are associated with a particular property. + + + + + Creates a new instance of MemberNameValidatorSelector. + + + + + 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. + + + + + Assists in the construction of validation messages. + + + + + Default Property Name placeholder. + + + + + Adds a value for a validation message placeholder. + + + + + + + + Appends a property name to the message. + + The name 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 + + + + Represents a chain of properties + + + + + Creates a new PropertyChain. + + + + + Creates a new PropertyChain based on another. + + + + + 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. + + + + + Builds a validation rule and constructs a validator. + + Type of object being validated + Type of property being validated + + + + Rule builder that starts the chain + + + + + + + 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 + + + + The rule being created by this RuleBuilder. + + + + + Selects validators that belong to the specified rulesets. + + + + + 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. + + + + 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. + + + + + 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. + + + + + Builds a delegate for retrieving a localised resource from a resource type and property name. + + + + + Builds a function used to retrieve the resource. + + + + + 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. + + + + + Implemenetation of IResourceAccessorBuilder that can fall back to the default resource provider. + + + + + 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. + + + + + 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. + + + + + 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 + Strategy used to construct the resource accessor + + + + Creates an IErrorMessageSource 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. + + + + + 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 '{PropertyName}' is not a valid credit card number.. + + + + + Looks up a localized string similar to '{PropertyName}' is not a valid email address.. + + + + + Looks up a localized string similar to '{PropertyName}' should be equal to '{PropertyValue}'.. + + + + + Looks up a localized string similar to '{PropertyName}' must be {MaxLength} characters in length. You entered {TotalLength} characters.. + + + + + Looks up a localized string similar to '{PropertyName}' must be between {From} and {To} (exclusive). You entered {Value}.. + + + + + Looks up a localized string similar to '{PropertyName}' must be greater than '{ComparisonValue}'.. + + + + + Looks up a localized string similar to '{PropertyName}' must be greater than or equal to '{ComparisonValue}'.. + + + + + Looks up a localized string similar to '{PropertyName}' must be between {From} and {To}. You entered {Value}.. + + + + + Looks up a localized string similar to '{PropertyName}' must be between {MinLength} and {MaxLength} characters. You entered {TotalLength} characters.. + + + + + Looks up a localized string similar to '{PropertyName}' must be less than '{ComparisonValue}'.. + + + + + Looks up a localized string similar to '{PropertyName}' must be less than or equal to '{ComparisonValue}'.. + + + + + Looks up a localized string similar to '{PropertyName}' should not be empty.. + + + + + Looks up a localized string similar to '{PropertyName}' should not be equal to '{PropertyValue}'.. + + + + + Looks up a localized string similar to '{PropertyName}' must not be empty.. + + + + + Looks up a localized string similar to The specified condition was not met for '{PropertyName}'.. + + + + + Looks up a localized string similar to '{PropertyName}' is not in the correct format.. + + + + + 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. + + + + + Creates a new validation failure. + + + + + Creates a new ValidationFailure. + + + + + Creates a textual representation of the failure. + + + + + The name of the property. + + + + + The error message + + + + + The error code + + + + + The property value that caused the failure. + + + + + Custom state associated with the failure. + + + + + Placeholder values used for string substitution when building ErrorMessage + + + + + Used for providing metadata about a validator. + + + + + 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. + + + + + Creates an error validation result for this validator. + + The validator context + Returns an error validation result. + + + + Ensures that the property value is a valid credit card number. + + + + + Provides access to the anti-forgery system, which provides protection against + Cross-site Request Forgery (XSRF, also called CSRF) attacks. + + + + + Generates an anti-forgery token for this request. This token can + be validated by calling the Validate() method. + + An HTML string corresponding to an <input type="hidden"> + element. This element should be put inside a <form>. + + This method has a side effect: it may set a response cookie. + + + + + Generates an anti-forgery token pair (cookie and form token) for this request. + This method is similar to GetHtml(), but this method gives the caller control + over how to persist the returned values. To validate these tokens, call the + appropriate overload of Validate. + + The anti-forgery token - if any - that already existed + for this request. May be null. The anti-forgery system will try to reuse this cookie + value when generating a matching form token. + Will contain a new cookie value if the old cookie token + was null or invalid. If this value is non-null when the method completes, the caller + must persist this value in the form of a response cookie, and the existing cookie value + should be discarded. If this value is null when the method completes, the existing + cookie value was valid and needn't be modified. + The value that should be stored in the <form>. The caller + should take care not to accidentally swap the cookie and form tokens. + + Unlike the GetHtml() method, this method has no side effect. The caller + is responsible for setting the response cookie and injecting the returned + form token as appropriate. + + + + + Validates an anti-forgery token that was supplied for this request. + The anti-forgery token may be generated by calling GetHtml(). + + + Throws an HttpAntiForgeryException if validation fails. + + + + + Validates an anti-forgery token pair that was generated by the GetTokens method. + + The token that was supplied in the request cookie. + The token that was supplied in the request form body. + + Throws an HttpAntiForgeryException if validation fails. + + + + + Provides programmatic configuration for the anti-forgery token system. + + + + + Specifies an object that can provide additional data to put into all + generated tokens and that can validate additional data in incoming + tokens. + + + + + Specifies the name of the cookie that is used by the anti-forgery + system. + + + If an explicit name is not provided, the system will automatically + generate a name. + + + + + Specifies whether SSL is required for the anti-forgery system + to operate. If this setting is 'true' and a non-SSL request + comes into the system, all anti-forgery APIs will fail. + + + + + Specifies whether the anti-forgery system should skip checking + for conditions that might indicate misuse of the system. Please + use caution when setting this switch, as improper use could open + security holes in the application. + + + Setting this switch will disable several checks, including: + - Identity.IsAuthenticated = true without Identity.Name being set + - special-casing claims-based identities + + + + + If claims-based authorization is in use, specifies the claim + type from the identity that is used to uniquely identify the + user. If this property is set, all claims-based identities + must return unique values for this claim type. + + + If claims-based authorization is in use and this property has + not been set, the anti-forgery system will automatically look + for claim types "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier" + and "http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider". + + + + + Allows providing or validating additional custom data for anti-forgery tokens. + For example, the developer could use this to supply a nonce when the token is + generated, then he could validate the nonce when the token is validated. + + + The anti-forgery system already embeds the client's username within the + generated tokens. This interface provides and consumes supplemental + data. If an incoming anti-forgery token contains supplemental data but no + additional data provider is configured, the supplemental data will not be + validated. + + + + + Provides additional data to be stored for the anti-forgery tokens generated + during this request. + + Information about the current request. + Supplemental data to embed within the anti-forgery token. + + + + Validates additional data that was embedded inside an incoming anti-forgery + token. + + Information about the current request. + Supplemental data that was embedded within the token. + True if the data is valid; false if the data is invalid. + + + + Initializes a new instance of the class. + + The base scope. + + The dictionary to use as a storage. Since the dictionary would be used as-is, we expect the implementer to + use the same key-value comparison logic as we do here. + + + + + Custom comparer for the context dictionaries + The comparer treats strings as a special case, performing case insesitive comparison. + This guaratees that we remain consistent throughout the chain of contexts since PageData dictionary + behaves in this manner. + + + + + 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 + + + + + Main container class for components, supporting container hierarchies and + lifetime management of instances. + + + + + Initializes a new empty container. + + + + + 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. + + + + + Register an autowired dependency + + + + + + Register an autowired dependency as a separate type + + + + + + 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. + + + + + + Default owner for new registrations. by default. + + + + + Default reuse scope for new registrations. by default. + + + + + Enable the Registration feature and configure the RegistrationService. + + + + + Registers the 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 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 + + + + + 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. + + + + + + + + + + + + + + + + + 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 . + + + + + Fluent API for customizing the registration of a service. + + + + + 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 . + + + + + 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. + + + + + 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. + + + + + 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 . + + + + + BaseProfilerProvider. This providers some helper methods which provide access to + internals not otherwise available. + To use, override the , and + methods. + + + + + A provider used to create instances and maintain the current instance. + + + + + Starts a new MiniProfiler and sets it to be current. By the end of this method + should return the new MiniProfiler. + + + + + Ends the current profiling session, if one exists. + + + When true, clears the for this HttpContext, allowing profiling to + be prematurely stopped and discarded. Useful for when a specific route does not need to be profiled. + + + + + Returns the current MiniProfiler. This is used by . + + + + + + Starts a new MiniProfiler and sets it to be current. By the end of this method + should return the new MiniProfiler. + + + + + Stops the current MiniProfiler (if any is currently running). + should be called if is false + + If true, any current results will be thrown away and nothing saved + + + + Returns the current MiniProfiler. This is used by . + + + + + + Sets to be active (read to start profiling) + This should be called once a new MiniProfiler has been created. + + The profiler to set to active + If is null + + + + Stops the profiler and marks it as inactive. + + The profiler to stop + True if successful, false if Stop had previously been called on this profiler + If is null + + + + Calls to save the current + profiler using the current storage settings + + + + + + Common extension methods to use only in this project + + + + + Answers true if this String is either null or empty. + + + + + Answers true if this String is neither null or empty. + + + + + Removes trailing / characters from a path and leaves just one + + + + + Removes any leading / characters from a path + + + + + Removes any leading / characters from a path + + + + + Serializes to a json string. + + + + + Gets part of a stack trace containing only methods we care about. + + + + + Gets the current formatted and filted stack trace. + + Space separated list of methods + + + + Identifies users based on ip address. + + + + + Provides functionality to identify which user is profiling a request. + + + + + Returns a string to identify the user profiling the current 'request'. + + The current HttpRequest being profiled. + + + + Returns the paramter HttpRequest's client ip address. + + + + + A single MiniProfiler can be used to represent any number of steps/levels in a call-graph, via Step() + + Totally baller. + + + + Starts when this profiler is instantiated. Each step will use this Stopwatch's current ticks as + their starting time. + + + + + Creates and starts a new MiniProfiler for the root , filtering steps to . + + + + + Returns the 's and this profiler recorded. + + + + + Returns true if Ids match. + + + + + Returns hashcode of Id. + + + + + Obsolete - used for serialization. + + + + + Walks the hierarchy contained in this profiler, starting with , and returns each Timing found. + + + + + Returns milliseconds based on Stopwatch's Frequency. + + + + + Starts a new MiniProfiler based on the current . This new profiler can be accessed by + + + + + + Ends the current profiling session, if one exists. + + + When true, clears the for this HttpContext, allowing profiling to + be prematurely stopped and discarded. Useful for when a specific route does not need to be profiled. + + + + + Returns an that will time the code between its creation and disposal. Use this method when you + do not wish to include the MvcMiniProfiler namespace for the extension method. + + A descriptive name for the code that is encapsulated by the resulting IDisposable's lifetime. + This step's visibility level; allows filtering when is called. + + + + Returns the css and javascript includes needed to display the MiniProfiler results UI. + + Which side of the page the profiler popup button should be displayed on (defaults to left) + Whether to show trivial timings by default (defaults to false) + Whether to show time the time with children column by default (defaults to false) + The maximum number of trace popups to show before removing the oldest (defaults to 15) + xhtml rendering mode, ensure script tag is closed ... etc + when true, shows buttons to minimize and clear MiniProfiler results + Script and link elements normally; an empty string when there is no active profiling session. + + + + Renders the current to json. + + + + + Renders the parameter to json. + + + + + Deserializes the json string parameter to a . + + + + + Create a DEEP clone of this object + + + + + + Returns all currently open commands on this connection + + + + + Returns all results contained in all child steps. + + + + + Contains any sql statements that are executed, along with how many times those statements are executed. + + + + + Adds to the current . + + + + + Returns the number of sql statements of that were executed in all s. + + + + + Identifies this Profiler so it may be stored/cached. + + + + + A display name for this profiling session. + + + + + When this profiler was instantiated. + + + + + Where this profiler was run. + + + + + Allows filtering of steps based on what + the steps are created with. + + + + + The first that is created and started when this profiler is instantiated. + All other s will be children of this one. + + + + + A string identifying the user/client that is profiling this request. Set + with an -implementing class to provide a custom value. + + + If this is not set manually at some point, the implementation will be used; + by default, this will be the current request's ip address. + + + + + Returns true when this MiniProfiler has been viewed by the that recorded it. + + + Allows POSTs that result in a redirect to be profiled. implementation + will keep a list of all profilers that haven't been fetched down. + + + + + For unit testing, returns the timer. + + + + + Milliseconds, to one decimal place, that this MiniProfiler ran. + + + + + Returns true when or any of its are . + + + + + Returns true when all child s are . + + + + + Any Timing step with a duration less than or equal to this will be hidden by default in the UI; defaults to 2.0 ms. + + + + + Ticks since this MiniProfiler was started. + + + + + Json representing the collection of CustomTimings relating to this Profiler + + + Is used when storing the Profiler in SqlStorage + + + + + Points to the currently executing Timing. + + + + + Gets the currently running MiniProfiler for the current HttpContext; null if no MiniProfiler was ed. + + + + + Contains information about queries executed during this profiling session. + + + + + Milliseconds, to one decimal place, that this MiniProfiler was executing sql. + + + + + Returns true when we have profiled queries. + + + + + Returns true when any child Timings have duplicate queries. + + + + + How many sql data readers were executed in all steps. + + + + + How many sql scalar queries were executed in all steps. + + + + + How many sql non-query statements were executed in all steps. + + + + + Various configuration properties. + + + + + Excludes the specified assembly from the stack trace output. + + The short name of the assembly. AssemblyName.Name + + + + Excludes the specified type from the stack trace output. + + The System.Type name to exclude + + + + Excludes the specified method name from the stack trace output. + + The name of the method + + + + Make sure we can at least store profiler results to the http runtime cache. + + + + + Assemblies to exclude from the stack trace report. + + + + + Types to exclude from the stack trace report. + + + + + Methods to exclude from the stack trace report. + + + + + The max length of the stack string to report back; defaults to 120 chars. + + + + + Any Timing step with a duration less than or equal to this will be hidden by default in the UI; defaults to 2.0 ms. + + + + + Dictates if the "time with children" column is displayed by default, defaults to false. + For a per-page override you can use .RenderIncludes(showTimeWithChildren: true/false) + + + + + Dictates if trivial timings are displayed by default, defaults to false. + For a per-page override you can use .RenderIncludes(showTrivial: true/false) + + + + + Determines how many traces to show before removing the oldest; defaults to 15. + For a per-page override you can use .RenderIncludes(maxTracesToShow: 10) + + + + + Dictates on which side of the page the profiler popup button is displayed; defaults to left. + For a per-page override you can use .RenderIncludes(position: RenderPosition.Left/Right) + + + + + Determines if min-max, clear, etc are rendered; defaults to false. + For a per-page override you can use .RenderIncludes(showControls: true/false) + + + + + By default, SqlTimings will grab a stack trace to help locate where queries are being executed. + When this setting is true, no stack trace will be collected, possibly improving profiler performance. + + + + + When is called, if the current request url contains any items in this property, + no profiler will be instantiated and no results will be displayed. + Default value is { "/ssr-", "/content/", "/scripts/", "/favicon.ico" }. + + + + + The path under which ALL routes are registered in, defaults to the application root. For example, "~/myDirectory/" would yield + "/myDirectory/ssr-includes.js" rather than just "/mini-profiler-includes.js" + Any setting here should be in APP RELATIVE FORM, e.g. "~/myDirectory/" + + + + + Understands how to save and load MiniProfilers. Used for caching between when + a profiling session ends and results can be fetched to the client, and for showing shared, full-page results. + + + The normal profiling session life-cycle is as follows: + 1) request begins + 2) profiler is started + 3) normal page/controller/request execution + 4) profiler is stopped + 5) profiler is cached with 's implementation of + 6) request ends + 7) page is displayed and profiling results are ajax-fetched down, pulling cached results from + 's implementation of + + + + + The formatter applied to the SQL being rendered (used only for UI) + + + + + Assembly version of this dank MiniProfiler. + + + + + The provider used to provider the current instance of a provider + This is also + + + + + A function that determines who can access the MiniProfiler results url. It should return true when + the request client has access, false for a 401 to be returned. HttpRequest parameter is the current request and + MiniProfiler parameter is the results that were profiled. + + + Both the HttpRequest and MiniProfiler parameters that will be passed into this function should never be null. + + + + + Allows switching out stopwatches for unit testing. + + + + + Categorizes individual steps to allow filtering. + + + + + Default level given to Timings. + + + + + Useful when profiling many items in a loop, but you don't wish to always see this detail. + + + + + Dictates on which side of the page the profiler popup button is displayed; defaults to left. + + + + + Profiler popup button is displayed on the left. + + + + + Profiler popup button is displayed on the right. + + + + + Contains helper methods that ease working with null s. + + + + + Wraps in a call and executes it, returning its result. + + The current profiling session or null. + Method to execute and profile. + The step name used to label the profiler results. + + + + + Returns an that will time the code between its creation and disposal. + + The current profiling session or null. + A descriptive name for the code that is encapsulated by the resulting IDisposable's lifetime. + This step's visibility level; allows filtering when is called. + + + + Adds 's hierarchy to this profiler's current Timing step, + allowing other threads, remote calls, etc. to be profiled and joined into this profiling session. + + + + + Returns an html-encoded string with a text-representation of ; returns "" when profiler is null. + + The current profiling session or null. + + + + Formats any SQL query with inline parameters, optionally including the value type + + + + + Takes a SqlTiming and returns a formatted SQL string, for parameter replacement, etc. + + + + + Return SQL the way you want it to look on the in the trace. Usually used to format parameters + + + Formatted SQL + + + + Creates a new Inline SQL Formatter, optionally including the parameter type info in comments beside the replaced value + + whether to include a comment after the value, indicating the type, e.g. /* @myParam DbType.Int32 */ + + + + Formats the SQL in a generic frieldly format, including the parameter type information in a comment if it was specified in the InlineFormatter constructor + + The SqlTiming to format + A formatted SQL string + + + + Returns a string representation of the parameter's value, including the type + + The parameter to get a value for + + + + + NOT IMPLEMENTED - will format statements with paramters in an Oracle friendly way + + + + + Does NOTHING, implement me! + + + + + Formats SQL server queries with a DECLARE up top for parameter values + + + + + Formats the SQL in a SQL-Server friendly way, with DECLARE statements for the parameters up top. + + The SqlTiming to format + A formatted SQL string + + + + Contains helper code to time sql statements. + + + + + Returns a new SqlProfiler to be used in the 'profiler' session. + + + + + Tracks when 'command' is started. + + + + + Returns all currently open commands on this connection + + + + + Finishes profiling for 'command', recording durations. + + + + + Called when 'reader' finishes its iterations and is closed. + + + + + The profiling session this SqlProfiler is part of. + + + + + Helper methods that allow operation on SqlProfilers, regardless of their instantiation. + + + + + Tracks when 'command' is started. + + + + + Finishes profiling for 'command', recording durations. + + + + + Called when 'reader' finishes its iterations and is closed. + + + + + Profiles a single sql execution. + + + + + Creates a new SqlTiming to profile 'command'. + + + + + Obsolete - used for serialization. + + + + + Returns a snippet of the sql command and the duration. + + + + + Returns true if Ids match. + + + + + Returns hashcode of Id. + + + + + Called when command execution is finished to determine this SqlTiming's duration. + + + + + Called when database reader is closed, ending profiling for SqlTimings. + + + + + To help with display, put some space around sammiched commas + + + + + Unique identifier for this SqlTiming. + + + + + Category of sql statement executed. + + + + + The sql that was executed. + + + + + The command string with special formatting applied based on MiniProfiler.Settings.SqlFormatter + + + + + Roughly where in the calling code that this sql was executed. + + + + + Offset from main MiniProfiler start that this sql began. + + + + + How long this sql statement took to execute. + + + + + When executing readers, how long it took to come back initially from the database, + before all records are fetched and reader is closed. + + + + + Stores any parameter names and values used by the profiled DbCommand. + + + + + Id of the Timing this statement was executed in. + + + Needed for database deserialization. + + + + + The Timing step that this sql execution occurred in. + + + + + True when other identical sql statements have been executed during this MiniProfiler session. + + + + + Information about a DbParameter used in the sql statement profiled by SqlTiming. + + + + + Returns true if this has the same parent , and as . + + + + + Returns the XOR of certain properties. + + + + + Which SqlTiming this Parameter was executed with. + + + + + Parameter name, e.g. "@routeName" + + + + + The value submitted to the database. + + + + + System.Data.DbType, e.g. "String", "Bit" + + + + + How large the type is, e.g. for string, size could be 4000 + + + + + Understands how to save MiniProfiler results to a MSSQL database, allowing more permanent storage and + querying of slow results. + + + + + Provides saving and loading s to a storage medium. + + + + + Stores under its . + + The results of a profiling session. + + Should also ensure the profiler is stored as being unviewed by its profiling . + + + + + Returns a from storage based on , which should map to . + + + Should also update that the resulting profiler has been marked as viewed by its profiling . + + + + + Returns a list of s that haven't been seen by . + + User identified by the current . + + + + Returns a new SqlServerDatabaseStorage object that will insert into the database identified by connectionString. + + + + + Saves 'profiler' to a database under its . + + + + + Returns the MiniProfiler identified by 'id' from the database or null when no MiniProfiler exists under that 'id'. + + + + + Returns a list of s that haven't been seen by . + + User identified by the current . + + + + Returns a DbConnection for your specific provider. + + + + + Returns a DbConnection already opened for execution. + + + + + How we connect to the database used to save/load MiniProfiler results. + + + + + Understands how to store a to the with absolute expiration. + + + + + The string that prefixes all keys that MiniProfilers are saved under, e.g. + "mini-profiler-ecfb0050-7ce8-4bf1-bf82-2cb38e90e31e". + + + + + Returns a new HttpRuntimeCacheStorage class that will cache MiniProfilers for the specified duration. + + + + + Saves to the HttpRuntime.Cache under a key concated with + and the parameter's . + + + + + Returns the saved identified by . Also marks the resulting + profiler to true. + + + + + Returns a list of s that haven't been seen by . + + User identified by the current . + + + + Syncs access to runtime cache when adding a new list of ids for a user. + + + + + How long to cache each for (i.e. the absolute expiration parameter of + ) + + + + + An individual profiling step that can contain child steps. + + + + + Rebuilds all the parent timings on deserialization calls + + + + + Offset from parent MiniProfiler's creation that this Timing was created. + + + + + Creates a new Timing named 'name' in the 'profiler's session, with 'parent' as this Timing's immediate ancestor. + + + + + Obsolete - used for serialization. + + + + + Returns this Timing's Name. + + + + + Returns true if Ids match. + + + + + Returns hashcode of Id. + + + + + Adds arbitrary string 'value' under 'key', allowing custom properties to be stored in this Timing step. + + + + + Completes this Timing's duration and sets the MiniProfiler's Head up one level. + + + + + Add the parameter 'timing' to this Timing's Children collection. + + + Used outside this assembly for custom deserialization when creating an implementation. + + + + + Adds the parameter 'sqlTiming' to this Timing's SqlTimings collection. + + A sql statement profiling that was executed in this Timing step. + + Used outside this assembly for custom deserialization when creating an implementation. + + + + + Returns the number of sql statements of that were executed in this . + + + + + Unique identifer for this timing; set during construction. + + + + + Text displayed when this Timing is rendered. + + + + + How long this Timing step took in ms; includes any Timings' durations. + + + + + The offset from the start of profiling. + + + + + All sub-steps that occur within this Timing step. Add new children through + + + + + Stores arbitrary key/value strings on this Timing step. Add new tuples through . + + + + + Any queries that occurred during this Timing step. + + + + + Needed for database deserialization and JSON serialization. + + + + + Which Timing this Timing is under - the duration that this step takes will be added to its parent's duration. + + This will be null for the root (initial) Timing. + + + + Gets the elapsed milliseconds in this step without any children's durations. + + + + + Gets the aggregate elapsed milliseconds of all SqlTimings executed in this Timing, excluding Children Timings. + + + + + Returns true when this is less than the configured + , by default 2.0 ms. + + + + + Reference to the containing profiler, allowing this Timing to affect the Head and get Stopwatch readings. + + + + + Returns true when this Timing has inner Timing steps. + + + + + Returns true if this Timing step collected sql execution timings. + + + + + Returns true if any s executed in this step are detected as duplicate statements. + + + + + Returns true when this Timing is the first one created in a MiniProfiler session. + + + + + How far away this Timing is from the Profiler's Root. + + + + + How many sql data readers were executed in this Timing step. Does not include queries in any child Timings. + + + + + How many sql scalar queries were executed in this Timing step. Does not include queries in any child Timings. + + + + + How many sql non-query statements were executed in this Timing step. Does not include queries in any child Timings. + + + + + Understands how to route and respond to MiniProfiler UI urls. + + + + + Returns either includes' css/javascript or results' html. + + + + + Handles rendering static content files. + + + + + Handles rendering a previous MiniProfiler session, identified by its "?id=GUID" on the query. + + + + + Embedded resource contents keyed by filename. + + + + + Helper method that sets a proper 404 response code. + + + + + Try to keep everything static so we can easily be reused. + + + + + HttpContext based profiler provider. This is the default provider to use in a web context. + The current profiler is associated with a HttpContext.Current ensuring that profilers are + specific to a individual HttpRequest. + + + + + Public constructor. This also registers any UI routes needed to display results + + + + + Starts a new MiniProfiler and associates it with the current . + + + + + Ends the current profiling session, if one exists. + + + When true, clears the for this HttpContext, allowing profiling to + be prematurely stopped and discarded. Useful for when a specific route does not need to be profiled. + + + + + Makes sure 'profiler' has a Name, pulling it from route data or url. + + + + + Returns the current profiler + + + + + + Gets the currently running MiniProfiler for the current HttpContext; null if no MiniProfiler was ed. + + + + + WebRequestProfilerProvider specific configurations + + + + + Provides user identification for a given profiling request. + + + + + 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. + + + + + + If they don't have an ICacheClient configured use an In Memory one. + + + + + 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 + + + + + Lets you Register new Services and the optional restPaths will be registered against + this default Request Type + + + + + 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. + + + + + Scans the supplied Assemblies to infer REST paths and HTTP verbs. + + The instance. + + The assemblies with REST services. + + The same instance; + never . + + + + 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 + + + + + + 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. + + + + + 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 + + + + Refresh file stats for this node if supported + + + + + In Memory Virtual Path Provider. + + + + + Context to capture IService action + + + + + Get an IAppHost container. + Note: Registering dependencies should only be done during setup/configuration + stage and remain immutable there after for thread-safety. + + + + + + + Ensure the same instance is used for subclasses + + + + + Called before page is executed + + + + + Called after page is executed but before it's merged with the + website template if any. + + + + + Don't HTML encode safe output + + + + + + + Return the output of a different view with the specified name + using the supplied model + + + + + + + + Resolve registered Assemblies + + + + + + Reference to MarkdownViewEngine + + + + + The AppHost so you can access configuration and resolve dependencies, etc. + + + + + This precompiled Markdown page with Metadata + + + + + ASP.NET MVC's HtmlHelper + + + + + All variables passed to and created by your page. + The Response DTO is stored and accessible via the 'Model' variable. + + All variables and outputs created are stored in ScopeArgs which is what's available + to your website template. The Generated page is stored in the 'Body' variable. + + + + + Whether HTML or Markdown output is requested + + + + + The Response DTO + + + + + 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.. + + + + + 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 + + + + + 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 + + + + + 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. + + + + + + + + + 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 + + + + + Execute MQ + + + + + Execute MQ with requestContext + + + + + Execute using empty RequestContext + + + + + 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. + + + + + Inherit from this class if you want to host your web services inside an + ASP.NET application. + + + + + 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 + + + + 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 + + + + + when true, (most) bare plain URLs are auto-hyperlinked + WARNING: this is a significant deviation from the markdown spec + + + + + when true, RETURN becomes a literal newline + WARNING: this is a significant deviation from the markdown spec + + + + + use ">" for HTML output, or " />" for XHTML output + + + + + when true, problematic URL characters like [, ], (, and so forth will be encoded + WARNING: this is a significant deviation from the markdown spec + + + + + when false, email addresses will never be auto-linked + WARNING: this is a significant deviation from the markdown spec + + + + + when true, bold and italic require non-word characters on either side + WARNING: this is a significant deviation from the markdown spec + + + + + Markdown is a text-to-HTML conversion tool for web writers. + Markdown allows you to write using an easy-to-read, easy-to-write plain text format, + then convert it to structurally valid XHTML (or HTML). + + + + + Tabs are automatically converted to spaces as part of the transform + this constant determines how "wide" those tabs become in spaces + + + + + Create a new Markdown instance using default options + + + + + Create a new Markdown instance and optionally load options from a configuration + file. There they should be stored in the appSettings section, available options are: + + Markdown.StrictBoldItalic (true/false) + Markdown.EmptyElementSuffix (">" or " />" without the quotes) + Markdown.LinkEmails (true/false) + Markdown.AutoNewLines (true/false) + Markdown.AutoHyperlink (true/false) + Markdown.EncodeProblemUrlCharacters (true/false) + + + + + + Create a new Markdown instance and set the options from the MarkdownOptions object. + + + + + maximum nested depth of [] and () supported by the transform; implementation detail + + + + + In the static constuctor we'll initialize what stays the same across all transforms. + + + + + Transforms the provided Markdown-formatted text to HTML; + see http://en.wikipedia.org/wiki/Markdown + + + The order in which other subs are called here is + essential. Link and image substitutions need to happen before + EscapeSpecialChars(), so that any *'s or _'s in the a + and img tags get encoded. + + + + + Perform transformations that form block-level tags like paragraphs, headers, and list items. + + + + + Perform transformations that occur *within* block-level tags like paragraphs, headers, and list items. + + + + + splits on two or more newlines, to form "paragraphs"; + each paragraph is then unhashed (if it is a hash and unhashing isn't turned off) or wrapped in HTML p tag + + + + + Reusable pattern to match balanced [brackets]. See Friedl's + "Mastering Regular Expressions", 2nd Ed., pp. 328-331. + + + + + Reusable pattern to match balanced (parens). See Friedl's + "Mastering Regular Expressions", 2nd Ed., pp. 328-331. + + + + + Strips link definitions from text, stores the URLs and titles in hash references. + + + ^[id]: url "optional title" + + + + + derived pretty much verbatim from PHP Markdown + + + + + replaces any block-level HTML blocks with hash entries + + + + + returns an array of HTML tokens comprising the input string. Each token is + either a tag (possibly with nested, tags contained therein, such + as <a href="<MTFoo>">, or a run of text between tags. Each element of the + array is a two-element array; the first is either 'tag' or 'text'; the second is + the actual value. + + + + + Turn Markdown link shortcuts into HTML anchor tags + + + [link text](url "title") + [link text][id] + [id] + + + + + Turn Markdown image shortcuts into HTML img tags. + + + ![alt text][id] + ![alt text](url "optional title") + + + + + Turn Markdown headers into HTML header tags + + + Header 1 + ======== + + Header 2 + -------- + + # Header 1 + ## Header 2 + ## Header 2 with closing hashes ## + ... + ###### Header 6 + + + + + Turn Markdown horizontal rules into HTML hr tags + + + *** + * * * + --- + - - - + + + + + Turn Markdown lists into HTML ul and ol and li tags + + + + + Process the contents of a single ordered or unordered list, splitting it + into individual list items. + + + + + /// Turn Markdown 4-space indented code into HTML pre code blocks + + + + + Turn Markdown `code spans` into HTML code tags + + + + + Turn Markdown *italics* and **bold** into HTML strong and em tags + + + + + Turn markdown line breaks (two space at end of line) into HTML break tags + + + + + Turn Markdown > quoted blocks into HTML blockquote blocks + + + + + Turn angle-delimited URLs into HTML anchor tags + + + <http://www.example.com> + + + + + Remove one level of line-leading spaces + + + + + encodes email address randomly + roughly 10% raw, 45% hex, 45% dec + note that @ is always encoded and : never is + + + + + Encode/escape certain Markdown characters inside code blocks and spans where they are literals + + + + + Encode any ampersands (that aren't part of an HTML entity) and left or right angle brackets + + + + + Encodes any escaped characters such as \`, \*, \[ etc + + + + + swap back in all the special characters we've hidden + + + + + escapes Bold [ * ] and Italic [ _ ] characters + + + + + hex-encodes some unusual "problem" chars in URLs to avoid URL detection problems + + + + + Within tags -- meaning between < and > -- encode [\ ` * _] so they + don't conflict with their use in Markdown for code, italics and strong. + We're replacing each such character with its corresponding hash + value; this is likely overkill, but it should prevent us from colliding + with the escape values by accident. + + + + + convert all tabs to _tabWidth spaces; + standardizes line endings from DOS (CR LF) or Mac (CR) to UNIX (LF); + makes sure text ends with a couple of newlines; + removes any blank lines (only spaces) in the text + + + + + this is to emulate what's evailable in PHP + + + + + use ">" for HTML output, or " />" for XHTML output + + + + + when false, email addresses will never be auto-linked + WARNING: this is a significant deviation from the markdown spec + + + + + when true, bold and italic require non-word characters on either side + WARNING: this is a significant deviation from the markdown spec + + + + + when true, RETURN becomes a literal newline + WARNING: this is a significant deviation from the markdown spec + + + + + when true, (most) bare plain URLs are auto-hyperlinked + WARNING: this is a significant deviation from the markdown spec + + + + + when true, problematic URL characters like [, ], (, and so forth will be encoded + WARNING: this is a significant deviation from the markdown spec + + + + + current version of MarkdownSharp; + see http://code.google.com/p/markdownsharp/ for the latest code or to contribute + + + + + Render Markdown for text/markdown and text/plain ContentTypes + + + + + Used in Unit tests + + + + + + Non ASP.NET requests + + + + + + + + ASP.NET requests + + + + + + 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 + + + + + Highly 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 + + + + + Changes the links for the servicestack/metadata page + + + + + Non ASP.NET requests + + + + + ASP.NET requests + + + + + Keep default file contents in-memory + + + + + + 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. + + + + + Read/Write Virtual FileSystem. Defaults to FileSystemVirtualPathProvider + + + + + Cascading collection of virtual file sources, inc. Embedded Resources, File System, In Memory, S3 + + + + + Callback to pre-configure any logic before IPlugin.Register() is fired + + + + diff --git a/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.11/ServiceStack.Client.4.0.11.nupkg b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.11/ServiceStack.Client.4.0.11.nupkg new file mode 100644 index 00000000..729cf384 Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.11/ServiceStack.Client.4.0.11.nupkg differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.11/lib/net40/ServiceStack.Client.dll b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.11/lib/net40/ServiceStack.Client.dll new file mode 100644 index 00000000..661af9fb Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.11/lib/net40/ServiceStack.Client.dll differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.11/lib/net40/ServiceStack.Client.xml b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.11/lib/net40/ServiceStack.Client.xml new file mode 100644 index 00000000..1811c5ff --- /dev/null +++ b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.11/lib/net40/ServiceStack.Client.xml @@ -0,0 +1,383 @@ + + + + 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 + + + + + Returns the next message from queueName or null if no message + + + + + + + Generic Proxy for service calls. + + The service Contract + + + + Returns the transparent proxy for the service call + + + + 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 + + + + + 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. + + + + + 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 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. + + + + + Gets the collection of headers to be added to outgoing requests. + + + + + 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. + + + + + 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 + + + + + Track any IDisposable's to dispose of at the end of the request in IAppHost.OnEndRequest() + + + + + + 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. + + + + + 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 + + + + Specifies if cookies should be stored + + + + + Compresses the specified text using the default compression method: Deflate + + The text. + Type of the compression. + + + + + Decompresses the specified gz buffer using the default compression method: Inflate + + The gz buffer. + Type of the compression. + + + + + 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. + + + + + Used if we need to serialize this exception to XML + + + + + + Returns the first error code + + The error code. + + + + Encapsulates a validation result. + + + + + 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 + + + + + + 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). + + + + + 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. + + + + + 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. + + + + + Gets the singleton instance. + + + + + Naming convention for the request's Response DTO + + + + + Shortcut to get the ResponseStatus whether it's bare or inside a IHttpResult + + + + + + diff --git a/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.11/lib/sl5/ServiceStack.Client.dll b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.11/lib/sl5/ServiceStack.Client.dll new file mode 100644 index 00000000..51628a91 Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.11/lib/sl5/ServiceStack.Client.dll differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/ServiceStack.Client.4.0.60.nupkg b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/ServiceStack.Client.4.0.60.nupkg new file mode 100644 index 00000000..dab13acb Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/ServiceStack.Client.4.0.60.nupkg differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/MonoAndroid/ServiceStack.Client.dll b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/MonoAndroid/ServiceStack.Client.dll new file mode 100644 index 00000000..f5fc5b07 Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/MonoAndroid/ServiceStack.Client.dll differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/MonoAndroid/ServiceStack.Pcl.Android.dll b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/MonoAndroid/ServiceStack.Pcl.Android.dll new file mode 100644 index 00000000..1898f353 Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/MonoAndroid/ServiceStack.Pcl.Android.dll differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/MonoTouch/ServiceStack.Client.dll b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/MonoTouch/ServiceStack.Client.dll new file mode 100644 index 00000000..f5fc5b07 Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/MonoTouch/ServiceStack.Client.dll differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/MonoTouch/ServiceStack.Pcl.iOS.dll b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/MonoTouch/ServiceStack.Pcl.iOS.dll new file mode 100644 index 00000000..290acfae Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/MonoTouch/ServiceStack.Pcl.iOS.dll differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/Xamarin.Mac20/ServiceStack.Client.dll b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/Xamarin.Mac20/ServiceStack.Client.dll new file mode 100644 index 00000000..f5fc5b07 Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/Xamarin.Mac20/ServiceStack.Client.dll differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/Xamarin.Mac20/ServiceStack.Pcl.Mac20.dll b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/Xamarin.Mac20/ServiceStack.Pcl.Mac20.dll new file mode 100644 index 00000000..27398cf2 Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/Xamarin.Mac20/ServiceStack.Pcl.Mac20.dll differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/Xamarin.iOS10/ServiceStack.Client.dll b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/Xamarin.iOS10/ServiceStack.Client.dll new file mode 100644 index 00000000..f5fc5b07 Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/Xamarin.iOS10/ServiceStack.Client.dll differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/Xamarin.iOS10/ServiceStack.Pcl.iOS.dll b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/Xamarin.iOS10/ServiceStack.Pcl.iOS.dll new file mode 100644 index 00000000..d820385d Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/Xamarin.iOS10/ServiceStack.Pcl.iOS.dll differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/net40/ServiceStack.Client.dll b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/net40/ServiceStack.Client.dll new file mode 100644 index 00000000..39e07505 Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/net40/ServiceStack.Client.dll differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/net40/ServiceStack.Client.xml b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/net40/ServiceStack.Client.xml new file mode 100644 index 00000000..19e159c1 --- /dev/null +++ b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/net40/ServiceStack.Client.xml @@ -0,0 +1,435 @@ + + + + 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 + + + + 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 + + + + + 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 + + + + + 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 + + + + + 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 + + + + + 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)) { ... } + + + + + Gets the collection of headers to be added to outgoing requests. + + + + + Whether to execute async callbacks on the same Synchronization Context it was called from. + + + + + 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. + + + + + 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 + + + + + Returns the next message from queueName or null if no message + + + + + + + Generic Proxy for service calls. + + The service Contract + + + + Returns the transparent proxy for the service call + + + + + 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 + + + + Specifies if cookies should be stored + + + + + 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 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. + + + + + Used if we need to serialize this exception to XML + + + + + + Returns the first error code + + The error code. + + + + Encapsulates a validation result. + + + + + 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 + + + + + + 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). + + + + + 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. + + + + + 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. + + + + + Gets the singleton instance. + + + + + Naming convention for the request's Response DTO + + + + + Shortcut to get the ResponseStatus whether it's bare or inside a IHttpResult + + + + + + diff --git a/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/portable-net45+win8+monotouch+monoandroid+xamarin.ios10/ServiceStack.Client.dll b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/portable-net45+win8+monotouch+monoandroid+xamarin.ios10/ServiceStack.Client.dll new file mode 100644 index 00000000..f5fc5b07 Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/portable-net45+win8+monotouch+monoandroid+xamarin.ios10/ServiceStack.Client.dll differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/sl5/ServiceStack.Client.dll b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/sl5/ServiceStack.Client.dll new file mode 100644 index 00000000..8f93e4d4 Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/sl5/ServiceStack.Client.dll differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/win/ServiceStack.Client.dll b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/win/ServiceStack.Client.dll new file mode 100644 index 00000000..f5fc5b07 Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/win/ServiceStack.Client.dll differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/win/ServiceStack.Pcl.WinStore.dll b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/win/ServiceStack.Pcl.WinStore.dll new file mode 100644 index 00000000..7657de15 Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/win/ServiceStack.Pcl.WinStore.dll differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/win/ServiceStack.Pcl.WinStore.pri b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/win/ServiceStack.Pcl.WinStore.pri new file mode 100644 index 00000000..16b07500 Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Client.4.0.60/lib/win/ServiceStack.Pcl.WinStore.pri differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Common.4.0.11/ServiceStack.Common.4.0.11.nupkg b/src/RedisStackOverflow/packages/ServiceStack.Common.4.0.11/ServiceStack.Common.4.0.11.nupkg new file mode 100644 index 00000000..050eb691 Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Common.4.0.11/ServiceStack.Common.4.0.11.nupkg differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Common.4.0.11/lib/net40/ServiceStack.Common.dll b/src/RedisStackOverflow/packages/ServiceStack.Common.4.0.11/lib/net40/ServiceStack.Common.dll new file mode 100644 index 00000000..4c7a5afb Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Common.4.0.11/lib/net40/ServiceStack.Common.dll differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Common.4.0.11/lib/net40/ServiceStack.Common.xml b/src/RedisStackOverflow/packages/ServiceStack.Common.4.0.11/lib/net40/ServiceStack.Common.xml new file mode 100644 index 00000000..109d91cf --- /dev/null +++ b/src/RedisStackOverflow/packages/ServiceStack.Common.4.0.11/lib/net40/ServiceStack.Common.xml @@ -0,0 +1,206 @@ + + + + ServiceStack.Common + + + + + Useful .NET Encryption Utils from: + http://andrewlocatelliwoodcock.com/2011/08/01/implementing-rsa-asymmetric-public-private-key-encryption-in-c-encrypting-under-the-public-key/ + + + + + Encrypt an arbitrary string of data under the supplied public key + + The public key to encrypt under + The data to encrypt + The bit length or strength of the public key: 1024, 2048 or 4096 bits. This must match the + value actually used to create the publicKey + + + + + Create Public and Private Key Pair based on settings already in static class. + + RsaKeyPair + + + + Gets the textual description of the enum if it has one. e.g. + + + enum UserColors + { + [Description("Bright Red")] + BrightRed + } + UserColors.BrightRed.ToDescription(); + + + + + + + + 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. + + + + + 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. + + + + + + Func to get the Strongly-typed field + + + + + Required to cast the return ValueType to an object for caching + + + + + Func to set the Strongly-typed field + + + + + Required to cast the ValueType to an object for caching + + + + + Required to cast the ValueType to an object for caching + + + + + Func to get the Strongly-typed field + + + + + Required to cast the return ValueType to an object for caching + + + + + Func to set the Strongly-typed field + + + + + Required to cast the ValueType to an object for caching + + + + + Required to cast the ValueType to an object for caching + + + + + 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. + + + + + 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 + + + + + + + Provide the an option for the callee to block until all commands are executed + + + + + + + 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. + + + + diff --git a/src/RedisStackOverflow/packages/ServiceStack.Common.4.0.60/ServiceStack.Common.4.0.60.nupkg b/src/RedisStackOverflow/packages/ServiceStack.Common.4.0.60/ServiceStack.Common.4.0.60.nupkg new file mode 100644 index 00000000..b14ebd72 Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Common.4.0.60/ServiceStack.Common.4.0.60.nupkg differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Common.4.0.60/lib/net40/ServiceStack.Common.dll b/src/RedisStackOverflow/packages/ServiceStack.Common.4.0.60/lib/net40/ServiceStack.Common.dll new file mode 100644 index 00000000..fe9a82c5 Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Common.4.0.60/lib/net40/ServiceStack.Common.dll differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Common.4.0.60/lib/net40/ServiceStack.Common.xml b/src/RedisStackOverflow/packages/ServiceStack.Common.4.0.60/lib/net40/ServiceStack.Common.xml new file mode 100644 index 00000000..2ff3e337 --- /dev/null +++ b/src/RedisStackOverflow/packages/ServiceStack.Common.4.0.60/lib/net40/ServiceStack.Common.xml @@ -0,0 +1,410 @@ + + + + ServiceStack.Common + + + + + 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 + + + + + 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(); + + + + + + + + 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. + + + + + 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 + + + + + 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. + + + + + + Func to get the Strongly-typed field + + + + + Required to cast the return ValueType to an object for caching + + + + + Func to set the Strongly-typed field + + + + + Required to cast the ValueType to an object for caching + + + + + Required to cast the ValueType to an object for caching + + + + + Func to get the Strongly-typed field + + + + + Required to cast the return ValueType to an object for caching + + + + + Func to set the Strongly-typed field + + + + + Required to cast the ValueType to an object for caching + + + + + Required to cast the ValueType to an object for caching + + + + + 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. + + + + + 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 + + + + + + + Provide the an option for the callee to block until all commands are executed + + + + + + + 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. + + + + + 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 + + + + + + + diff --git a/src/RedisStackOverflow/packages/ServiceStack.Interfaces.4.0.11/ServiceStack.Interfaces.4.0.11.nupkg b/src/RedisStackOverflow/packages/ServiceStack.Interfaces.4.0.11/ServiceStack.Interfaces.4.0.11.nupkg new file mode 100644 index 00000000..4e4fca5b Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Interfaces.4.0.11/ServiceStack.Interfaces.4.0.11.nupkg differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Interfaces.4.0.11/lib/net40/ServiceStack.Interfaces.dll b/src/RedisStackOverflow/packages/ServiceStack.Interfaces.4.0.11/lib/net40/ServiceStack.Interfaces.dll new file mode 100644 index 00000000..d13fea94 Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Interfaces.4.0.11/lib/net40/ServiceStack.Interfaces.dll differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Interfaces.4.0.11/lib/net40/ServiceStack.Interfaces.xml b/src/RedisStackOverflow/packages/ServiceStack.Interfaces.4.0.11/lib/net40/ServiceStack.Interfaces.xml new file mode 100644 index 00000000..fd6b0866 --- /dev/null +++ b/src/RedisStackOverflow/packages/ServiceStack.Interfaces.4.0.11/lib/net40/ServiceStack.Interfaces.xml @@ -0,0 +1,1685 @@ + + + + ServiceStack.Interfaces + + + + + Required when using a TypeDescriptor to make it unique + + + + + 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. + + + + 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 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. + + + + + A Users Session + + + + + Set a typed value at key + + + + + + + + Get a typed value at key + + + + + + + + Store any object at key + + + + + + + Retrieves a User Session + + + + + Gets the session for this request, creates one if it doesn't exist. + + + + + + + + Gets the session for this request, creates one if it doesn't exist. + Only for ASP.NET apps. Uses the HttpContext.Current singleton. + + + + + Allow delegation of dependencies to other IOC's + + + + + Resolve Property Dependency + + + + + + + Resolve Constructor Dependency + + + + + + + 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. + + + + + Explicit foreign key name. If it's null, or empty, the FK name will be autogenerated as before. + + + + + IgnoreAttribute + Use to indicate that a property is not a field in the table + properties with this attribute are ignored when building sql sentences + + + + + Primary key attribute. + use to indicate that property is part of the pk + + + + + Used to annotate an Entity with its DB schema + + + + + + For providers that want a cleaner API with a little more perf + + + + + + Decorate any type or property with adhoc info + + + + + Creates a Debug Logger, that logs all messages to: System.Diagnostics.Debug + + Made public so its testable + + + + + Factory to create ILog instances + + + + + Gets the logger. + + + + + Gets the logger. + + + + + Default logger is to System.Diagnostics.Debug.WriteLine + + Made public so its testable + + + + + Logs a message in a running application + + + + + 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. + + + + Gets or sets a value indicating whether this instance is debug enabled. + + + true if this instance is debug enabled; otherwise, false. + + + + + 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. + + + + + 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. + + + + Contract indication that the Response DTO has a ResponseStatus + + + + + Logging API for this library. You can inject your own implementation otherwise + will use the DebugLogFactory to write to System.Diagnostics.Debug + + + + + Gets the logger. + + + + + Gets the logger. + + + + + Gets or sets the log factory. + Use this to override the factory that is used to create loggers + + + + + 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 + + + + + Simple definition of an MQ Host + + + + + Register DTOs and hanlders the MQ Host will process + + + + + + + Register DTOs and hanlders the MQ Host will process + + + + + + + + Get Total Current Stats for all Message Handlers + + + + + + 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. + + + + + Factory to create consumers and producers that work with this service + + + + + Get a list of all message types registered on this MQ Host + + + + + 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 + + + + + Wrap the common redis list operations under a IList[string] interface. + + + + + Redis transaction for typed client + + + + + + interface to queueable operation using typed redis client + + + + + + Interface to redis typed pipeline + + + + + Pipeline interface shared by typed and non-typed pipelines + + + + + Interface to operations that allow queued commands to be completed + + + + + 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. + + + + + + Subscribe to channels by name + + + + + + Subscribe to channels matching the supplied patterns + + + + + + 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 + + + + + Interface to redis transaction + + + + + Base transaction interface, shared by typed and non-typed transactions + + + + + interface to operation that can queue commands + + + + + Interface to redis pipeline + + + + + Gets or sets parameter name with which allowable values will be associated. + + + + + The overall description of an API. Used by Swagger. + + + + + 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, 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. + + + + + 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. + + + + + The status code of a response + + + + + The description of a response status code + + + + + Marker interfaces + + + + + Implement on Request DTOs that need access to the raw Request Stream + + + + + The raw Http Request Input Stream + + + + + Resolve a dependency from the AppHost's IOC + + + + + + + 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 + + + + A new shallow copy of this filter is used on every request. + + + + + + Order in which Request Filters are executed. + <0 Executed before global request filters + >0 Executed after global request filters + + + + + 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 new shallow copy of this filter is used on every request. + + + + + + Order in which Response Filters are executed. + <0 Executed before global response filters + >0 Executed after global response filters + + + + + The HTTP Response Status + + + + + The HTTP Response Status Code + + + + + The HTTP Status Description + + + + + The HTTP Response ContentType + + + + + Additional HTTP Headers + + + + + Response DTO + + + + + if not provided, get's injected by ServiceStack + + + + + Holds the request call context + + + + + A thin wrapper around ASP.NET or HttpListener's HttpRequest + + + + + A thin wrapper around each host's Request e.g: ASP.NET, HttpListener, MQ, etc + + + + + The entire string contents of Request.InputStream + + + + + + The underlying ASP.NET or HttpListener HttpRequest + + + + + The name of the service being called (e.g. Request DTO Name) + + + + + The Verb / HttpMethod or Action for this request + + + + + Optional preferences for the processing of this Request + + + + + The Request DTO, after it has been deserialized. + + + + + The request ContentType + + + + + 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. + + + + + Buffer the Request InputStream so it can be re-read + + + + + The Remote Ip as reported by Request.UserHostAddress + + + + + The Remote Ip as reported by X-Forwarded-For, X-Real-IP or Request.UserHostAddress + + + + + e.g. is https or not + + + + + Access to the multi-part/formdata files posted on this request + + + + + The value of the Referrer, null if not available + + + + + 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 + + + + + A thin wrapper around ASP.NET or HttpListener's HttpResponse + + + + + A thin wrapper around each host's Response e.g: ASP.NET, HttpListener, MQ, etc + + + + + 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 + + + + + The underlying ASP.NET or HttpListener HttpResponse + + + + + The Response DTO + + + + + Gets a value indicating whether this instance is closed. + + + + + Log every service request + + + + + Log a request + + The RequestContext + Request DTO + Response DTO or Exception + How long did the Request take + + + + View the most recent logs + + + + + + + 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 access to /requestlogs service to role + + + + + 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. + + + + + Implement on services that need access to the RequestContext + + + + + 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 with an empty RequestContext. + + + + + 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 . + + + + 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. + + + + + Fallback routes have the lowest precedence, i.e. after normal Routes, static files or any matching Catch All Handlers. + + + + + 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 + + + + + A log entry added by the IRequestLogger + + + + + Decorate on Request DTO's to alter the accessibility of a service and its visibility on /metadata pages + + + + + 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 + + + + + + + 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 and Local Intranet only + + + + + Restrict access and hide from metadata to requests from Localhost 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 + + + + 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 + + + + + + + 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 + + + + + + + + + + For multiple detailed validation errors. + Can hold a specific error message for each named field. + + + + + Write a partial content result + + + + + Whether this HttpResult allows Partial Response + + + + + Sends the specified request. + + The request. + + + + diff --git a/src/RedisStackOverflow/packages/ServiceStack.Interfaces.4.0.60/ServiceStack.Interfaces.4.0.60.nupkg b/src/RedisStackOverflow/packages/ServiceStack.Interfaces.4.0.60/ServiceStack.Interfaces.4.0.60.nupkg new file mode 100644 index 00000000..21ed2608 Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Interfaces.4.0.60/ServiceStack.Interfaces.4.0.60.nupkg differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Interfaces.4.0.60/lib/portable-wp80+sl5+net40+win8+wpa81+monotouch+monoandroid+xamarin.ios10/ServiceStack.Interfaces.dll b/src/RedisStackOverflow/packages/ServiceStack.Interfaces.4.0.60/lib/portable-wp80+sl5+net40+win8+wpa81+monotouch+monoandroid+xamarin.ios10/ServiceStack.Interfaces.dll new file mode 100644 index 00000000..1ffe04a4 Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Interfaces.4.0.60/lib/portable-wp80+sl5+net40+win8+wpa81+monotouch+monoandroid+xamarin.ios10/ServiceStack.Interfaces.dll differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Redis.4.0.11/ServiceStack.Redis.4.0.11.nupkg b/src/RedisStackOverflow/packages/ServiceStack.Redis.4.0.11/ServiceStack.Redis.4.0.11.nupkg new file mode 100644 index 00000000..7df7840d Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Redis.4.0.11/ServiceStack.Redis.4.0.11.nupkg differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Redis.4.0.11/lib/net40/ServiceStack.Redis.XML b/src/RedisStackOverflow/packages/ServiceStack.Redis.4.0.11/lib/net40/ServiceStack.Redis.XML new file mode 100644 index 00000000..2cfb309b --- /dev/null +++ b/src/RedisStackOverflow/packages/ServiceStack.Redis.4.0.11/lib/net40/ServiceStack.Redis.XML @@ -0,0 +1,1281 @@ + + + + ServiceStack.Redis + + + + + Provides thread-safe retrievel of redis clients since each client is a new one. + Allows the configuration of different ReadWrite and ReadOnly hosts + + + BasicRedisClientManager for ICacheClient + + For more interoperabilty I'm also implementing the ICacheClient on + this cache client manager which has the affect of calling + GetCacheClient() for all write operations and GetReadOnlyCacheClient() + for the read ones. + + This works well for master-slave replication scenarios where you have + 1 master that replicates to multiple read slaves. + + + + + Hosts can be an IP Address or Hostname in the format: host[:port] + e.g. 127.0.0.1:6379 + default is: localhost:6379 + + The write hosts. + The read hosts. + + + + Returns a Read/Write client (The default) using the hosts defined in ReadWriteHosts + + + + + + Returns a ReadOnly client using the hosts defined in ReadOnlyHosts. + + + + + + Gets or sets object key prefix. + + + + + Courtesy of @marcgravell + http://code.google.com/p/protobuf-net/source/browse/trunk/protobuf-net/BufferPool.cs + + + + + A complete redis command, with method to send command, receive response, and run callback on success or failure + + + + + Allows you to get Redis value operations to operate against POCO types. + + + + + + Use this to share the same redis connection with another + + The client. + + + + Pipeline for redis typed client + + + + + + Queue of commands for redis typed client + + + + + + Redis operation (transaction/pipeline) that allows queued commands to be completed + + + + + Ignore dispose on RedisClientsManager, which should be registered as a singleton + + + + + Useful wrapper IRedisClientsManager to cut down the boiler plat of most IRedisClient access + + + + + A complete redis command, with method to send command, receive response, and run callback on success or failure + + + + + Redis command that does not get queued + + + + + The client wraps the native redis operations into a more readable c# API. + + Where possible these operations are also exposed in common c# interfaces, + e.g. RedisClient.Lists => IList[string] + RedisClient.Sets => ICollection[string] + + + + + This class contains all the common operations for the RedisClient. + The client contains a 1:1 mapping of c# methods to redis operations of the same name. + + Not threadsafe use a pooled manager + + + + + Requires custom result parsing + + Number of results + + + + Command to set multuple binary safe arguments + + + + + + + reset buffer index in send buffer + + + + + Used to manage connection pooling + + + + + Gets or sets object key prefix. + + + + + Creates a new instance of the Redis Client from NewFactoryFn. + + + + + Returns key with automatic object id detection in provided value with generic type. + + + + + + + Returns key with explicit object id. + + + + + + + Returns key with explicit object type and id. + + + + + + + + Provides a redis connection pool that can be sharded + + + + + For interoperabilty GetCacheClient() and GetReadOnlyCacheClient() + return an ICacheClient wrapper around the redis manager which has the affect of calling + GetClient() for all write operations and GetReadOnlyClient() for the read ones. + + This works well for master-slave replication scenarios where you have + 1 master that replicates to multiple read slaves. + + + Provides thread-safe pooling of redis client connections. + Allows load-balancing of master-write and read-slave hosts, ideal for + 1 master and multiple replicated read slaves. + + + + + Hosts can be an IP Address or Hostname in the format: host[:port] + e.g. 127.0.0.1:6379 + default is: localhost:6379 + + The write hosts. + The read hosts. + The config. + + + + Returns a Read/Write client (The default) using the hosts defined in ReadWriteHosts + + + + + + Called within a lock + + + + + + Returns a ReadOnly client using the hosts defined in ReadOnlyHosts. + + + + + + Called within a lock + + + + + + Disposes the read only client. + + The client. + + + + Disposes the write client. + + The client. + + + + Gets or sets object key prefix. + + + + + Manage a client acquired from the PooledRedisClientManager + Dispose method will release the client back to the pool. + + + + + wrap the acquired client + + + + + + release the wrapped client back to the pool + + + + + access the wrapped client + + + + + logical name + + + + + An arbitrary weight relative to other nodes + + + + logical name + An arbitrary weight relative to other nodes + redis nodes + + + + Provides sharding of redis client connections. + uses consistent hashing to distribute keys across connection pools + + + + + maps a key to a redis connection pool + + key to map + a redis connection pool + + + + Adds a node and maps points across the circle + + node to add + An arbitrary number, specifies how often it occurs relative to other targets. + + + + A variation of Binary Search algorithm. Given a number, matches the next highest number from the sorted array. + If a higher number does not exist, then the first number in the array is returned. + + a sorted array to perform the search + number to find the next highest number against + next highest number + + + + Given a key, generates an unsigned 64 bit hash code using MD5 + + + + + + + Distributed lock interface + + + + + Optimized implementation. Primitive types are manually serialized, the rest are serialized using binary serializer />. + + + + + serialize/deserialize arbitrary objects + (objects must be serializable) + + + + + Serialize object to buffer + + serializable object + + + + + Deserialize buffer to object + + byte array to deserialize + + + + + + + + + + + + + + + + + + + serialize value and wrap with + + + + + + + Unwrap object wrapped in + + + + + + + pop numProcessed items from queue and unlock queue for work item id that dequeued + items are associated with + + + + + + A dequeued work item has been processed. When all of the dequeued items have been processed, + all items will be popped from the queue,and the queue unlocked for the work item id that + the dequeued items are associated with + + + + + Update first unprocessed item with new work item. + + + + + + + + + + + distributed work item queue. Each message must have an associated + work item id. For a given id, all work items are guaranteed to be processed + in the order in which they are received. + + + + + distributed work item queue. Each message must have an associated + work item id. For a given id, all work items are guaranteed to be processed + in the order in which they are received. + + + + + + + distributed work item queue + + + + + Enqueue item in priority queue corresponding to workItemId identifier + + + + + + + Preprare next work item id for dequeueing + + + + + Dequeue up to maxBatchSize items from queue corresponding to workItemId identifier. + Once this method is called, or will not + return any items for workItemId until the dequeue lock returned is unlocked. + + + + + + + + Replace existing work item in workItemId queue + + + + + + + + Queue incoming messages + + + + + + + Must call this periodically to move work items from priority queue to pending queue + + + + + Replace existing work item in workItemId queue + + + + + + + + Pop items from list + + + + + + + Force release of locks held by crashed servers + + + + + release lock held by crashed server + + + + true if lock is released, either by this method or by another client; false otherwise + + + + Unlock work item id, so other servers can process items for this id + + + + + + + + + + + + + + + + + + + + + + + + + + + pop remaining items that were returned by dequeue, and unlock queue + + + + + + indicate that an item has been processed by the caller + + + + + Update first unprocessed work item + + + + + + wraps a serialized representation of an object + + + + + + Initializes a new instance of . + + Custom item data. + The serialized item. + + + + The data representing the item being stored/retireved. + + + + + Flags set for this instance. + + + + + distributed lock class that follows the Resource Allocation Is Initialization pattern + + + + + Lock + + + + in seconds + in seconds + + + + unlock + + + + + Enqueue item + + + + + + Dequeue up to maxBatchSize items from queue + + + + + + + distributed work item queue. Messages are processed in chronological order + + + + + Enqueue incoming messages + + + + + + + + Dequeue next batch of work items + + + + + + + + + simple distributed work item queue + + + + + + + Queue incoming messages + + + + + + Dequeue next batch of work items for processing. After this method is called, + no other work items with same id will be available for + dequeuing until PostDequeue is called + + KeyValuePair: key is work item id, and value is list of dequeued items. + + + + + Serialize object to buffer + + serializable object + + + + + + + array of serializable objects + + + + + Deserialize buffer to object + + byte array to deserialize + + + + + + customize the client serializer + + + + + Factory to create SerializingRedisClient objects + + + + + + + + + General purpose pipeline + + + + + + Flush send buffer, and read responses + + + + + Wrap the common redis set operations under a ICollection[string] interface. + + + + + Adds support for Redis Transactions (i.e. MULTI/EXEC/DISCARD operations). + + + + + Put "QUEUED" messages at back of queue + + + + + + Issue exec command (not queued) + + + + + callback for after result count is read in + + + + + + Wrap the common redis set operations under a ICollection[string] interface. + + + + + Wrap the common redis set operations under a ICollection[string] interface. + + + + + Wrap the common redis set operations under a ICollection[string] interface. + + + + + Redis-specific exception. Thrown if unable to connect to Redis server due to socket exception, for example. + + + + + Adds support for Redis Transactions (i.e. MULTI/EXEC/DISCARD operations). + + + + + Put "QUEUED" messages at back of queue + + + + + + Issue exec command (not queued) + + + + + callback for after result count is read in + + + + + + Provide the default factory implementation for creating a RedisClient that + can be mocked and used by different 'Redis Client Managers' + + + + + Wrap the common redis set operations under a ICollection[string] interface. + + + + + Provide the factory implementation for creating a RedisCacheClient that + can be mocked and used by different 'Redis Client Managers' + + + + + Wrap the common redis set operations under a ICollection[string] interface. + + + + + Wrap the common redis list operations under a IList[string] interface. + + + + + Represents a generic collection of key/value pairs that are ordered independently of the key and value. + + The type of the keys in the dictionary + The type of the values in the dictionary + + + + Adds an entry with the specified key and value into the IOrderedDictionary<TKey,TValue> collection with the lowest available index. + + The key of the entry to add. + The value of the entry to add. + The index of the newly added entry + + You can also use the property to add new elements by setting the value of a key that does not exist in the IOrderedDictionary<TKey,TValue> collection; however, if the specified key already exists in the IOrderedDictionary<TKey,TValue>, setting the property overwrites the old value. In contrast, the method does not modify existing elements. + An element with the same key already exists in the IOrderedDictionary<TKey,TValue> + The IOrderedDictionary<TKey,TValue> is read-only.
+ -or-
+ The IOrderedDictionary<TKey,TValue> has a fized size.
+
+ + + Inserts a new entry into the IOrderedDictionary<TKey,TValue> collection with the specified key and value at the specified index. + + The zero-based index at which the element should be inserted. + The key of the entry to add. + The value of the entry to add. The value can be if the type of the values in the dictionary is a reference type. + is less than 0.
+ -or-
+ is greater than .
+ An element with the same key already exists in the IOrderedDictionary<TKey,TValue>. + The IOrderedDictionary<TKey,TValue> is read-only.
+ -or-
+ The IOrderedDictionary<TKey,TValue> has a fized size.
+
+ + + Gets or sets the value at the specified index. + + The zero-based index of the value to get or set. + The value of the item at the specified index. + is less than 0.
+ -or-
+ is equal to or greater than .
+
+ + + Represents a generic collection of key/value pairs that are ordered independently of the key and value. + + The type of the keys in the dictionary + The type of the values in the dictionary + + + + Initializes a new instance of the OrderedDictionary<TKey,TValue> class. + + + + + Initializes a new instance of the OrderedDictionary<TKey,TValue> class using the specified initial capacity. + + The initial number of elements that the OrderedDictionary<TKey,TValue> can contain. + is less than 0 + + + + Initializes a new instance of the OrderedDictionary<TKey,TValue> class using the specified comparer. + + The IEqualityComparer<TKey> to use when comparing keys, or to use the default EqualityComparer<TKey> for the type of the key. + + + + Initializes a new instance of the OrderedDictionary<TKey,TValue> class using the specified initial capacity and comparer. + + The initial number of elements that the OrderedDictionary<TKey,TValue> collection can contain. + The IEqualityComparer<TKey> to use when comparing keys, or to use the default EqualityComparer<TKey> for the type of the key. + is less than 0 + + + + Converts the object passed as a key to the key type of the dictionary + + The key object to check + The key object, cast as the key type of the dictionary + is . + The key type of the OrderedDictionary<TKey,TValue> is not in the inheritance hierarchy of . + + + + Converts the object passed as a value to the value type of the dictionary + + The object to convert to the value type of the dictionary + The value object, converted to the value type of the dictionary + is , and the value type of the OrderedDictionary<TKey,TValue> is a value type. + The value type of the OrderedDictionary<TKey,TValue> is not in the inheritance hierarchy of . + + + + Inserts a new entry into the OrderedDictionary<TKey,TValue> collection with the specified key and value at the specified index. + + The zero-based index at which the element should be inserted. + The key of the entry to add. + The value of the entry to add. The value can be if the type of the values in the dictionary is a reference type. + is less than 0.
+ -or-
+ is greater than .
+ is . + An element with the same key already exists in the OrderedDictionary<TKey,TValue>. +
+ + + Inserts a new entry into the OrderedDictionary<TKey,TValue> collection with the specified key and value at the specified index. + + The zero-based index at which the element should be inserted. + The key of the entry to add. + The value of the entry to add. The value can be if the type of the values in the dictionary is a reference type. + is less than 0.
+ -or-
+ is greater than .
+ is .
+ -or-
+ is , and the value type of the OrderedDictionary<TKey,TValue> is a value type.
+ The key type of the OrderedDictionary<TKey,TValue> is not in the inheritance hierarchy of .
+ -or-
+ The value type of the OrderedDictionary<TKey,TValue> is not in the inheritance hierarchy of .
+ -or-
+ An element with the same key already exists in the OrderedDictionary<TKey,TValue>.
+
+ + + Removes the entry at the specified index from the OrderedDictionary<TKey,TValue> collection. + + The zero-based index of the entry to remove. + is less than 0.
+ -or-
+ index is equal to or greater than .
+
+ + + Adds an entry with the specified key and value into the OrderedDictionary<TKey,TValue> collection with the lowest available index. + + The key of the entry to add. + The value of the entry to add. This value can be . + A key cannot be , but a value can be. + You can also use the property to add new elements by setting the value of a key that does not exist in the OrderedDictionary<TKey,TValue> collection; however, if the specified key already exists in the OrderedDictionary<TKey,TValue>, setting the property overwrites the old value. In contrast, the method does not modify existing elements. + is + An element with the same key already exists in the OrderedDictionary<TKey,TValue> + + + + Adds an entry with the specified key and value into the OrderedDictionary<TKey,TValue> collection with the lowest available index. + + The key of the entry to add. + The value of the entry to add. This value can be . + The index of the newly added entry + A key cannot be , but a value can be. + You can also use the property to add new elements by setting the value of a key that does not exist in the OrderedDictionary<TKey,TValue> collection; however, if the specified key already exists in the OrderedDictionary<TKey,TValue>, setting the property overwrites the old value. In contrast, the method does not modify existing elements. + is + An element with the same key already exists in the OrderedDictionary<TKey,TValue> + + + + Adds an entry with the specified key and value into the OrderedDictionary<TKey,TValue> collection with the lowest available index. + + The key of the entry to add. + The value of the entry to add. This value can be . + is .
+ -or-
+ is , and the value type of the OrderedDictionary<TKey,TValue> is a value type.
+ The key type of the OrderedDictionary<TKey,TValue> is not in the inheritance hierarchy of .
+ -or-
+ The value type of the OrderedDictionary<TKey,TValue> is not in the inheritance hierarchy of .
+
+ + + Removes all elements from the OrderedDictionary<TKey,TValue> collection. + + The capacity is not changed as a result of calling this method. + + + + Determines whether the OrderedDictionary<TKey,TValue> collection contains a specific key. + + The key to locate in the OrderedDictionary<TKey,TValue> collection. + if the OrderedDictionary<TKey,TValue> collection contains an element with the specified key; otherwise, . + is + + + + Determines whether the OrderedDictionary<TKey,TValue> collection contains a specific key. + + The key to locate in the OrderedDictionary<TKey,TValue> collection. + if the OrderedDictionary<TKey,TValue> collection contains an element with the specified key; otherwise, . + is + The key type of the OrderedDictionary<TKey,TValue> is not in the inheritance hierarchy of . + + + + Returns the zero-based index of the specified key in the OrderedDictionary<TKey,TValue> + + The key to locate in the OrderedDictionary<TKey,TValue> + The zero-based index of , if is found in the OrderedDictionary<TKey,TValue>; otherwise, -1 + This method performs a linear search; therefore it has a cost of O(n) at worst. + + + + Removes the entry with the specified key from the OrderedDictionary<TKey,TValue> collection. + + The key of the entry to remove + if the key was found and the corresponding element was removed; otherwise, + + + + Removes the entry with the specified key from the OrderedDictionary<TKey,TValue> collection. + + The key of the entry to remove + + + + Copies the elements of the OrderedDictionary<TKey,TValue> elements to a one-dimensional Array object at the specified index. + + The one-dimensional object that is the destination of the objects copied from the OrderedDictionary<TKey,TValue>. The must have zero-based indexing. + The zero-based index in at which copying begins. + The method preserves the order of the elements in the OrderedDictionary<TKey,TValue> + + + + Gets the value associated with the specified key. + + The key of the value to get. + When this method returns, contains the value associated with the specified key, if the key is found; otherwise, the default value for the type of . This parameter can be passed uninitialized. + if the OrderedDictionary<TKey,TValue> contains an element with the specified key; otherwise, . + + + + Adds the specified value to the OrderedDictionary<TKey,TValue> with the specified key. + + The KeyValuePair<TKey,TValue> structure representing the key and value to add to the OrderedDictionary<TKey,TValue>. + + + + Determines whether the OrderedDictionary<TKey,TValue> contains a specific key and value. + + The KeyValuePair<TKey,TValue> structure to locate in the OrderedDictionary<TKey,TValue>. + if is found in the OrderedDictionary<TKey,TValue>; otherwise, . + + + + Copies the elements of the OrderedDictionary<TKey,TValue> to an array of type , starting at the specified index. + + The one-dimensional array of type KeyValuePair<TKey,TValue> that is the destination of the KeyValuePair<TKey,TValue> elements copied from the OrderedDictionary<TKey,TValue>. The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Removes a key and value from the dictionary. + + The KeyValuePair<TKey,TValue> structure representing the key and value to remove from the OrderedDictionary<TKey,TValue>. + if the key and value represented by is successfully found and removed; otherwise, . This method returns if is not found in the OrderedDictionary<TKey,TValue>. + + + + Gets the dictionary object that stores the keys and values + + The dictionary object that stores the keys and values for the OrderedDictionary<TKey,TValue> + Accessing this property will create the dictionary object if necessary + + + + Gets the list object that stores the key/value pairs. + + The list object that stores the key/value pairs for the OrderedDictionary<TKey,TValue> + Accessing this property will create the list object if necessary. + + + + Gets or sets the value at the specified index. + + The zero-based index of the value to get or set. + The value of the item at the specified index. + is less than 0.
+ -or-
+ index is equal to or greater than .
+
+ + + Gets or sets the value at the specified index. + + The zero-based index of the value to get or set. + The value of the item at the specified index. + is less than 0.
+ -or-
+ index is equal to or greater than .
+ is a null reference, and the value type of the OrderedDictionary<TKey,TValue> is a value type. + The value type of the OrderedDictionary<TKey,TValue> is not in the inheritance hierarchy of . +
+ + + Gets a value indicating whether the OrderedDictionary<TKey,TValue> has a fixed size. + + if the OrderedDictionary<TKey,TValue> has a fixed size; otherwise, . The default is . + + + + Gets a value indicating whether the OrderedDictionary<TKey,TValue> collection is read-only. + + if the OrderedDictionary<TKey,TValue> is read-only; otherwise, . The default is . + + A collection that is read-only does not allow the addition, removal, or modification of elements after the collection is created. + A collection that is read-only is simply a collection with a wrapper that prevents modification of the collection; therefore, if changes are made to the underlying collection, the read-only collection reflects those changes. + + + + + Gets an object containing the keys in the OrderedDictionary<TKey,TValue>. + + An object containing the keys in the OrderedDictionary<TKey,TValue>. + The returned object is not a static copy; instead, the collection refers back to the keys in the original OrderedDictionary<TKey,TValue>. Therefore, changes to the OrderedDictionary<TKey,TValue> continue to be reflected in the key collection. + + + + Gets an object containing the values in the OrderedDictionary<TKey,TValue> collection. + + An object containing the values in the OrderedDictionary<TKey,TValue> collection. + The returned object is not a static copy; instead, the refers back to the values in the original OrderedDictionary<TKey,TValue> collection. Therefore, changes to the OrderedDictionary<TKey,TValue> continue to be reflected in the . + + + + Gets or sets the value with the specified key. + + The key of the value to get or set. + The value associated with the specified key. If the specified key is not found, attempting to get it returns , and attempting to set it creates a new element using the specified key. + + + + Gets or sets the value with the specified key. + + The key of the value to get or set. + The value associated with the specified key. If the specified key is not found, attempting to get it returns , and attempting to set it creates a new element using the specified key. + + + + Gets the number of key/values pairs contained in the OrderedDictionary<TKey,TValue> collection. + + The number of key/value pairs contained in the OrderedDictionary<TKey,TValue> collection. + + + + Gets a value indicating whether access to the OrderedDictionary<TKey,TValue> object is synchronized (thread-safe). + + This method always returns false. + + + + Gets an object that can be used to synchronize access to the OrderedDictionary<TKey,TValue> object. + + An object that can be used to synchronize access to the OrderedDictionary<TKey,TValue> object. + + + + Gets an ICollection<TKey> object containing the keys in the OrderedDictionary<TKey,TValue>. + + An ICollection<TKey> object containing the keys in the OrderedDictionary<TKey,TValue>. + The returned ICollection<TKey> object is not a static copy; instead, the collection refers back to the keys in the original OrderedDictionary<TKey,TValue>. Therefore, changes to the OrderedDictionary<TKey,TValue> continue to be reflected in the key collection. + + + + Gets an ICollection<TValue> object containing the values in the OrderedDictionary<TKey,TValue>. + + An ICollection<TValue> object containing the values in the OrderedDictionary<TKey,TValue>. + The returned ICollection<TKey> object is not a static copy; instead, the collection refers back to the values in the original OrderedDictionary<TKey,TValue>. Therefore, changes to the OrderedDictionary<TKey,TValue> continue to be reflected in the value collection. + + + + acquire distributed, non-reentrant lock on key + + global key for this lock + timeout for acquiring lock + timeout for lock, in seconds (stored as value against lock key) + + + + + + unlock key + + + + + + + + + + + + + Locking strategy interface + + + + + This class manages a read lock for a local readers/writer lock, + using the Resource Acquisition Is Initialization pattern + + + + + RAII initialization + + + + + + RAII disposal + + + + + This class manages a write lock for a local readers/writer lock, + using the Resource Acquisition Is Initialization pattern + + + + + + RAII disposal + + + + + manages a "region" in the redis key space + namespace can be cleared by incrementing the generation + + + + + get current generation + + + + + + set new generation + + + + + + redis key for generation + + + + + + get redis key that holds all namespace keys + + + + + + get global cache key + + + + + + + get global key inside of this namespace + + + prefixes can be added for name deconfliction + + + + + replace UniqueCharacter with its double, to avoid name clash + + + + + + + + + + + + + + get locking strategy + + +
+
diff --git a/src/RedisStackOverflow/packages/ServiceStack.Redis.4.0.11/lib/net40/ServiceStack.Redis.dll b/src/RedisStackOverflow/packages/ServiceStack.Redis.4.0.11/lib/net40/ServiceStack.Redis.dll new file mode 100644 index 00000000..d7469c0d Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Redis.4.0.11/lib/net40/ServiceStack.Redis.dll differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Redis.4.0.60/ServiceStack.Redis.4.0.60.nupkg b/src/RedisStackOverflow/packages/ServiceStack.Redis.4.0.60/ServiceStack.Redis.4.0.60.nupkg new file mode 100644 index 00000000..1c3d9d00 Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Redis.4.0.60/ServiceStack.Redis.4.0.60.nupkg differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Redis.4.0.60/lib/net40/ServiceStack.Redis.XML b/src/RedisStackOverflow/packages/ServiceStack.Redis.4.0.60/lib/net40/ServiceStack.Redis.XML new file mode 100644 index 00000000..bbb2a47b --- /dev/null +++ b/src/RedisStackOverflow/packages/ServiceStack.Redis.4.0.60/lib/net40/ServiceStack.Redis.XML @@ -0,0 +1,1600 @@ + + + + ServiceStack.Redis + + + + + Provides thread-safe retrievel of redis clients since each client is a new one. + Allows the configuration of different ReadWrite and ReadOnly hosts + + + BasicRedisClientManager for ICacheClient + + For more interoperabilty I'm also implementing the ICacheClient on + this cache client manager which has the affect of calling + GetCacheClient() for all write operations and GetReadOnlyCacheClient() + for the read ones. + + This works well for master-slave replication scenarios where you have + 1 master that replicates to multiple read slaves. + + + + + Hosts can be an IP Address or Hostname in the format: host[:port] + e.g. 127.0.0.1:6379 + default is: localhost:6379 + + The write hosts. + The read hosts. + + + + + Returns a Read/Write client (The default) using the hosts defined in ReadWriteHosts + + + + + + Returns a ReadOnly client using the hosts defined in ReadOnlyHosts. + + + + + + Gets or sets object key prefix. + + + + + Resolver strategy for resolving hosts and creating clients + + + + + Courtesy of @marcgravell + http://code.google.com/p/protobuf-net/source/browse/trunk/protobuf-net/BufferPool.cs + + + + + Provides thread-safe pooling of redis client connections. + + + + + Returns a Read/Write client (The default) using the hosts defined in ReadWriteHosts + + + + + + Called within a lock + + + + + + Disposes the write client. + + The client. + + + + The client wraps the native redis operations into a more readable c# API. + + Where possible these operations are also exposed in common c# interfaces, + e.g. RedisClient.Lists => IList[string] + RedisClient.Sets => ICollection[string] + + + + + This class contains all the common operations for the RedisClient. + The client contains a 1:1 mapping of c# methods to redis operations of the same name. + + Not threadsafe use a pooled manager + + + + + Used to manage connection pooling + + + + + Requires custom result parsing + + Number of results + + + + Command to set multuple binary safe arguments + + + + + + + Send command outside of managed Write Buffer + + + + + + reset buffer index in send buffer + + + + + Gets or sets object key prefix. + + + + + Creates a new instance of the Redis Client from NewFactoryFn. + + + + + Store object fields as a dictionary of values in a Hash value. + Conversion to Dictionary can be customized with RedisClient.ConvertToHashFn + + + + + Returns key with automatic object id detection in provided value with generic type. + + + + + + + Returns key with explicit object id. + + + + + + + Returns key with explicit object type and id. + + + + + + + + A complete redis command, with method to send command, receive response, and run callback on success or failure + + + + + Allows you to get Redis value operations to operate against POCO types. + + + + + + Use this to share the same redis connection with another + + The client. + + + + Pipeline for redis typed client + + + + + + Queue of commands for redis typed client + + + + + + Redis operation (transaction/pipeline) that allows queued commands to be completed + + + + + For interoperabilty GetCacheClient() and GetReadOnlyCacheClient() + return an ICacheClient wrapper around the redis manager which has the affect of calling + GetClient() for all write operations and GetReadOnlyClient() for the read ones. + + This works well for master-slave replication scenarios where you have + 1 master that replicates to multiple read slaves. + + + + + Ignore dispose on RedisClientsManager, which should be registered as a singleton + + + + + Useful wrapper IRedisClientsManager to cut down the boiler plate of most IRedisClient access + + + + + Creates a PubSubServer that uses a background thread to listen and process for + Redis Pub/Sub messages published to the specified channel. + Use optional callbacks to listen for message, error and life-cycle events. + Callbacks can be assigned later, then call Start() for PubSubServer to start listening for messages + + + + + A complete redis command, with method to send command, receive response, and run callback on success or failure + + + + + Redis command that does not get queued + + + + + Factory used to Create `RedisClient` instances + + + + + The default RedisClient Socket ConnectTimeout (default -1, None) + + + + + The default RedisClient Socket SendTimeout (default -1, None) + + + + + The default RedisClient Socket ReceiveTimeout (default -1, None) + + + + + Default Idle TimeOut before a connection is considered to be stale (default 240 secs) + + + + + The default RetryTimeout for auto retry of failed operations (default 3000ms) + + + + + Default Max Pool Size for Pooled Redis Client Managers (default none) + + + + + The BackOff multiplier failed Auto Retries starts from (default 10ms) + + + + + The Byte Buffer Size to combine Redis Operations within (default 1450 bytes) + + + + + The Byte Buffer Size for Operations to use a byte buffer pool (default 500kb) + + + + + Whether Connections to Master hosts should be verified they're still master instances (default true) + + + + + The ConnectTimeout on clients used to find the next available host (default 200ms) + + + + + Skip ServerVersion Checks by specifying Min Version number, e.g: 2.8.12 => 2812, 2.9.1 => 2910 + + + + + How long to hold deactivated clients for before disposing their connection (default 1 min) + Dispose of deactivated Clients immediately with TimeSpan.Zero + + + + + Whether Debug Logging should log detailed Redis operations (default false) + + + + + Resets Redis Config and Redis Stats back to default values + + + + + Initialize Sentinel Subscription and Configure Redis ClientsManager + + + + + Check if GetValidSentinel should try the next sentinel server + + + This will be true if the failures is less than either RedisSentinel.MaxFailures or the # of sentinels, whatever is greater + + + + Change to use a different IRedisClientsManager + + + + + Configure the Redis Connection String to use for a Redis Client Host + + + + + The configured Redis Client Manager this Sentinel managers + + + + + Fired when Sentinel fails over the Redis Client Manager to a new master + + + + + Fired when the Redis Sentinel Worker connection fails + + + + + Fired when the Sentinel worker receives a message from the Sentinel Subscription + + + + + Map the internal IP's returned by Sentinels to its external IP + + + + + Whether to routinely scan for other sentinel hosts (default true) + + + + + What interval to scan for other sentinel hosts (default 10 mins) + + + + + How long to wait after failing before connecting to next redis instance (default 250ms) + + + + + How long to retry connecting to hosts before throwing (default 60 secs) + + + + + How long to wait after consecutive failed connection attempts to master before forcing + a Sentinel to failover the current master (default 60 secs) + + + + + The Max Connection time for Sentinel Worker (default 100ms) + + + + + The Max TCP Socket Receive time for Sentinel Worker (default 100ms) + + + + + The Max TCP Socket Send time for Sentinel Worker (default 100ms) + + + + + Reset client connections when Sentinel reports redis instance is subjectively down (default true) + + + + + Reset client connections when Sentinel reports redis instance is objectively down (default true) + + + + + Event that is fired when the sentinel subscription raises an event + + + + + + + Don't immediately kill connections of active clients after failover to give them a chance to dispose gracefully. + Deactivating clients are automatically cleared from the pool. + + + + + Total number of commands sent + + + + + Number of times the Redis Client Managers have FailoverTo() either by sentinel or manually + + + + + Number of times a Client was deactivated from the pool, either by FailoverTo() or exceptions on client + + + + + Number of times connecting to a Sentinel has failed + + + + + Number of times we've forced Sentinel to failover to another master due to + consecutive errors beyond sentinel.WaitBeforeForcingMasterFailover + + + + + Number of times a connecting to a reported Master wasn't actually a Master + + + + + Number of times no Masters could be found in any of the configured hosts + + + + + Number of Redis Client instances created with RedisConfig.ClientFactory + + + + + Number of times a Redis Client was created outside of pool, either due to overflow or reserved slot was overridden + + + + + Number of times Redis Sentinel reported a Subjective Down (sdown) + + + + + Number of times Redis Sentinel reported an Objective Down (sdown) + + + + + Number of times a Redis Request was retried due to Socket or Retryable exception + + + + + Number of times a Request succeeded after it was retried + + + + + Number of times a Retry Request failed after exceeding RetryTimeout + + + + + Total number of deactivated clients that are pending being disposed + + + + + Redis-specific exception. Thrown if unable to connect to Redis server due to socket exception, for example. + + + + + Provides a redis connection pool that can be sharded + + + + + Provides thread-safe pooling of redis client connections. + Allows load-balancing of master-write and read-slave hosts, ideal for + 1 master and multiple replicated read slaves. + + + + + Hosts can be an IP Address or Hostname in the format: host[:port] + e.g. 127.0.0.1:6379 + default is: localhost:6379 + + The write hosts. + The read hosts. + The config. + + + + Returns a Read/Write client (The default) using the hosts defined in ReadWriteHosts + + + + + + Called within a lock + + + + + + Returns a ReadOnly client using the hosts defined in ReadOnlyHosts. + + + + + + Called within a lock + + + + + + Disposes the read only client. + + The client. + + + + Disposes the write client. + + The client. + + + + Gets or sets object key prefix. + + + + + Manage a client acquired from the PooledRedisClientManager + Dispose method will release the client back to the pool. + + + + + wrap the acquired client + + + + + + release the wrapped client back to the pool + + + + + access the wrapped client + + + + + logical name + + + + + An arbitrary weight relative to other nodes + + + + logical name + An arbitrary weight relative to other nodes + redis nodes + + + + Provides sharding of redis client connections. + uses consistent hashing to distribute keys across connection pools + + + + + maps a key to a redis connection pool + + key to map + a redis connection pool + + + + Adds a node and maps points across the circle + + node to add + An arbitrary number, specifies how often it occurs relative to other targets. + + + + A variation of Binary Search algorithm. Given a number, matches the next highest number from the sorted array. + If a higher number does not exist, then the first number in the array is returned. + + a sorted array to perform the search + number to find the next highest number against + next highest number + + + + Given a key, generates an unsigned 64 bit hash code using MD5 + + + + + + + Provides access to the method reflection data as part of the before/after event + + + + + Stores details about the context in which an IRedisClient is allocated. + + + + + + Tracks each IRedisClient instance allocated from the IRedisClientsManager logging when they are allocated and disposed. + Periodically writes the allocated instances to the log for diagnostic purposes. + + + + + Distributed lock interface + + + + + Optimized implementation. Primitive types are manually serialized, the rest are serialized using binary serializer />. + + + + + serialize/deserialize arbitrary objects + (objects must be serializable) + + + + + Serialize object to buffer + + serializable object + + + + + Deserialize buffer to object + + byte array to deserialize + + + + + + + + + + + + + + + + + + + serialize value and wrap with + + + + + + + Unwrap object wrapped in + + + + + + + pop numProcessed items from queue and unlock queue for work item id that dequeued + items are associated with + + + + + + A dequeued work item has been processed. When all of the dequeued items have been processed, + all items will be popped from the queue,and the queue unlocked for the work item id that + the dequeued items are associated with + + + + + Update first unprocessed item with new work item. + + + + + + + + + + + distributed work item queue. Each message must have an associated + work item id. For a given id, all work items are guaranteed to be processed + in the order in which they are received. + + + + + distributed work item queue. Each message must have an associated + work item id. For a given id, all work items are guaranteed to be processed + in the order in which they are received. + + + + + + + distributed work item queue + + + + + Enqueue item in priority queue corresponding to workItemId identifier + + + + + + + Preprare next work item id for dequeueing + + + + + Dequeue up to maxBatchSize items from queue corresponding to workItemId identifier. + Once this method is called, or will not + return any items for workItemId until the dequeue lock returned is unlocked. + + + + + + + + Replace existing work item in workItemId queue + + + + + + + + Queue incoming messages + + + + + + + Must call this periodically to move work items from priority queue to pending queue + + + + + Replace existing work item in workItemId queue + + + + + + + + Pop items from list + + + + + + + Force release of locks held by crashed servers + + + + + release lock held by crashed server + + + + true if lock is released, either by this method or by another client; false otherwise + + + + Unlock work item id, so other servers can process items for this id + + + + + + + + + + + + + + + + + + + + + + + + + + + pop remaining items that were returned by dequeue, and unlock queue + + + + + + indicate that an item has been processed by the caller + + + + + Update first unprocessed work item + + + + + + wraps a serialized representation of an object + + + + + + Initializes a new instance of . + + Custom item data. + The serialized item. + + + + The data representing the item being stored/retireved. + + + + + Flags set for this instance. + + + + + distributed lock class that follows the Resource Allocation Is Initialization pattern + + + + + Lock + + + + in seconds + in seconds + + + + unlock + + + + + Enqueue item + + + + + + Dequeue up to maxBatchSize items from queue + + + + + + + distributed work item queue. Messages are processed in chronological order + + + + + Enqueue incoming messages + + + + + + + + Dequeue next batch of work items + + + + + + + + + simple distributed work item queue + + + + + + + Queue incoming messages + + + + + + Dequeue next batch of work items for processing. After this method is called, + no other work items with same id will be available for + dequeuing until PostDequeue is called + + KeyValuePair: key is work item id, and value is list of dequeued items. + + + + + Serialize object to buffer + + serializable object + + + + + + + array of serializable objects + + + + + Deserialize buffer to object + + byte array to deserialize + + + + + + customize the client serializer + + + + + + + + + General purpose pipeline + + + + + + Flush send buffer, and read responses + + + + + Wrap the common redis set operations under a ICollection[string] interface. + + + + + Adds support for Redis Transactions (i.e. MULTI/EXEC/DISCARD operations). + + + + + Put "QUEUED" messages at back of queue + + + + + + Issue exec command (not queued) + + + + + callback for after result count is read in + + + + + + Wrap the common redis set operations under a ICollection[string] interface. + + + + + Wrap the common redis set operations under a ICollection[string] interface. + + + + + Wrap the common redis set operations under a ICollection[string] interface. + + + + + Adds support for Redis Transactions (i.e. MULTI/EXEC/DISCARD operations). + + + + + Put "QUEUED" messages at back of queue + + + + + + Issue exec command (not queued) + + + + + callback for after result count is read in + + + + + + Wrap the common redis set operations under a ICollection[string] interface. + + + + + Wrap the common redis set operations under a ICollection[string] interface. + + + + + Wrap the common redis list operations under a IList[string] interface. + + + + + Represents a generic collection of key/value pairs that are ordered independently of the key and value. + + The type of the keys in the dictionary + The type of the values in the dictionary + + + + Adds an entry with the specified key and value into the IOrderedDictionary<TKey,TValue> collection with the lowest available index. + + The key of the entry to add. + The value of the entry to add. + The index of the newly added entry + + You can also use the property to add new elements by setting the value of a key that does not exist in the IOrderedDictionary<TKey,TValue> collection; however, if the specified key already exists in the IOrderedDictionary<TKey,TValue>, setting the property overwrites the old value. In contrast, the method does not modify existing elements. + An element with the same key already exists in the IOrderedDictionary<TKey,TValue> + The IOrderedDictionary<TKey,TValue> is read-only.
+ -or-
+ The IOrderedDictionary<TKey,TValue> has a fized size.
+
+ + + Inserts a new entry into the IOrderedDictionary<TKey,TValue> collection with the specified key and value at the specified index. + + The zero-based index at which the element should be inserted. + The key of the entry to add. + The value of the entry to add. The value can be if the type of the values in the dictionary is a reference type. + is less than 0.
+ -or-
+ is greater than .
+ An element with the same key already exists in the IOrderedDictionary<TKey,TValue>. + The IOrderedDictionary<TKey,TValue> is read-only.
+ -or-
+ The IOrderedDictionary<TKey,TValue> has a fized size.
+
+ + + Gets or sets the value at the specified index. + + The zero-based index of the value to get or set. + The value of the item at the specified index. + is less than 0.
+ -or-
+ is equal to or greater than .
+
+ + + Represents a generic collection of key/value pairs that are ordered independently of the key and value. + + The type of the keys in the dictionary + The type of the values in the dictionary + + + + Initializes a new instance of the OrderedDictionary<TKey,TValue> class. + + + + + Initializes a new instance of the OrderedDictionary<TKey,TValue> class using the specified initial capacity. + + The initial number of elements that the OrderedDictionary<TKey,TValue> can contain. + is less than 0 + + + + Initializes a new instance of the OrderedDictionary<TKey,TValue> class using the specified comparer. + + The IEqualityComparer<TKey> to use when comparing keys, or to use the default EqualityComparer<TKey> for the type of the key. + + + + Initializes a new instance of the OrderedDictionary<TKey,TValue> class using the specified initial capacity and comparer. + + The initial number of elements that the OrderedDictionary<TKey,TValue> collection can contain. + The IEqualityComparer<TKey> to use when comparing keys, or to use the default EqualityComparer<TKey> for the type of the key. + is less than 0 + + + + Converts the object passed as a key to the key type of the dictionary + + The key object to check + The key object, cast as the key type of the dictionary + is . + The key type of the OrderedDictionary<TKey,TValue> is not in the inheritance hierarchy of . + + + + Converts the object passed as a value to the value type of the dictionary + + The object to convert to the value type of the dictionary + The value object, converted to the value type of the dictionary + is , and the value type of the OrderedDictionary<TKey,TValue> is a value type. + The value type of the OrderedDictionary<TKey,TValue> is not in the inheritance hierarchy of . + + + + Inserts a new entry into the OrderedDictionary<TKey,TValue> collection with the specified key and value at the specified index. + + The zero-based index at which the element should be inserted. + The key of the entry to add. + The value of the entry to add. The value can be if the type of the values in the dictionary is a reference type. + is less than 0.
+ -or-
+ is greater than .
+ is . + An element with the same key already exists in the OrderedDictionary<TKey,TValue>. +
+ + + Inserts a new entry into the OrderedDictionary<TKey,TValue> collection with the specified key and value at the specified index. + + The zero-based index at which the element should be inserted. + The key of the entry to add. + The value of the entry to add. The value can be if the type of the values in the dictionary is a reference type. + is less than 0.
+ -or-
+ is greater than .
+ is .
+ -or-
+ is , and the value type of the OrderedDictionary<TKey,TValue> is a value type.
+ The key type of the OrderedDictionary<TKey,TValue> is not in the inheritance hierarchy of .
+ -or-
+ The value type of the OrderedDictionary<TKey,TValue> is not in the inheritance hierarchy of .
+ -or-
+ An element with the same key already exists in the OrderedDictionary<TKey,TValue>.
+
+ + + Removes the entry at the specified index from the OrderedDictionary<TKey,TValue> collection. + + The zero-based index of the entry to remove. + is less than 0.
+ -or-
+ index is equal to or greater than .
+
+ + + Adds an entry with the specified key and value into the OrderedDictionary<TKey,TValue> collection with the lowest available index. + + The key of the entry to add. + The value of the entry to add. This value can be . + A key cannot be , but a value can be. + You can also use the property to add new elements by setting the value of a key that does not exist in the OrderedDictionary<TKey,TValue> collection; however, if the specified key already exists in the OrderedDictionary<TKey,TValue>, setting the property overwrites the old value. In contrast, the method does not modify existing elements. + is + An element with the same key already exists in the OrderedDictionary<TKey,TValue> + + + + Adds an entry with the specified key and value into the OrderedDictionary<TKey,TValue> collection with the lowest available index. + + The key of the entry to add. + The value of the entry to add. This value can be . + The index of the newly added entry + A key cannot be , but a value can be. + You can also use the property to add new elements by setting the value of a key that does not exist in the OrderedDictionary<TKey,TValue> collection; however, if the specified key already exists in the OrderedDictionary<TKey,TValue>, setting the property overwrites the old value. In contrast, the method does not modify existing elements. + is + An element with the same key already exists in the OrderedDictionary<TKey,TValue> + + + + Adds an entry with the specified key and value into the OrderedDictionary<TKey,TValue> collection with the lowest available index. + + The key of the entry to add. + The value of the entry to add. This value can be . + is .
+ -or-
+ is , and the value type of the OrderedDictionary<TKey,TValue> is a value type.
+ The key type of the OrderedDictionary<TKey,TValue> is not in the inheritance hierarchy of .
+ -or-
+ The value type of the OrderedDictionary<TKey,TValue> is not in the inheritance hierarchy of .
+
+ + + Removes all elements from the OrderedDictionary<TKey,TValue> collection. + + The capacity is not changed as a result of calling this method. + + + + Determines whether the OrderedDictionary<TKey,TValue> collection contains a specific key. + + The key to locate in the OrderedDictionary<TKey,TValue> collection. + if the OrderedDictionary<TKey,TValue> collection contains an element with the specified key; otherwise, . + is + + + + Determines whether the OrderedDictionary<TKey,TValue> collection contains a specific key. + + The key to locate in the OrderedDictionary<TKey,TValue> collection. + if the OrderedDictionary<TKey,TValue> collection contains an element with the specified key; otherwise, . + is + The key type of the OrderedDictionary<TKey,TValue> is not in the inheritance hierarchy of . + + + + Returns the zero-based index of the specified key in the OrderedDictionary<TKey,TValue> + + The key to locate in the OrderedDictionary<TKey,TValue> + The zero-based index of , if is found in the OrderedDictionary<TKey,TValue>; otherwise, -1 + This method performs a linear search; therefore it has a cost of O(n) at worst. + + + + Removes the entry with the specified key from the OrderedDictionary<TKey,TValue> collection. + + The key of the entry to remove + if the key was found and the corresponding element was removed; otherwise, + + + + Removes the entry with the specified key from the OrderedDictionary<TKey,TValue> collection. + + The key of the entry to remove + + + + Copies the elements of the OrderedDictionary<TKey,TValue> elements to a one-dimensional Array object at the specified index. + + The one-dimensional object that is the destination of the objects copied from the OrderedDictionary<TKey,TValue>. The must have zero-based indexing. + The zero-based index in at which copying begins. + The method preserves the order of the elements in the OrderedDictionary<TKey,TValue> + + + + Gets the value associated with the specified key. + + The key of the value to get. + When this method returns, contains the value associated with the specified key, if the key is found; otherwise, the default value for the type of . This parameter can be passed uninitialized. + if the OrderedDictionary<TKey,TValue> contains an element with the specified key; otherwise, . + + + + Adds the specified value to the OrderedDictionary<TKey,TValue> with the specified key. + + The KeyValuePair<TKey,TValue> structure representing the key and value to add to the OrderedDictionary<TKey,TValue>. + + + + Determines whether the OrderedDictionary<TKey,TValue> contains a specific key and value. + + The KeyValuePair<TKey,TValue> structure to locate in the OrderedDictionary<TKey,TValue>. + if is found in the OrderedDictionary<TKey,TValue>; otherwise, . + + + + Copies the elements of the OrderedDictionary<TKey,TValue> to an array of type , starting at the specified index. + + The one-dimensional array of type KeyValuePair<TKey,TValue> that is the destination of the KeyValuePair<TKey,TValue> elements copied from the OrderedDictionary<TKey,TValue>. The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Removes a key and value from the dictionary. + + The KeyValuePair<TKey,TValue> structure representing the key and value to remove from the OrderedDictionary<TKey,TValue>. + if the key and value represented by is successfully found and removed; otherwise, . This method returns if is not found in the OrderedDictionary<TKey,TValue>. + + + + Gets the dictionary object that stores the keys and values + + The dictionary object that stores the keys and values for the OrderedDictionary<TKey,TValue> + Accessing this property will create the dictionary object if necessary + + + + Gets the list object that stores the key/value pairs. + + The list object that stores the key/value pairs for the OrderedDictionary<TKey,TValue> + Accessing this property will create the list object if necessary. + + + + Gets or sets the value at the specified index. + + The zero-based index of the value to get or set. + The value of the item at the specified index. + is less than 0.
+ -or-
+ index is equal to or greater than .
+
+ + + Gets or sets the value at the specified index. + + The zero-based index of the value to get or set. + The value of the item at the specified index. + is less than 0.
+ -or-
+ index is equal to or greater than .
+ is a null reference, and the value type of the OrderedDictionary<TKey,TValue> is a value type. + The value type of the OrderedDictionary<TKey,TValue> is not in the inheritance hierarchy of . +
+ + + Gets a value indicating whether the OrderedDictionary<TKey,TValue> has a fixed size. + + if the OrderedDictionary<TKey,TValue> has a fixed size; otherwise, . The default is . + + + + Gets a value indicating whether the OrderedDictionary<TKey,TValue> collection is read-only. + + if the OrderedDictionary<TKey,TValue> is read-only; otherwise, . The default is . + + A collection that is read-only does not allow the addition, removal, or modification of elements after the collection is created. + A collection that is read-only is simply a collection with a wrapper that prevents modification of the collection; therefore, if changes are made to the underlying collection, the read-only collection reflects those changes. + + + + + Gets an object containing the keys in the OrderedDictionary<TKey,TValue>. + + An object containing the keys in the OrderedDictionary<TKey,TValue>. + The returned object is not a static copy; instead, the collection refers back to the keys in the original OrderedDictionary<TKey,TValue>. Therefore, changes to the OrderedDictionary<TKey,TValue> continue to be reflected in the key collection. + + + + Gets an object containing the values in the OrderedDictionary<TKey,TValue> collection. + + An object containing the values in the OrderedDictionary<TKey,TValue> collection. + The returned object is not a static copy; instead, the refers back to the values in the original OrderedDictionary<TKey,TValue> collection. Therefore, changes to the OrderedDictionary<TKey,TValue> continue to be reflected in the . + + + + Gets or sets the value with the specified key. + + The key of the value to get or set. + The value associated with the specified key. If the specified key is not found, attempting to get it returns , and attempting to set it creates a new element using the specified key. + + + + Gets or sets the value with the specified key. + + The key of the value to get or set. + The value associated with the specified key. If the specified key is not found, attempting to get it returns , and attempting to set it creates a new element using the specified key. + + + + Gets the number of key/values pairs contained in the OrderedDictionary<TKey,TValue> collection. + + The number of key/value pairs contained in the OrderedDictionary<TKey,TValue> collection. + + + + Gets a value indicating whether access to the OrderedDictionary<TKey,TValue> object is synchronized (thread-safe). + + This method always returns false. + + + + Gets an object that can be used to synchronize access to the OrderedDictionary<TKey,TValue> object. + + An object that can be used to synchronize access to the OrderedDictionary<TKey,TValue> object. + + + + Gets an ICollection<TKey> object containing the keys in the OrderedDictionary<TKey,TValue>. + + An ICollection<TKey> object containing the keys in the OrderedDictionary<TKey,TValue>. + The returned ICollection<TKey> object is not a static copy; instead, the collection refers back to the keys in the original OrderedDictionary<TKey,TValue>. Therefore, changes to the OrderedDictionary<TKey,TValue> continue to be reflected in the key collection. + + + + Gets an ICollection<TValue> object containing the values in the OrderedDictionary<TKey,TValue>. + + An ICollection<TValue> object containing the values in the OrderedDictionary<TKey,TValue>. + The returned ICollection<TKey> object is not a static copy; instead, the collection refers back to the values in the original OrderedDictionary<TKey,TValue>. Therefore, changes to the OrderedDictionary<TKey,TValue> continue to be reflected in the value collection. + + + + acquire distributed, non-reentrant lock on key + + global key for this lock + timeout for acquiring lock + timeout for lock, in seconds (stored as value against lock key) + + + + + + unlock key + + + + + + + + + + + + + Locking strategy interface + + + + + This class manages a read lock for a local readers/writer lock, + using the Resource Acquisition Is Initialization pattern + + + + + RAII initialization + + + + + + RAII disposal + + + + + This class manages a write lock for a local readers/writer lock, + using the Resource Acquisition Is Initialization pattern + + + + + + RAII disposal + + + + + manages a "region" in the redis key space + namespace can be cleared by incrementing the generation + + + + + get current generation + + + + + + set new generation + + + + + + redis key for generation + + + + + + get redis key that holds all namespace keys + + + + + + get global cache key + + + + + + + get global key inside of this namespace + + + prefixes can be added for name deconfliction + + + + + replace UniqueCharacter with its double, to avoid name clash + + + + + + + + + + + + + + get locking strategy + + +
+
diff --git a/src/RedisStackOverflow/packages/ServiceStack.Redis.4.0.60/lib/net40/ServiceStack.Redis.dll b/src/RedisStackOverflow/packages/ServiceStack.Redis.4.0.60/lib/net40/ServiceStack.Redis.dll new file mode 100644 index 00000000..df7cfeff Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Redis.4.0.60/lib/net40/ServiceStack.Redis.dll differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Text.4.0.11/ServiceStack.Text.4.0.11.nupkg b/src/RedisStackOverflow/packages/ServiceStack.Text.4.0.11/ServiceStack.Text.4.0.11.nupkg new file mode 100644 index 00000000..9ff6da54 Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Text.4.0.11/ServiceStack.Text.4.0.11.nupkg differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Text.4.0.11/lib/net40/ServiceStack.Text.dll b/src/RedisStackOverflow/packages/ServiceStack.Text.4.0.11/lib/net40/ServiceStack.Text.dll new file mode 100644 index 00000000..30eee22c Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Text.4.0.11/lib/net40/ServiceStack.Text.dll differ diff --git a/src/packages/ServiceStack.Text.3.9.63/lib/sl4-windowsphone71/ServiceStack.Text.WP.XML b/src/RedisStackOverflow/packages/ServiceStack.Text.4.0.11/lib/net40/ServiceStack.Text.xml similarity index 51% rename from src/packages/ServiceStack.Text.3.9.63/lib/sl4-windowsphone71/ServiceStack.Text.WP.XML rename to src/RedisStackOverflow/packages/ServiceStack.Text.4.0.11/lib/net40/ServiceStack.Text.xml index 9ff9189b..9688d3e1 100644 --- a/src/packages/ServiceStack.Text.3.9.63/lib/sl4-windowsphone71/ServiceStack.Text.WP.XML +++ b/src/RedisStackOverflow/packages/ServiceStack.Text.4.0.11/lib/net40/ServiceStack.Text.xml @@ -1,99 +1,102 @@ - ServiceStack.Text.WP + ServiceStack.Text - + - Creates an instance of a Type from a string value + Utils to load types - + - A fast, standards-based, serialization-issue free DateTime serailizer. + Find the type from the name supplied + [typeName] or [typeName, assemblyName] + - + - Class to hold + The top-most interface of the given type, if any. - - + - WCF Json format: /Date(unixts+0000)/ + Find type if it exists - - + + + The type if it exists - + - WCF Json format: /Date(unixts+0000)/ + Populate an object with Example data. - + - + - Shortcut escape when we're sure value doesn't contain any escaped chars + Populates the object with example data. - - + + Tracks how deeply nested we are + - + - Since Silverlight doesn't have char.ConvertFromUtf32() so putting Mono's implemenation inline. + If AlwaysUseUtc is set to true then convert all DateTime to UTC. - + - + - Creates an instance of a Type from a string value + 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. - + - Determines whether the specified type is convertible from string. + WCF Json format: /Date(unixts+0000)/ - The type. - - true if the specified type is convertible from string; otherwise, false. - + + - + - Parses the specified value. + WCF Json format: /Date(unixts+0000)/ - The value. + - + - Parses the specified type. + Get the type(string) constructor if exists The type. - The value. - + - Useful extension method to get the Dictionary[string,string] representation of any POCO type. + micro optimizations: using flags instead of value.IndexOfAny(EscapeChars) + - + - Recursively prints the contents of any POCO object in a human-friendly, readable format + Class to hold - - + + - Implement the serializer using a more static approach + A fast, standards-based, serialization-issue free DateTime serailizer. - @@ -132,62 +135,83 @@ The value. The writer. - + - Parses the specified value. + Sets which format to use when serializing TimeSpans - The value. - - + - 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. + 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. - + - Utils to load types + if the is configured + to support web-friendly serialized formats, ie emitting lowercase_underscore_casing for JSON - + - Find the type from the name supplied + Define how property names are mapped during deserialization - [typeName] or [typeName, assemblyName] - - + - Find type if it exists + 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 . - - - The type if it exists - + - 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. + 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 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 assume is in UTC format if Kind is Unspecified. - + - Provide hint to MonoTouch AOT compiler to pre-compile generic classes for all your DTOs. - Just needs to be called once in a static constructor. + 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". + + + + + 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. + + + + + If set to true, Interface types will be prefered over concrete types when serializing. + + + + + Always emit type info for this type. Takes precedence over ExcludeTypeInfo @@ -208,27 +232,95 @@ Define custom serialization fn for BCL Structs + + + Define custom raw serialization fn + + + + + Define custom 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 - + Opt-in flag to set some Value Types to be treated as a Ref Type - + - micro optimizations: using flags instead of value.IndexOfAny(EscapeChars) + Whether there is a fn (raw or otherwise) + + + + + 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 unescaped string value + + + + + Get unescaped string value + + + + + Write JSON Array, Object, bool or number values as raw string + + + + + Get JSON string value + + + + + Creates an instance of a Type from a string value - - @@ -237,91 +329,200 @@ The value. - + - A class to allow the conversion of doubles to string representations of - their exact decimal values. The implementation aims for readability over - efficiency. + 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 optimizations: using flags instead of value.IndexOfAny(EscapeChars) + + + + + + + Implement the serializer using a more static approach + + + + + + Implement the serializer using a more static approach + + + + + + Public Code API to register commercial license for ServiceStack. + + + + + Internal Utilities to verify licensing + + + + + Pretty Thread-Safe cache class from: + http://code.google.com/p/dapper-dot-net/source/browse/Dapper/SqlMapper.cs - Courtesy of @JonSkeet - http://www.yoda.arachsys.com/csharp/DoubleConverter.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. - - - - - - How many digits are *after* the decimal point + + + Represents an individual object, allowing access to members by-name - - - Constructs an arbitrary decimal expansion from the given long. - The long must not be negative. + + + Use the target types definition of equality - + - Multiplies the current expansion by the given amount, which should - only be 2 or 5. + Obtain the hash of the target object - + - 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. + Use the target's definition of a string representation - + - Removes leading/trailing zeroes from the expansion. + Wraps an individual object, allowing by-name access to that instance - + - Converts the value to a proper decimal string representation. + Get or Set the value of a named member for the underlying object - + + + The object represented by this instance + + + + + Provides by-name member-access to objects of a given type + + + + + 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 + + + + Does this type support new instances via a parameterless constructor? + + + + + Get or set the value of a named member on the target instance + + + + + Maps the path of a file in the context of a VS project + + 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 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 + + Implement the serializer using a more static approach - + - A hashset implementation that uses an IDictionary + Creates a new instance of type. + First looks at JsConfig.ModelFactory before falling back to CreateInstance - + - micro optimizations: using flags instead of value.IndexOfAny(EscapeChars) + 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 + + + + + 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. - - - + @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 @@ -329,54 +530,54 @@ 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 @@ -385,24 +586,117 @@ To. - + Skip the encoding process for 'safe strings' - + - Implement the serializer using a more static approach + 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. + + + - Get the type(string) constructor if exists + 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. diff --git a/src/RedisStackOverflow/packages/ServiceStack.Text.4.0.60/ServiceStack.Text.4.0.60.nupkg b/src/RedisStackOverflow/packages/ServiceStack.Text.4.0.60/ServiceStack.Text.4.0.60.nupkg new file mode 100644 index 00000000..40e24660 Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Text.4.0.60/ServiceStack.Text.4.0.60.nupkg differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Text.4.0.60/lib/net40/ServiceStack.Text.dll b/src/RedisStackOverflow/packages/ServiceStack.Text.4.0.60/lib/net40/ServiceStack.Text.dll new file mode 100644 index 00000000..4ec9d6f3 Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Text.4.0.60/lib/net40/ServiceStack.Text.dll differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Text.4.0.60/lib/net40/ServiceStack.Text.xml b/src/RedisStackOverflow/packages/ServiceStack.Text.4.0.60/lib/net40/ServiceStack.Text.xml new file mode 100644 index 00000000..55441d99 --- /dev/null +++ b/src/RedisStackOverflow/packages/ServiceStack.Text.4.0.60/lib/net40/ServiceStack.Text.xml @@ -0,0 +1,1400 @@ + + + + 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 + + + + Populate an object with Example data. + + + + + + + Populates the object with example data. + + + Tracks how deeply nested we are + + + + + 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 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. + + + + + 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. + + + + + If set to true, Interface types will be prefered over concrete types when serializing. + + + + + 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 + + + + + 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 + + + + + Opt-in flag to set some Value Types to be treated as a Ref Type + + + + + Whether there is a fn (raw or otherwise) + + + + + 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 unescaped string value + + + + + Get unescaped string value + + + + + Write JSON Array, Object, bool or number values as raw string + + + + + Get JSON string value + + + + + 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 + + + + + + Public Code API to register commercial license for ServiceStack. + + + + + Internal Utilities to verify licensing + + + + + 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 + + + + + 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 + + + + + Get or Set the value of a named member for the underlying object + + + + + The object represented by this instance + + + + + Provides by-name member-access to objects of a given type + + + + + 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 + + + + Does this type support new instances via a parameterless constructor? + + + + + Get or set the value of a named member on the target instance + + + + + Maps the path of a file in the context of a VS project + + 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 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 + + + + 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". + + + + + 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. + + + + + 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). + + + + + 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. + + + + pooled memory : 4K * 512 = 4MB + + + + 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 + + + + + Reusable StringBuilder ThreadStatic Cache + + + + + Alternative Reusable StringBuilder ThreadStatic Cache + + + + + Reusable StringWriter ThreadStatic Cache + + + + + Alternative Reusable StringWriter ThreadStatic Cache + + + + + Implement the serializer using a more static approach + + + + + + 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. + + + + + 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 + + + + 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. + + + + 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). + + + + + 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. + + + + + 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. + + + + 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. + + + + + 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 + + + + + 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). + + + + + 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. + + + + + 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 + + + + + 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 + + + + + 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. + + + + + @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' + + + + + + + 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. + + + + diff --git a/src/RedisStackOverflow/packages/ServiceStack.Text.4.0.60/lib/portable-net45+win8+monotouch+monoandroid+xamarin.ios10/ServiceStack.Text.dll b/src/RedisStackOverflow/packages/ServiceStack.Text.4.0.60/lib/portable-net45+win8+monotouch+monoandroid+xamarin.ios10/ServiceStack.Text.dll new file mode 100644 index 00000000..48df576a Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Text.4.0.60/lib/portable-net45+win8+monotouch+monoandroid+xamarin.ios10/ServiceStack.Text.dll differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Text.4.0.60/lib/sl5/ServiceStack.Text.dll b/src/RedisStackOverflow/packages/ServiceStack.Text.4.0.60/lib/sl5/ServiceStack.Text.dll new file mode 100644 index 00000000..cfd11dad Binary files /dev/null and b/src/RedisStackOverflow/packages/ServiceStack.Text.4.0.60/lib/sl5/ServiceStack.Text.dll differ diff --git a/src/RedisStackOverflow/packages/ServiceStack.Text.4.0.60/lib/sl5/ServiceStack.Text.xml b/src/RedisStackOverflow/packages/ServiceStack.Text.4.0.60/lib/sl5/ServiceStack.Text.xml new file mode 100644 index 00000000..33a1ef81 --- /dev/null +++ b/src/RedisStackOverflow/packages/ServiceStack.Text.4.0.60/lib/sl5/ServiceStack.Text.xml @@ -0,0 +1,2369 @@ + + + + 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 + + + + Populate an object with Example data. + + + + + + + Populates the object with example data. + + + Tracks how deeply nested we are + + + + + Search key structure for + + Type of the key. + Type of the value. + + + + A Concurrent implementation. + + Type of the keys. + Type of the values. + + This class is threadsafe and highly concurrent. This means that multiple threads can do lookup and insert operations + on this dictionary simultaneously. + It is not guaranteed that collisions will not occur. The dictionary is partitioned in segments. A segment contains + a set of items based on a hash of those items. The more segments there are and the beter the hash, the fewer collisions will occur. + This means that a nearly empty ConcurrentDictionary is not as concurrent as one containing many items. + + + + + Base class for concurrent hashtable implementations + + Type of the items stored in the hashtable. + Type of the key to search with. + + + + Constructor (protected) + + Use Initialize method after construction. + + + + Initialize the newly created ConcurrentHashtable. Invoke in final (sealed) constructor + or Create method. + + + + + Create a segment range + + Number of segments in range. + Number of slots allocated initialy in each segment. + The created instance. + + + + While adjusting the segmentation, _NewRange will hold a reference to the new range of segments. + when the adjustment is complete this reference will be copied to _CurrentRange. + + + + + Will hold the most current reange of segments. When busy adjusting the segmentation, this + field will hold a reference to the old range. + + + + + While adjusting the segmentation this field will hold a boundary. + Clients accessing items with a key hash value below this boundary (unsigned compared) + will access _NewRange. The others will access _CurrentRange + + + + + Get a hashcode for given storeable item. + + Reference to the item to get a hash value for. + The hash value as an . + + The hash returned should be properly randomized hash. The standard GetItemHashCode methods are usually not good enough. + A storeable item and a matching search key should return the same hash code. + So the statement ItemEqualsItem(storeableItem, searchKey) ? GetItemHashCode(storeableItem) == GetItemHashCode(searchKey) : true should always be true; + + + + + Get a hashcode for given search key. + + Reference to the key to get a hash value for. + The hash value as an . + + The hash returned should be properly randomized hash. The standard GetItemHashCode methods are usually not good enough. + A storeable item and a matching search key should return the same hash code. + So the statement ItemEqualsItem(storeableItem, searchKey) ? GetItemHashCode(storeableItem) == GetItemHashCode(searchKey) : true should always be true; + + + + + Compares a storeable item to a search key. Should return true if they match. + + Reference to the storeable item to compare. + Reference to the search key to compare. + True if the storeable item and search key match; false otherwise. + + + + Compares two storeable items for equality. + + Reference to the first storeable item to compare. + Reference to the second storeable item to compare. + True if the two soreable items should be regarded as equal. + + + + Indicates if a specific item reference contains a valid item. + + The storeable item reference to check. + True if the reference doesn't refer to a valid item; false otherwise. + The statement IsEmpty(default(TStoredI)) should always be true. + + + + Returns the type of the key value or object. + + The stored item to get the type of the key for. + The actual type of the key or null if it can not be determined. + + Used for diagnostics purposes. + + + + + Gets a segment out of either _NewRange or _CurrentRange based on the hash value. + + + + + + + Gets a LOCKED segment out of either _NewRange or _CurrentRange based on the hash value. + Unlock needs to be called on this segment before it can be used by other clients. + + + + + + + Gets a LOCKED segment out of either _NewRange or _CurrentRange based on the hash value. + Unlock needs to be called on this segment before it can be used by other clients. + + + + + + + Finds an item in the table collection that maches the given searchKey + + The key to the item. + Out reference to a field that will receive the found item. + A boolean that will be true if an item has been found and false otherwise. + + + + Looks for an existing item in the table contents using an alternative copy. If it can be found it will be returned. + If not then the alternative copy will be added to the table contents and the alternative copy will be returned. + + A copy to search an already existing instance with + Out reference to receive the found item or the alternative copy + A boolean that will be true if an existing copy was found and false otherwise. + + + + Replaces and existing item + + + + + true is the existing item was successfully replaced. + + + + Inserts an item in the table contents possibly replacing an existing item. + + The item to insert in the table + Out reference to a field that will receive any possibly replaced item. + A boolean that will be true if an existing copy was found and replaced and false otherwise. + + + + Removes an item from the table contents. + + The key to find the item with. + Out reference to a field that will receive the found and removed item. + A boolean that will be rue if an item was found and removed and false otherwise. + + + + Enumerates all segments in _CurrentRange and locking them before yielding them and resleasing the lock afterwards + The order in which the segments are returned is undefined. + Lock SyncRoot before using this enumerable. + + + + + + Removes all items from the collection. + Aquires a lock on SyncRoot before it does it's thing. + When this method returns and multiple threads have access to this table it + is not guaranteed that the table is actually empty. + + + + + Determines if a segmentation adjustment is needed. + + True + + + + Bool as int (for interlocked functions) that is true if a Segmentation assesment is pending. + + + + + The total allocated number of item slots. Filled with nonempty items or not. + + + + + When a segment resizes it uses this method to inform the hashtable of the change in allocated space. + + + + + + Schedule a call to the AssessSegmentation() method. + + + + + Checks if segmentation needs to be adjusted and if so performs the adjustment. + + + + + + This method is called when a re-segmentation is expected to be needed. It checks if it actually is needed and, if so, performs the re-segementation. + + + + + Adjusts the segmentation to the new segment count + + The new number of segments to use. This must be a power of 2. + The number of item slots to reserve in each segment. + + + + Returns an object that serves as a lock for range operations + + + Clients use this primarily for enumerating over the Tables contents. + Locking doesn't guarantee that the contents don't change, but prevents operations that would + disrupt the enumeration process. + Operations that use this lock: + Count, Clear, DisposeGarbage and AssessSegmentation. + Keeping this lock will prevent the table from re-segmenting. + + + + + Gets an IEnumerable to iterate over all items in all segments. + + + + A lock should be aquired and held on SyncRoot while this IEnumerable is being used. + The order in which the items are returned is undetermined. + + + + + Returns a count of all items in teh collection. This may not be + aqurate when multiple threads are accessing this table. + Aquires a lock on SyncRoot before it does it's thing. + + + + + Gives the minimum number of segments a hashtable can contain. This should be 1 or more and always a power of 2. + + + + + Gives the minimum number of allocated item slots per segment. This should be 1 or more, always a power of 2 + and less than 1/2 of MeanSegmentAllocatedSpace. + + + + + Gives the prefered number of allocated item slots per segment. This should be 4 or more and always a power of 2. + + + + + Constructs a instance using the default to compare keys. + + + + + Constructs a instance using the specified to compare keys. + + The tp compare keys with. + is null. + + + + Get a hashcode for given storeable item. + + Reference to the item to get a hash value for. + The hash value as an . + + The hash returned should be properly randomized hash. The standard GetItemHashCode methods are usually not good enough. + A storeable item and a matching search key should return the same hash code. + So the statement ItemEqualsItem(storeableItem, searchKey) ? GetItemHashCode(storeableItem) == GetItemHashCode(searchKey) : true should always be true; + + + + + Get a hashcode for given search key. + + Reference to the key to get a hash value for. + The hash value as an . + + The hash returned should be properly randomized hash. The standard GetItemHashCode methods are usually not good enough. + A storeable item and a matching search key should return the same hash code. + So the statement ItemEqualsItem(storeableItem, searchKey) ? GetItemHashCode(storeableItem) == GetItemHashCode(searchKey) : true should always be true; + + + + + Compares a storeable item to a search key. Should return true if they match. + + Reference to the storeable item to compare. + Reference to the search key to compare. + True if the storeable item and search key match; false otherwise. + + + + Compares two storeable items for equality. + + Reference to the first storeable item to compare. + Reference to the second storeable item to compare. + True if the two soreable items should be regarded as equal. + + + + Indicates if a specific item reference contains a valid item. + + The storeable item reference to check. + True if the reference doesn't refer to a valid item; false otherwise. + The statement IsEmpty(default(TStoredI)) should always be true. + + + + Adds an element with the provided key and value to the dictionary. + + The object to use as the key of the element to add. + The object to use as the value of the element to add. + An element with the same key already exists in the dictionary. + + + + Determines whether the dictionary + contains an element with the specified key. + + The key to locate in the dictionary. + true if the dictionary contains + an element with the key; otherwise, false. + + + + Removes the element with the specified key from the dictionary. + + The key of the element to remove. + true if the element is successfully removed; otherwise, false. This method + also returns false if key was not found in the original dictionary. + + + + Gets the value associated with the specified key. + + The key whose value to get. + + When this method returns, the value associated with the specified key, if + the key is found; otherwise, the default value for the type of the value + parameter. This parameter is passed uninitialized. + + + true if the dictionary contains an element with the specified key; otherwise, false. + + + + + Adds an association to the dictionary. + + A that represents the association to add. + An association with an equal key already exists in the dicitonary. + + + + Removes all items from the dictionary. + + WHen working with multiple threads, that each can add items to this dictionary, it is not guaranteed that the dictionary will be empty when this method returns. + + + + Determines whether the specified association exists in the dictionary. + + The key-value association to search fo in the dicionary. + True if item is found in the dictionary; otherwise, false. + + This method compares both key and value. It uses the default equality comparer to compare values. + + + + + Copies all associations of the dictionary to an + , starting at a particular index. + + The one-dimensional that is the destination of the associations + copied from . The must + have zero-based indexing. + The zero-based index in at which copying begins. + is null. + is less than 0. + is equal to or greater than the length of . + The number of associations to be copied + is greater than the available space from to the end of the destination + . + + + + Removes the specified association from the , comparing both key and value. + + A representing the association to remove. + true if the association was successfully removed from the ; + otherwise, false. This method also returns false if the association is not found in + the original . + + + + + Returns an enumerator that iterates through all associations in the at the moment of invocation. + + A that can be used to iterate through the associations. + + + + Returns an enumerator that iterates through all associations in the at the moment of invocation. + + A that can be used to iterate through the associations. + + + + Gives the of TKey that is used to compare keys. + + + + + Gets an containing the keys of + the dictionary. + + An containing the keys of the dictionary. + This property takes a snapshot of the current keys collection of the dictionary at the moment of invocation. + + + + Gets an containing the values in + the dictionary. + + + An containing the values in the dictionary. + + This property takes a snapshot of the current keys collection of the dictionary at the moment of invocation. + + + + Gets or sets the value associated with the specified key. + + The key of the value to get or set. + The value associated with the specified key. If the specified key is not found, a get operation throws a KeyNotFoundException, and a set operation creates a new element with the specified key. + + When working with multiple threads, that can each potentialy remove the searched for item, a can always be expected. + + + + + Gets the number of elements contained in the . + + + + + Gets a value indicating whether the is read-only, which is always false. + + + + + Initialize the segment. + + + + + + When segment gets introduced into hashtable then its allocated space should be added to the + total allocated space. + Single threaded access or locking is needed + + + + + + When segment gets removed from hashtable then its allocated space should be subtracted to the + total allocated space. + Single threaded access or locking is needed + + + + + + Array with 'slots'. Each slot can be filled or empty. + + + + + Inserts an item into a *not empty* spot given by position i. It moves items forward until an empty spot is found. + + + + + + + + + Find item in segment. + + Reference to the search key to use. + Out reference to store the found item in. + Object that tells this segment how to treat items and keys. + True if an item could be found, otherwise false. + + + + Find an existing item or, if it can't be found, insert a new item. + + Reference to the item that will be inserted if an existing item can't be found. It will also be used to search with. + Out reference to store the found item or, if it can not be found, the new inserted item. + Object that tells this segment how to treat items and keys. + True if an existing item could be found, otherwise false. + + + + Inserts an item in the segment, possibly replacing an equal existing item. + + A reference to the item to insert. + An out reference where any replaced item will be written to, if no item was replaced the new item will be written to this reference. + Object that tells this segment how to treat items and keys. + True if an existing item could be found and is replaced, otherwise false. + + + + Removes an item from the segment. + + A reference to the key to search with. + An out reference where the removed item will be stored or default() if no item to remove can be found. + Object that tells this segment how to treat items and keys. + True if an item could be found and is removed, false otherwise. + + + + Iterate over items in the segment. + + Position beyond which the next filled slot will be found and the item in that slot returned. (Starting with -1) + Out reference where the next item will be stored or default if the end of the segment is reached. + Object that tells this segment how to treat items and keys. + The index position the next item has been found or -1 otherwise. + + + + Total numer of filled slots in _List. + + + + + Remove any excess allocated space + + + + + + Boolean value indicating if this segment has not been trashed yet. + + + + + Release a reader lock + + + + + Release a writer lock + + + + + Aquire a reader lock. Wait until lock is aquired. + + + + + Aquire a reader lock. + + True if to wait until lock aquired, False to return immediately. + Boolean indicating if lock was successfuly aquired. + + + + Aquire a writer lock. Wait until lock is aquired. + + + + + Aquire a writer lock. + + True if to wait until lock aquired, False to return immediately. + Boolean indicating if lock was successfuly aquired. + + + + 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 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. + + + + + 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. + + + + + If set to true, Interface types will be prefered over concrete types when serializing. + + + + + 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 + + + + + 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 + + + + + Opt-in flag to set some Value Types to be treated as a Ref Type + + + + + Whether there is a fn (raw or otherwise) + + + + + 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 unescaped string value + + + + + Get unescaped string value + + + + + Write JSON Array, Object, bool or number values as raw string + + + + + Get JSON string value + + + + + 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 + + + + + + Public Code API to register commercial license for ServiceStack. + + + + + Internal Utilities to verify licensing + + + + + 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. + + + + + Maps the path of a file in the context of a VS project + + 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 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 + + + + 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". + + + + + 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. + + + + + 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). + + + + + 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. + + + + pooled memory : 4K * 512 = 4MB + + + + 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 + + + + + Reusable StringBuilder ThreadStatic Cache + + + + + Alternative Reusable StringBuilder ThreadStatic Cache + + + + + Reusable StringWriter ThreadStatic Cache + + + + + Alternative Reusable StringWriter ThreadStatic Cache + + + + + 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 + + + + + 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. + + + + + BigInteger library by Chew Keong TAN (See project source for info). + + + + + Interface which must be implemented by all custom padding providers. + Padding is used to provide randomness and unpredictability to the data + before it is encrypted. + + + + + Adds padding to the input data and returns the padded data. + + Data to be padded prior to encryption + RSA Parameters used for padding computation + Padded message + + + + Removes padding that was added to the unencrypted data prior to encryption. + + Data to have padding removed + RSA Parameters used for padding computation + Unpadded message + + + + Gets the maximum message length for this padding provider. + + RSA Parameters used for padding computation + Max message length + + + + Uses PKCS#1 v 1.5 padding scheme to pad the data. + + + + + + Default constructor. + + + + + Adds padding to the input data and returns the padded data. + + Data to be padded prior to encryption + RSA Parameters used for padding computation + Padded message + + + + Removes padding that was added to the unencrypted data prior to encryption. + + Data to have padding removed + RSA Parameters used for padding computation + Unpadded message + + + + Gets the maximum message length for this padding provider. + + RSA Parameters used for padding computation + Max message length + + + + The NoPadding class does not add any padding to the data. + This is not recommended. + + + + + Default constructor. + + + + + Adds padding to the input data and returns the padded data. + + Data to be padded prior to encryption + RSA Parameters used for padding computation + Padded message + + + + Removes padding that was added to the unencrypted data prior to encryption. + + Data to have padding removed + RSA Parameters used for padding computation + Unpadded message + + + + Gets the maximum message length for this padding provider. + + RSA Parameters used for padding computation + Max message length + + + + Uses OAEP Padding defined in PKCS#1 v 2.1. Uses the + default standard SHA1 hash. This padding provider is + compatible with .NET's OAEP implementation. + + + + + Default constructor. Uses the default SHA1 Hash for OAEP hash calculation. + + + + + Internal constructor (used to perform OAEP with a different hash and hash output length + + + + + + + Adds padding to the input data and returns the padded data. + + Data to be padded prior to encryption + RSA Parameters used for padding computation + Padded message + + + + Removes padding that was added to the unencrypted data prior to encryption. + + Data to have padding removed + RSA Parameters used for padding computation + Unpadded message + + + + Gets the maximum message length for this padding provider. + + RSA Parameters used for padding computation + Max message length + + + + Uses OAEP Padding Scheme defined in PKCS#1 v 2.1. Uses a + SHA256 hash. This padding provider is currently + not compatible with .NET's OAEP implementation. + + + + + Default constructor. Uses a SHA256 Hash for OAEP hash calculation. + This PaddingProvider provides added security to message padding, + however it requires the data to be encrypted to be shorter and + is not compatible with the RSACryptoServiceProvider's implementation + of OAEP. + + + + + Adds padding to the input data and returns the padded data. + + Data to be padded prior to encryption + RSA Parameters used for padding computation + Padded message + + + + Removes padding that was added to the unencrypted data prior to encryption. + + Data to have padding removed + RSA Parameters used for padding computation + Unpadded message + + + + Gets the maximum message length for this padding provider. + + RSA Parameters used for padding computation + Max message length + + + + All custom signature providers must implement this interface. The + RSACrypto class handles encryption and decryption of data. The + SignatureProvider is intended to provide the hashing and signature + generation mechanism used to create the comparison data. + + + + + Generates a hash for the input data. + + Data to be signed + RSA Parameters used for signature calculation + Computed signature (pre-encryption) + + + + Verifies the signed data against the unsigned data after decryption. + + Unsigned data + Signed data (after decryption) + RSAParameters used for signature computation + Boolean representing whether the input data matches the signed data + + + + Uses the DER (Distinguished Encoding Rules) + and the SHA1 hash provider for encoding generation. + + + + + Default constructor + + + + + Hashes and encodes the signature for encryption. Uses the DER (Distinguished Encoding Rules) + and the SHA1 hash provider for encoding generation. + + Data to be signed + RSA Parameters used for signature calculation + Computed signature (pre-encryption) + + + + Verifies the signed data against the unsigned data after decryption. + + Unsigned data + Signed data (after decryption) + RSAParameters used for signature computation + Boolean representing whether the input data matches the signed data + + + + Uses the DER (Distinguished Encoding Rules) + and the SHA256 hash provider for encoding generation. + + + + + Default constructor + + + + + Hashes and encodes the signature for encryption. Uses the DER (Distinguished Encoding Rules) + and the SHA256 hash provider for encoding generation. + + Data to be signed + RSA Parameters used for signature calculation + Computed signature (pre-encryption) + + + + Verifies the signed data against the unsigned data after decryption. + + Unsigned data + Signed data (after decryption) + RSAParameters used for signature computation + Boolean representing whether the input data matches the signed data + + + + Base interface that must be implemented by all hash providers. + + + + + Compute the hash of the input byte array and return the hashed value as a byte array. + + Input data + Hashed data. + + + + Hash provider based on SHA256 + + + + + Default constructor. + + + + + Compute the hash of the input byte array and return the hashed value as a byte array. + + Input data + SHA256 Hashed data + + + + Hash provider based on HMACSHA256 to allow inclusion of a hash seed value + + + + + Constructor accepting a private key (seed) value + + Byte array containing the private hash seed + + + + Compute the hash of the input byte array and return the hashed value as a byte array. + + Input data + HMACSHA256 Hashed data. + + + + Hash provider based on SHA1 + + + + + Default constructor. + + + + + Compute the hash of the input byte array and return the hashed value as a byte array. + + Input data + SHA1 Hashed data. + + + + Hash provider based on HMACSHA1 to allow inclusion of a hash seed value + + + + + Constructor accepting a private key (seed) value + + Byte array containing the private hash seed + + + + Compute the hash of the input byte array and return the hashed value as a byte array. + + Input data + HMACSHA1 Hashed data. + + + + RSA Cryptography class + + + + + Default constructor for the RSA Class. A cipher strength of 1024-bit will used by default. To specify + a higher cipher strength, please use the alternate RSACrypto(cipherStrength) constructor. + + + + + RSA Class Constructor + + + Cipher strength in bits. 2048 is recommended. Must be a multiple of 8. + Max supported by this class is 4096. Minimum is 256. Cipher strength only + needs to be specified if generating new key pairs. It is not necessary to + know the cipher strength when importing existing key pairs. + + + + + Return the currently loaded key as XML. This method will automatically + return an empty string if no key has been loaded. + + Signals whether to include the private key in the output data. + XML String with the key data. + + + + Sets the current class internal variables based on the supplied XML. + Attempts to validate the XML prior to setting. + + XML String containing key info + + + + + Import an existing set of RSA Parameters. If only the public key is to be loaded, + Do not set the P, Q, DP, DQ, IQ or D values. If P, Q or D are set, the parameters + will automatically be validated for existence of private key. + + RSAParameters object containing key data. + + + + Returns an RSAParameters object that contains the key data for the currently loaded key. + + Instance of the currently loaded RSAParameters object or null if no key is loaded + + + + + Imports a blob that represents asymmetric key information. + + A byte array that represents an asymmetric key blob. + Invalid key blob data + Initialized RSAParameters structure + + + + Exports a blob that contains the key information associated with an AsymmetricAlgorithm object. + + true to include the private key; otherwise, false. + A byte array that contains the key information associated with an AsymmetricAlgorithm object + + + + Generate the RSA Key Pair using the default exponent of 65537. + + + + + Generate the RSA Key Pair using a supplied cipher strength and the default + exponent value of 65537. If a cipherStrength was specified in the constructor, + the supplied value will override it. + + The strength of the cipher in bits. Must be a multiple of 8 + and between 256 and 4096 + + + + Generate the RSA Key Pair using a supplied cipher strength value and exponent value. + A prime number value between 3 and 65537 is recommended for the exponent. Larger + exponents can increase security but also increase encryption time. Your supplied + exponent may be automatically adjusted to ensure compatibility with the RSA algorithm + security requirements. If a cipherStrength was specified in the constructor, + the supplied value will override it. + + The strength of the cipher in bits. Must be a multiple of 8 + and between 256 and 4096 + Custom exponent value to be used for RSA Calculation + + + + Encrypt input bytes with the public key. Data can only be decrypted with + the private key. If no PaddingProvider is set, the default padding provider of OAEP will be assumed. To + specify a different padding algorithm, make sure you set the PaddingProvider property. + + Data bytes to be encrypted + Encrypted byte array + Key generation is CPU intensive. It is highly recommended that you create + your key pair in advance and use a predetermined key pair. If you do choose to allow + the key pair to be automatically generated, it can be exported to XML or an RSAParameter + set after the encryption is complete. + + + + Run the encryption routine using the private key for encryption. While this may be useful in some + fringe scenarios, if simple verification is needed it is recommended that you use the Sign() method + instead, which signs a hashed version of your data. If no PaddingProvider is set, the default padding + provider of OAEP will be assumed. To specify a different padding algorithm, make sure you set the + PaddingProvider property. + + Data to be encrypted with the private key + Encrypted data bytes + + This method uses the PaddingProvider for message verification. To create signature + hashes, please use the SignData and VerifyData methods. + Data encrypted this way can be decrypted using your PUBLIC KEY. This method of encryption is meant + for verification purposes only and does not secure your data against decryption. + + + + + Sign a hash of the input data using the supplied Signature Provider and encrypt with the private key. + + Data to be hashed and signed + The signature provider to use for signature generation. + Signed hash bytes + + + + Decrypt data that was encrypted using the Public Key. If no PaddingProvider is set, the default + padding provider of OAEP will be assumed. To specify a different padding algorithm, make sure + you set the PaddingProvider property. + + Encrypted bytes + Decrypted bytes + + + + Decrypt data that was encrypted with the Private Key. NOTE: This method + uses the PaddingProvider for message decoding. To create signature + hashes, please use the SignData and VerifyData methods. If no PaddingProvider is set, the default + padding provider of OAEP will be assumed. To specify a different padding algorithm, make sure + you set the PaddingProvider property. + + Encrypted bytes + Decrypted bytes + + + + Verify the signature against the unsigned data. The encryptedData is decrypted using the public key and + the unsignedData is hashed and compared to the un-encrypted signed data using the supplied SignatureProvider. + + The raw, unencrypted data to be hashed and compared. + The data that has been hashed and encrypted with the private key. + The signature provider that matches the algorithm used to generate the original signature + Boolean representing whether the signature was valid (verified) + + + + Different versions of RSA use different padding schemes. This property allows you to + set the padding scheme you wish to use. If not set, the default of OAEP will be + used. While PKCS1 v1.5 is supported, OAEP is the recommended padding scheme to use. + You can create your own padding schemes by implementing the IPaddingProvider interface. + + Padding provider instance + Current padding provider + + + + Based on the padding provider, messages are stricted to certain lengths for encryption. Also, + ensure that the key pair has either been generated or imported. + + + + + Fires when key generation is complete. + + + + + Delegate for OnKeysGenerated event + + Object + + + + Cryptographic Exception + + + + + Constructor + + Error Message + + + + Constructor + + Error Message + Inner Exception + + + + CALG_RSA_KEYX = (ALG_CLASS_KEY_EXCHANGE|ALG_TYPE_RSA|ALG_SID_RSA_ANY) + + + + + Simple Key BLOB + + + + + Public Key BLOB + + + + + Private Key BLOB + + + + + PlainText Key BLOB + + + + + Opaque Key BLOB + + + + + Public Key BLOB Extended + + + + + Symmetric Wrap Key BLOB + + + + + A BLOBHEADER / PUBLICKEYSTRUC structure (Import from WinCrypt.h) + + http://msdn.microsoft.com/en-us/library/ms884652.aspx + + + + Key BLOB type. The only BLOB types currently defined are PUBLICKEYBLOB, PRIVATEKEYBLOB, and SIMPLEBLOB. Other key BLOB types will be defined as needed. + + + + + Version number of the key BLOB format. This member currently must always have a value of 0x02. + + + + + Reserved for future use. This member must be set to zero. + + + + + Algorithm identifier for the key contained by the key BLOB structure + + + + + Create and initialize structure from binary data + + On validate errors + Initialized structure + + + + Serializes structure as binary data + + + + + Create and initialize structure from RSAParameters + + Initialized structure + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + RSA public key data + + http://msdn.microsoft.com/en-us/library/aa387685(v=VS.85).aspx + + + + The magic member must be set to 0x31415352 (public only) / 0x32415352 (including private). This hex value is the ASCII encoding of RSA1 / RSA2. + + + + + # of bits in modulus + + + + + Public exponent + + + + + Create and initialize structure from binary data + + On validate errors + Initialized structure + + + + Serializes structure as binary data + + + + + Create and initialize structure from RSAParameters + + Initialized structure + + + + Create and initialize RSAParameters structure + + Initialized structure + http://msdn.microsoft.com/en-us/library/system.security.cryptography.rsaparameters.aspx + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Private-key BLOBs, type PRIVATEKEYBLOB, are used to store private keys outside a CSP. Extended provider private-key BLOBs have the following format. + + + + + BLOB Header + + + + + RSA public key data + + + + + The modulus. This has a value of prime1 * prime2 and is often known as n. + + + + + Prime number 1, often known as p. + + + + + Prime number 2, often known as q. + + + + + Exponent 1. This has a numeric value of d mod (p - 1). + + + + + Exponent 2. This has a numeric value of d mod (q - 1). + + + + + Coefficient. This has a numeric value of (inverse of q mod p). + + + + + Private exponent, often known as d. + + + + + Create and initialize structure from binary data + + On validate errors + Initialized structure + + + + Create and initialize structure from binary data with defined header + + On validate errors + Initialized structure + + + + Serializes structure as binary data + + + + + Create and initialize structure from RSAParameters + + Initialized structure + http://msdn.microsoft.com/en-us/library/system.security.cryptography.rsaparameters.aspx + + + + Create and initialize RSAParameters structure + + Initialized structure + http://msdn.microsoft.com/en-us/library/system.security.cryptography.rsaparameters.aspx + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Public-key BLOBs, type PUBLICKEYBLOB, are used to store public keys outside a CSP. Extended provider public-key BLOBs have the following format. + + + + + BLOB Header + + + + + RSA public key data + + + + + The public-key modulus data + + + + + Create and initialize structure from binary data + + On validate errors + Initialized structure + + + + Create and initialize structure from binary data with defined header + + On validate errors + Initialized structure + + + + Serializes structure as binary data + + + + + Create and initialize structure from RSAParameters + + Initialized structure + http://msdn.microsoft.com/en-us/library/system.security.cryptography.rsaparameters.aspx + + + + Create and initialize RSAParameters structure + + Initialized structure + http://msdn.microsoft.com/en-us/library/system.security.cryptography.rsaparameters.aspx + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + RSAParameters for Import / Export + + + + + Parameter value E + + + + + Parameter value N + + + + + Parameter value P + + + + + Parameter value Q + + + + + Parameter value DP + + + + + Parameter value DQ + + + + + Parameter value IQ + + + + + Parameter value D + + + + + Parameter value Phi + + + + + Bitwise XOR for 2 byte arrays. Arrays must be the same length. + + Left side for comparison + Right side for comparison + Resulting byte array + + + + Bitwise XOR for 2 Bytes. + + Left side for comparison + Right side for comparison + Resulting byte + + + + Convert the input Integer to an Octet String. + + input integer + size in octets (bytes) + Resulting byte array of specified length + + + + Mask generation function. + + Seed + Length of generated mask + Length of the hash produced by the supplied hash provider + Hash provider to use in mask generation + Generated mask of specified length + + + + @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' + + + + + + + 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. + + + + diff --git a/src/RedisStackOverflow/packages/repositories.config b/src/RedisStackOverflow/packages/repositories.config new file mode 100644 index 00000000..07ea6541 --- /dev/null +++ b/src/RedisStackOverflow/packages/repositories.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/RestFiles/RestFiles.ServiceInterface/AppConfig.cs b/src/RestFiles/RestFiles.ServiceInterface/AppConfig.cs index a217c405..d97082db 100644 --- a/src/RestFiles/RestFiles.ServiceInterface/AppConfig.cs +++ b/src/RestFiles/RestFiles.ServiceInterface/AppConfig.cs @@ -1,6 +1,6 @@ using System.Collections.Generic; using System.IO; -using ServiceStack.Common.Utils; +using ServiceStack; using ServiceStack.Configuration; namespace RestFiles.ServiceInterface @@ -13,7 +13,7 @@ public AppConfig() this.ExcludeDirectories = new List(); } - public AppConfig(IResourceManager resources) + public AppConfig(IAppSettings resources) { this.RootDirectory = resources.GetString("RootDirectory").MapHostAbsolutePath() .Replace('\\', Path.DirectorySeparatorChar); diff --git a/src/RestFiles/RestFiles.ServiceInterface/FilesService.cs b/src/RestFiles/RestFiles.ServiceInterface/FilesService.cs index 45115604..887d521e 100644 --- a/src/RestFiles/RestFiles.ServiceInterface/FilesService.cs +++ b/src/RestFiles/RestFiles.ServiceInterface/FilesService.cs @@ -4,9 +4,7 @@ using RestFiles.ServiceInterface.Support; using RestFiles.ServiceModel; using RestFiles.ServiceModel.Types; -using ServiceStack.Common.Web; -using ServiceStack.ServiceHost; -using ServiceStack.ServiceInterface; +using ServiceStack; using File = System.IO.File; namespace RestFiles.ServiceInterface @@ -51,7 +49,7 @@ public void Post(Files request) if (!Directory.Exists(targetDir.FullName)) Directory.CreateDirectory(targetDir.FullName); - foreach (var uploadedFile in base.RequestContext.Files) + foreach (var uploadedFile in base.Request.Files) { var newFilePath = Path.Combine(targetDir.FullName, uploadedFile.FileName); uploadedFile.SaveTo(newFilePath); diff --git a/src/RestFiles/RestFiles.ServiceInterface/RestFiles.ServiceInterface.csproj b/src/RestFiles/RestFiles.ServiceInterface/RestFiles.ServiceInterface.csproj index 86948a68..fe311f57 100644 --- a/src/RestFiles/RestFiles.ServiceInterface/RestFiles.ServiceInterface.csproj +++ b/src/RestFiles/RestFiles.ServiceInterface/RestFiles.ServiceInterface.csproj @@ -10,7 +10,7 @@ Properties RestFiles.ServiceInterface RestFiles.ServiceInterface - v3.5 + v4.5 512 @@ -31,6 +31,7 @@ false false true + true @@ -41,6 +42,7 @@ prompt 4 AllRules.ruleset + false pdbonly @@ -50,38 +52,33 @@ prompt 4 AllRules.ruleset + false - - ..\..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.dll + + ..\..\packages\ServiceStack.4.5.0\lib\net45\ServiceStack.dll + True - - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Common.dll + + ..\..\packages\ServiceStack.Client.4.5.0\lib\net45\ServiceStack.Client.dll + True - - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Interfaces.dll + + ..\..\packages\ServiceStack.Common.4.5.0\lib\net45\ServiceStack.Common.dll + True - - ..\..\packages\ServiceStack.OrmLite.SqlServer.3.9.63\lib\net35\ServiceStack.OrmLite.dll + + ..\..\packages\ServiceStack.Interfaces.4.5.0\lib\portable-wp80+sl5+net45+win8+wpa81+monotouch+monoandroid+xamarin.ios10\ServiceStack.Interfaces.dll + True - - ..\..\packages\ServiceStack.OrmLite.SqlServer.3.9.63\lib\net35\ServiceStack.OrmLite.SqlServer.dll - - - ..\..\packages\ServiceStack.Redis.3.9.63\lib\net35\ServiceStack.Redis.dll - - - ..\..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.ServiceInterface.dll - - - ..\..\packages\ServiceStack.Text.3.9.63\lib\net35\ServiceStack.Text.dll + + ..\..\packages\ServiceStack.Text.4.5.0\lib\net45\ServiceStack.Text.dll + True - 3.5 - 3.5 diff --git a/src/RestFiles/RestFiles.ServiceInterface/RevertFilesService.cs b/src/RestFiles/RestFiles.ServiceInterface/RevertFilesService.cs index 3e6f8478..b911640e 100644 --- a/src/RestFiles/RestFiles.ServiceInterface/RevertFilesService.cs +++ b/src/RestFiles/RestFiles.ServiceInterface/RevertFilesService.cs @@ -1,9 +1,7 @@ using System.IO; using System.Linq; using RestFiles.ServiceModel; -using ServiceStack.Common.Extensions; -using ServiceStack.Common.Utils; -using ServiceStack.ServiceInterface; +using ServiceStack; namespace RestFiles.ServiceInterface { diff --git a/src/RestFiles/RestFiles.ServiceInterface/packages.config b/src/RestFiles/RestFiles.ServiceInterface/packages.config index f57348a5..6b7d575f 100644 --- a/src/RestFiles/RestFiles.ServiceInterface/packages.config +++ b/src/RestFiles/RestFiles.ServiceInterface/packages.config @@ -1,8 +1,8 @@  - - - - - + + + + + \ No newline at end of file diff --git a/src/RestFiles/RestFiles.ServiceModel/Files.cs b/src/RestFiles/RestFiles.ServiceModel/Files.cs index e1e364b6..30a02f83 100644 --- a/src/RestFiles/RestFiles.ServiceModel/Files.cs +++ b/src/RestFiles/RestFiles.ServiceModel/Files.cs @@ -1,6 +1,5 @@ using RestFiles.ServiceModel.Types; -using ServiceStack.ServiceHost; -using ServiceStack.ServiceInterface.ServiceModel; +using ServiceStack; namespace RestFiles.ServiceModel { diff --git a/src/RestFiles/RestFiles.ServiceModel/RestFiles.ServiceModel.csproj b/src/RestFiles/RestFiles.ServiceModel/RestFiles.ServiceModel.csproj index 13121b8d..5ae6b661 100644 --- a/src/RestFiles/RestFiles.ServiceModel/RestFiles.ServiceModel.csproj +++ b/src/RestFiles/RestFiles.ServiceModel/RestFiles.ServiceModel.csproj @@ -10,7 +10,7 @@ Properties RestFiles.ServiceModel RestFiles.ServiceModel - v3.5 + v4.5 512 @@ -31,6 +31,7 @@ false false true + true @@ -41,6 +42,7 @@ prompt 4 AllRules.ruleset + false pdbonly @@ -50,32 +52,22 @@ prompt 4 AllRules.ruleset + false - - False - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Common.dll - - - False - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Interfaces.dll - - - False - ..\..\packages\ServiceStack.Text.3.9.63\lib\net35\ServiceStack.Text.dll + + ..\..\packages\ServiceStack.Interfaces.4.5.0\lib\portable-wp80+sl5+net45+win8+wpa81+monotouch+monoandroid+xamarin.ios10\ServiceStack.Interfaces.dll + True - 3.5 - 3.5 - 3.0 diff --git a/src/RestFiles/RestFiles.ServiceModel/RevertFiles.cs b/src/RestFiles/RestFiles.ServiceModel/RevertFiles.cs index a95c6a1d..d9ccb443 100644 --- a/src/RestFiles/RestFiles.ServiceModel/RevertFiles.cs +++ b/src/RestFiles/RestFiles.ServiceModel/RevertFiles.cs @@ -1,5 +1,4 @@ -using ServiceStack.ServiceHost; -using ServiceStack.ServiceInterface.ServiceModel; +using ServiceStack; namespace RestFiles.ServiceModel { diff --git a/src/RestFiles/RestFiles.ServiceModel/packages.config b/src/RestFiles/RestFiles.ServiceModel/packages.config index d0392c07..5c87f865 100644 --- a/src/RestFiles/RestFiles.ServiceModel/packages.config +++ b/src/RestFiles/RestFiles.ServiceModel/packages.config @@ -1,5 +1,4 @@  - - + \ No newline at end of file diff --git a/src/RestFiles/RestFiles.Tests/AsyncRestClientTests.cs b/src/RestFiles/RestFiles.Tests/AsyncRestClientTests.cs index 06306f2d..66a5c17a 100644 --- a/src/RestFiles/RestFiles.Tests/AsyncRestClientTests.cs +++ b/src/RestFiles/RestFiles.Tests/AsyncRestClientTests.cs @@ -1,12 +1,10 @@ using System; using System.IO; using System.Net; -using System.Threading; +using System.Threading.Tasks; using NUnit.Framework; using RestFiles.ServiceModel; -using ServiceStack.Common.Web; -using ServiceStack.Service; -using ServiceStack.ServiceClient.Web; +using ServiceStack; /* For syntax highlighting and better readability of this file, view it on GitHub: * https://github.com/ServiceStack/ServiceStack.Examples/blob/master/src/RestFiles/RestFiles.Tests/AsyncRestClientTests.cs @@ -14,261 +12,226 @@ namespace RestFiles.Tests { - /// - /// These test show how you can call ServiceStack REST web services asynchronously using an IRestClientAsync. - /// - /// Async service calls are a great for GUI apps as they can be called without blocking the UI thread. - /// They are also great for performance as no time is spent on blocking IO calls. - /// - [TestFixture] - public class AsyncRestClientTests - { - public const string WebServiceHostUrl = "http://localhost:8080/"; - private const string ReadmeFileContents = "THIS IS A README FILE"; - private const string ReplacedFileContents = "THIS README FILE HAS BEEN REPLACED"; - private const string TestUploadFileContents = "THIS FILE IS USED FOR UPLOADING IN TESTS"; - public string FilesRootDir; - - RestFilesHttpListener appHost; - - [TestFixtureSetUp] - public void TextFixtureSetUp() - { - appHost = new RestFilesHttpListener(); - appHost.Init(); - } - - [TestFixtureTearDown] - public void TestFixtureTearDown() - { - if (appHost != null) appHost.Dispose(); - appHost = null; - } - - [SetUp] - public void OnBeforeEachTest() - { - FilesRootDir = appHost.Config.RootDirectory; - if (Directory.Exists(FilesRootDir)) - { - Directory.Delete(FilesRootDir, true); - } - Directory.CreateDirectory(FilesRootDir + "SubFolder"); - Directory.CreateDirectory(FilesRootDir + "SubFolder2"); - File.WriteAllText(Path.Combine(FilesRootDir, "README.txt"), ReadmeFileContents); - File.WriteAllText(Path.Combine(FilesRootDir, "TESTUPLOAD.txt"), TestUploadFileContents); - } - - public IRestClientAsync CreateAsyncRestClient() - { - return new JsonServiceClient(WebServiceHostUrl); //Best choice for Ajax web apps, faster than XML - //return new XmlServiceClient(WebServiceHostUrl); //Ubiquitous structured data format best for supporting non .NET clients - //return new JsvServiceClient(WebServiceHostUrl); //Fastest, most compact and resilient format great for .NET to .NET client / server - } - - private static void FailOnAsyncError(T response, Exception ex) - { - Assert.Fail(ex.Message); - } - - [Test] - public void Can_GetAsync_to_retrieve_existing_file() - { - var restClient = CreateAsyncRestClient(); - - FilesResponse response = null; - restClient.GetAsync("files/README.txt", - r => response = r, FailOnAsyncError); - - Thread.Sleep(1000); - - Assert.That(response.File.Contents, Is.EqualTo("THIS IS A README FILE")); - } - - [Test] - public void Can_GetAsync_to_retrieve_existing_folder_listing() - { - var restClient = CreateAsyncRestClient(); - - FilesResponse response = null; - restClient.GetAsync("files/", - r => response = r, FailOnAsyncError); - - Thread.Sleep(1000); - - Assert.That(response.Directory.Folders.Count, Is.EqualTo(2)); - Assert.That(response.Directory.Files.Count, Is.EqualTo(2)); - } - - [Test] - public void Can_PostAsync_to_path_without_uploaded_files_to_create_a_new_Directory() - { - var restClient = CreateAsyncRestClient(); - - FilesResponse response = null; - restClient.PostAsync("files/SubFolder/NewFolder", - new Files(), - r => response = r, FailOnAsyncError); - - Thread.Sleep(1000); - - Assert.That(Directory.Exists(FilesRootDir + "SubFolder/NewFolder")); - } - - [Test] - public void Can_WebRequest_POST_upload_file_to_save_new_file_and_create_new_Directory() - { - var webRequest = WebRequest.Create(WebServiceHostUrl + "files/UploadedFiles/"); - - var fileToUpload = new FileInfo(FilesRootDir + "TESTUPLOAD.txt"); - webRequest.UploadFile(fileToUpload, MimeTypes.GetMimeType(fileToUpload.Name)); - - Assert.That(Directory.Exists(FilesRootDir + "UploadedFiles")); - Assert.That(File.ReadAllText(FilesRootDir + "UploadedFiles/TESTUPLOAD.txt"), - Is.EqualTo(TestUploadFileContents)); - } - - [Test] - public void Can_RestClient_POST_upload_file_to_save_new_file_and_create_new_Directory() - { - var restClient = (IRestClient) CreateAsyncRestClient(); - - var fileToUpload = new FileInfo(FilesRootDir + "TESTUPLOAD.txt"); - restClient.PostFile("files/UploadedFiles/", - fileToUpload, MimeTypes.GetMimeType(fileToUpload.Name)); - - Assert.That(Directory.Exists(FilesRootDir + "UploadedFiles")); - Assert.That(File.ReadAllText(FilesRootDir + "UploadedFiles/TESTUPLOAD.txt"), - Is.EqualTo(TestUploadFileContents)); - } - - [Test] - public void Can_PutAsync_to_replace_text_content_of_an_existing_file() - { - var restClient = CreateAsyncRestClient(); - - FilesResponse response = null; - restClient.PutAsync("files/README.txt", - new Files { TextContents = ReplacedFileContents }, - r => response = r, FailOnAsyncError); - - Thread.Sleep(1000); - - Assert.That(File.ReadAllText(FilesRootDir + "README.txt"), - Is.EqualTo(ReplacedFileContents)); - } - - [Test] - public void Can_DeleteAsync_to_replace_text_content_of_an_existing_file() - { - var restClient = CreateAsyncRestClient(); - - FilesResponse response = null; - restClient.DeleteAsync("files/README.txt", - r => response = r, FailOnAsyncError); - - Thread.Sleep(1000); - - Assert.That(!File.Exists(FilesRootDir + "README.txt")); - } - - - /* - * Error Handling Tests - */ - [Test] - public void GET_a_file_that_doesnt_exist_throws_a_404_FileNotFoundException() - { - var restClient = CreateAsyncRestClient(); - - WebServiceException webEx = null; - FilesResponse response = null; - - restClient.GetAsync("files/UnknownFolder", - r => response = r, - (r, ex) => - { - response = r; - webEx = (WebServiceException)ex; - }); - - Thread.Sleep(1000); - - Assert.That(webEx.StatusCode, Is.EqualTo(404)); - Assert.That(response.ResponseStatus.ErrorCode, Is.EqualTo(typeof(FileNotFoundException).Name)); - Assert.That(response.ResponseStatus.Message, Is.EqualTo("Could not find: UnknownFolder")); - } - - [Test] - public void POST_to_an_existing_file_throws_a_500_NotSupportedException() - { - var restClient = (IRestClient)CreateAsyncRestClient(); - - var fileToUpload = new FileInfo(FilesRootDir + "TESTUPLOAD.txt"); - - try - { - var response = restClient.PostFile("files/README.txt", - fileToUpload, MimeTypes.GetMimeType(fileToUpload.Name)); - - Assert.Fail("Should fail with NotSupportedException"); - } - catch (WebServiceException webEx) - { - Assert.That(webEx.StatusCode, Is.EqualTo(500)); - var response = (FilesResponse)webEx.ResponseDto; - Assert.That(response.ResponseStatus.ErrorCode, Is.EqualTo(typeof(NotSupportedException).Name)); - Assert.That(response.ResponseStatus.Message, - Is.EqualTo("POST only supports uploading new files. Use PUT to replace contents of an existing file")); - } - } - - [Test] - public void PUT_to_replace_a_non_existing_file_throws_404() - { - var restClient = CreateAsyncRestClient(); - - WebServiceException webEx = null; - FilesResponse response = null; - - restClient.PutAsync("files/non-existing-file.txt", - new Files { TextContents = ReplacedFileContents }, - r => response = r, - (r, ex) => - { - response = r; - webEx = (WebServiceException)ex; - }); - - Thread.Sleep(1000); - - Assert.That(webEx.StatusCode, Is.EqualTo(404)); - Assert.That(response.ResponseStatus.ErrorCode, Is.EqualTo(typeof(FileNotFoundException).Name)); - Assert.That(response.ResponseStatus.Message, Is.EqualTo("Could not find: non-existing-file.txt")); - } - - [Test] - public void DELETE_a_non_existing_file_throws_404() - { - var restClient = CreateAsyncRestClient(); - - WebServiceException webEx = null; - FilesResponse response = null; - - restClient.DeleteAsync("files/non-existing-file.txt", - r => response = r, - (r, ex) => - { - response = r; - webEx = (WebServiceException)ex; - }); - - Thread.Sleep(1000); - - Assert.That(webEx.StatusCode, Is.EqualTo(404)); - Assert.That(response.ResponseStatus.ErrorCode, Is.EqualTo(typeof(FileNotFoundException).Name)); - Assert.That(response.ResponseStatus.Message, Is.EqualTo("Could not find: non-existing-file.txt")); - } - - } + /// + /// These test show how you can call ServiceStack REST web services asynchronously using an IRestClientAsync. + /// + /// Async service calls are a great for GUI apps as they can be called without blocking the UI thread. + /// They are also great for performance as no time is spent on blocking IO calls. + /// + [TestFixture] + public class AsyncRestClientTests + { + public const string WebServiceHostUrl = "http://localhost:8080/"; + private const string ReadmeFileContents = "THIS IS A README FILE"; + private const string ReplacedFileContents = "THIS README FILE HAS BEEN REPLACED"; + private const string TestUploadFileContents = "THIS FILE IS USED FOR UPLOADING IN TESTS"; + public string FilesRootDir; + + RestFilesHttpListener appHost; + + [OneTimeSetUp] + public void TextFixtureSetUp() + { + appHost = new RestFilesHttpListener(); + appHost.Init(); + } + + [OneTimeTearDown] + public void TestFixtureTearDown() + { + if (appHost != null) appHost.Dispose(); + appHost = null; + } + + [SetUp] + public void OnBeforeEachTest() + { + FilesRootDir = appHost.Config.RootDirectory; + if (Directory.Exists(FilesRootDir)) + { + Directory.Delete(FilesRootDir, true); + } + Directory.CreateDirectory(FilesRootDir + "SubFolder"); + Directory.CreateDirectory(FilesRootDir + "SubFolder2"); + File.WriteAllText(Path.Combine(FilesRootDir, "README.txt"), ReadmeFileContents); + File.WriteAllText(Path.Combine(FilesRootDir, "TESTUPLOAD.txt"), TestUploadFileContents); + } + + public IRestClientAsync CreateAsyncRestClient() + { + return new JsonServiceClient(WebServiceHostUrl); //Best choice for Ajax web apps, faster than XML + //return new XmlServiceClient(WebServiceHostUrl); //Ubiquitous structured data format best for supporting non .NET clients + //return new JsvServiceClient(WebServiceHostUrl); //Fastest, most compact and resilient format great for .NET to .NET client / server + } + + private static void FailOnAsyncError(T response, Exception ex) + { + Assert.Fail(ex.Message); + } + + [Test] + public async Task Can_GetAsync_to_retrieve_existing_file() + { + var restClient = CreateAsyncRestClient(); + + var response = await restClient.GetAsync("files/README.txt"); + + Assert.That(response.File.Contents, Is.EqualTo("THIS IS A README FILE")); + } + + [Test] + public async Task Can_GetAsync_to_retrieve_existing_folder_listing() + { + var restClient = CreateAsyncRestClient(); + + var response = await restClient.GetAsync("files/"); + + Assert.That(response.Directory.Folders.Count, Is.EqualTo(2)); + Assert.That(response.Directory.Files.Count, Is.EqualTo(2)); + } + + [Test] + public async Task Can_PostAsync_to_path_without_uploaded_files_to_create_a_new_Directory() + { + var restClient = CreateAsyncRestClient(); + + FilesResponse response = await restClient.PostAsync("files/SubFolder/NewFolder", new Files()); + + Assert.That(Directory.Exists(FilesRootDir + "SubFolder/NewFolder")); + } + + [Test] + public void Can_WebRequest_POST_upload_file_to_save_new_file_and_create_new_Directory() + { + var webRequest = WebRequest.Create(WebServiceHostUrl + "files/UploadedFiles/"); + + var fileToUpload = new FileInfo(FilesRootDir + "TESTUPLOAD.txt"); + webRequest.UploadFile(fileToUpload, MimeTypes.GetMimeType(fileToUpload.Name)); + + Assert.That(Directory.Exists(FilesRootDir + "UploadedFiles")); + Assert.That(File.ReadAllText(FilesRootDir + "UploadedFiles/TESTUPLOAD.txt"), + Is.EqualTo(TestUploadFileContents)); + } + + [Test] + public void Can_RestClient_POST_upload_file_to_save_new_file_and_create_new_Directory() + { + var restClient = (IRestClient)CreateAsyncRestClient(); + + var fileToUpload = new FileInfo(FilesRootDir + "TESTUPLOAD.txt"); + restClient.PostFile("files/UploadedFiles/", + fileToUpload, MimeTypes.GetMimeType(fileToUpload.Name)); + + Assert.That(Directory.Exists(FilesRootDir + "UploadedFiles")); + Assert.That(File.ReadAllText(FilesRootDir + "UploadedFiles/TESTUPLOAD.txt"), + Is.EqualTo(TestUploadFileContents)); + } + + [Test] + public async Task Can_PutAsync_to_replace_text_content_of_an_existing_file() + { + var restClient = CreateAsyncRestClient(); + + var response = await restClient.PutAsync("files/README.txt", + new Files { TextContents = ReplacedFileContents }); + + Assert.That(File.ReadAllText(FilesRootDir + "README.txt"), + Is.EqualTo(ReplacedFileContents)); + } + + [Test] + public async Task Can_DeleteAsync_to_replace_text_content_of_an_existing_file() + { + var restClient = CreateAsyncRestClient(); + + var response = await restClient.DeleteAsync("files/README.txt"); + + Assert.That(!File.Exists(FilesRootDir + "README.txt")); + } + + + /* + * Error Handling Tests + */ + [Test] + public async Task GET_a_file_that_doesnt_exist_throws_a_404_FileNotFoundException() + { + var restClient = CreateAsyncRestClient(); + + try + { + await restClient.GetAsync("files/UnknownFolder"); + } + catch (WebServiceException webEx) + { + var response = (FilesResponse)webEx.ResponseDto; + Assert.That(webEx.StatusCode, Is.EqualTo(404)); + Assert.That(response.ResponseStatus.ErrorCode, Is.EqualTo(typeof(FileNotFoundException).Name)); + Assert.That(response.ResponseStatus.Message, Is.EqualTo("Could not find: UnknownFolder")); + } + } + + [Test] + public async Task POST_to_an_existing_file_throws_a_500_NotSupportedException() + { + var restClient = (IRestClient)CreateAsyncRestClient(); + + var fileToUpload = new FileInfo(FilesRootDir + "TESTUPLOAD.txt"); + + try + { + var response = restClient.PostFile("files/README.txt", + fileToUpload, MimeTypes.GetMimeType(fileToUpload.Name)); + + Assert.Fail("Should fail with NotSupportedException"); + } + catch (WebServiceException webEx) + { + Assert.That(webEx.StatusCode, Is.EqualTo(405)); + var response = (FilesResponse)webEx.ResponseDto; + Assert.That(response.ResponseStatus.ErrorCode, Is.EqualTo(typeof(NotSupportedException).Name)); + Assert.That(response.ResponseStatus.Message, + Is.EqualTo("POST only supports uploading new files. Use PUT to replace contents of an existing file")); + } + } + + [Test] + public async Task PUT_to_replace_a_non_existing_file_throws_404() + { + var restClient = CreateAsyncRestClient(); + + try + { + await restClient.PutAsync("files/non-existing-file.txt", + new Files { TextContents = ReplacedFileContents }); + } + catch (WebServiceException webEx) + { + var response = (FilesResponse)webEx.ResponseDto; + Assert.That(webEx.StatusCode, Is.EqualTo(404)); + Assert.That(response.ResponseStatus.ErrorCode, Is.EqualTo(typeof(FileNotFoundException).Name)); + Assert.That(response.ResponseStatus.Message, Is.EqualTo("Could not find: non-existing-file.txt")); + } + } + + [Test] + public async Task DELETE_a_non_existing_file_throws_404() + { + var restClient = CreateAsyncRestClient(); + + try + { + await restClient.DeleteAsync("files/non-existing-file.txt"); + } + catch (WebServiceException webEx) + { + var response = (FilesResponse)webEx.ResponseDto; + + Assert.That(webEx.StatusCode, Is.EqualTo(404)); + Assert.That(response.ResponseStatus.ErrorCode, Is.EqualTo(typeof(FileNotFoundException).Name)); + Assert.That(response.ResponseStatus.Message, Is.EqualTo("Could not find: non-existing-file.txt")); + } + } + + } } \ No newline at end of file diff --git a/src/RestFiles/RestFiles.Tests/RestFiles.Tests.csproj b/src/RestFiles/RestFiles.Tests/RestFiles.Tests.csproj index 2f08b519..04a67804 100644 --- a/src/RestFiles/RestFiles.Tests/RestFiles.Tests.csproj +++ b/src/RestFiles/RestFiles.Tests/RestFiles.Tests.csproj @@ -10,7 +10,7 @@ Properties RestFiles.Tests RestFiles.Tests - v3.5 + v4.5 512 @@ -33,6 +33,7 @@ false false true + true @@ -43,6 +44,7 @@ prompt 4 AllRules.ruleset + false pdbonly @@ -52,37 +54,32 @@ prompt 4 AllRules.ruleset + false - - ..\..\..\lib\tests\Moq.dll + + ..\..\packages\NUnit.3.5.0\lib\net45\nunit.framework.dll + True - - ..\..\..\lib\tests\nunit.framework.dll + + ..\..\packages\ServiceStack.4.5.0\lib\net45\ServiceStack.dll + True - - ..\packages\ServiceStack.3.9.32\lib\net35\ServiceStack.dll + + ..\..\packages\ServiceStack.Client.4.5.0\lib\net45\ServiceStack.Client.dll + True - - ..\packages\ServiceStack.Common.3.9.32\lib\net35\ServiceStack.Common.dll + + ..\..\packages\ServiceStack.Common.4.5.0\lib\net45\ServiceStack.Common.dll + True - - ..\packages\ServiceStack.Common.3.9.32\lib\net35\ServiceStack.Interfaces.dll + + ..\..\packages\ServiceStack.Interfaces.4.5.0\lib\portable-wp80+sl5+net45+win8+wpa81+monotouch+monoandroid+xamarin.ios10\ServiceStack.Interfaces.dll + True - - ..\packages\ServiceStack.OrmLite.SqlServer.3.9.32\lib\ServiceStack.OrmLite.dll - - - ..\packages\ServiceStack.OrmLite.SqlServer.3.9.32\lib\ServiceStack.OrmLite.SqlServer.dll - - - ..\packages\ServiceStack.Redis.3.9.32\lib\net35\ServiceStack.Redis.dll - - - ..\packages\ServiceStack.3.9.32\lib\net35\ServiceStack.ServiceInterface.dll - - - ..\packages\ServiceStack.Text.3.9.32\lib\net35\ServiceStack.Text.dll + + ..\..\packages\ServiceStack.Text.4.5.0\lib\net45\ServiceStack.Text.dll + True diff --git a/src/RestFiles/RestFiles.Tests/Support/RestFilesHttpListener.cs b/src/RestFiles/RestFiles.Tests/Support/RestFilesHttpListener.cs index 29be76a5..80506461 100644 --- a/src/RestFiles/RestFiles.Tests/Support/RestFilesHttpListener.cs +++ b/src/RestFiles/RestFiles.Tests/Support/RestFilesHttpListener.cs @@ -1,7 +1,6 @@ using Funq; using RestFiles.ServiceInterface; -using ServiceStack.Common.Utils; -using ServiceStack.WebHost.Endpoints; +using ServiceStack; namespace RestFiles.Tests { diff --git a/src/RestFiles/RestFiles.Tests/SyncRestClientTests.cs b/src/RestFiles/RestFiles.Tests/SyncRestClientTests.cs index 0b73f1b9..a9c5b729 100644 --- a/src/RestFiles/RestFiles.Tests/SyncRestClientTests.cs +++ b/src/RestFiles/RestFiles.Tests/SyncRestClientTests.cs @@ -2,9 +2,7 @@ using System.IO; using NUnit.Framework; using RestFiles.ServiceModel; -using ServiceStack.Common.Web; -using ServiceStack.Service; -using ServiceStack.ServiceClient.Web; +using ServiceStack; /* For syntax highlighting and better readability of this file, view it on GitHub: * https://github.com/ServiceStack/ServiceStack.Examples/blob/master/src/RestFiles/RestFiles.Tests/SyncRestClientTests.cs @@ -29,14 +27,14 @@ public class SyncRestClientTests RestFilesHttpListener appHost; - [TestFixtureSetUp] + [OneTimeSetUp] public void TextFixtureSetUp() { appHost = new RestFilesHttpListener(); appHost.Init(); } - [TestFixtureTearDown] + [OneTimeTearDown] public void TestFixtureTearDown() { if (appHost != null) appHost.Dispose(); @@ -176,7 +174,7 @@ public void POST_to_an_existing_file_throws_a_500_NotSupportedException() } catch (WebServiceException webEx) { - Assert.That(webEx.StatusCode, Is.EqualTo(500)); + Assert.That(webEx.StatusCode, Is.EqualTo(405)); var response = (FilesResponse)webEx.ResponseDto; Assert.That(response.ResponseStatus.ErrorCode, Is.EqualTo(typeof(NotSupportedException).Name)); Assert.That(response.ResponseStatus.Message, diff --git a/src/RestFiles/RestFiles.Tests/packages.config b/src/RestFiles/RestFiles.Tests/packages.config new file mode 100644 index 00000000..b77f7728 --- /dev/null +++ b/src/RestFiles/RestFiles.Tests/packages.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/RestFiles/RestFiles/Global.asax.cs b/src/RestFiles/RestFiles/Global.asax.cs index b62d0677..a82886f0 100644 --- a/src/RestFiles/RestFiles/Global.asax.cs +++ b/src/RestFiles/RestFiles/Global.asax.cs @@ -1,21 +1,22 @@ using System; using System.IO; +using System.Reflection; using Funq; using RestFiles.ServiceInterface; +using ServiceStack; using ServiceStack.Configuration; -using ServiceStack.WebHost.Endpoints; namespace RestFiles { /// /// Create your ServiceStack web service application with a singleton AppHost. /// - public class FileAppHost : AppHostBase + public class AppHost : AppHostBase { /// /// Initializes a new instance of your ServiceStack application, with the specified name and assembly containing the services. /// - public FileAppHost() : base("REST Files", typeof(FilesService).Assembly) {} + public AppHost() : base("REST Files", typeof(FilesService).Assembly) {} /// /// Configure the container with the necessary routes for your ServiceStack application. @@ -24,16 +25,13 @@ public FileAppHost() : base("REST Files", typeof(FilesService).Assembly) {} public override void Configure(Container container) { //Permit modern browsers (e.g. Firefox) to allow sending of any REST HTTP Method - SetConfig(new EndpointHostConfig - { - GlobalResponseHeaders = - { - { "Access-Control-Allow-Origin", "*" }, - { "Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS" }, - }, + Plugins.Add(new CorsFeature()); + + SetConfig(new HostConfig { + DebugMode = true, }); - var config = new AppConfig(new ConfigurationResourceManager()); + var config = new AppConfig(new AppSettings()); container.Register(config); if (!Directory.Exists(config.RootDirectory)) @@ -48,7 +46,7 @@ public class Global : System.Web.HttpApplication protected void Application_Start(object sender, EventArgs e) { //Initialize your application - (new FileAppHost()).Init(); + (new AppHost()).Init(); } } } \ No newline at end of file diff --git a/src/RestFiles/RestFiles/RestFiles.csproj b/src/RestFiles/RestFiles/RestFiles.csproj index 08adafb2..6a903e78 100644 --- a/src/RestFiles/RestFiles/RestFiles.csproj +++ b/src/RestFiles/RestFiles/RestFiles.csproj @@ -12,7 +12,7 @@ Properties RestFiles RestFiles - v3.5 + v4.5 4.0 @@ -23,6 +23,8 @@ + + true @@ -34,6 +36,7 @@ 4 x86 AllRules.ruleset + false pdbonly @@ -43,46 +46,40 @@ prompt 4 AllRules.ruleset + false - - ..\..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.dll + + ..\..\packages\ServiceStack.4.5.0\lib\net45\ServiceStack.dll + True - - False - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Common.dll + + ..\..\packages\ServiceStack.Client.4.5.0\lib\net45\ServiceStack.Client.dll + True - - False - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Interfaces.dll + + ..\..\packages\ServiceStack.Common.4.5.0\lib\net45\ServiceStack.Common.dll + True - - ..\..\packages\ServiceStack.OrmLite.SqlServer.3.9.63\lib\net35\ServiceStack.OrmLite.dll + + ..\..\packages\ServiceStack.Interfaces.4.5.0\lib\portable-wp80+sl5+net45+win8+wpa81+monotouch+monoandroid+xamarin.ios10\ServiceStack.Interfaces.dll + True - - ..\..\packages\ServiceStack.OrmLite.SqlServer.3.9.63\lib\net35\ServiceStack.OrmLite.SqlServer.dll - - - ..\..\packages\ServiceStack.Redis.3.9.63\lib\net35\ServiceStack.Redis.dll - - - ..\..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.ServiceInterface.dll - - - False - ..\..\packages\ServiceStack.Text.3.9.63\lib\net35\ServiceStack.Text.dll + + ..\..\packages\ServiceStack.Text.4.5.0\lib\net45\ServiceStack.Text.dll + True - - 3.5 - - - 3.5 - + + + + + + @@ -170,7 +167,7 @@ - + diff --git a/src/RestFiles/RestFiles/Web.config b/src/RestFiles/RestFiles/Web.config index ce922c89..2213258b 100644 --- a/src/RestFiles/RestFiles/Web.config +++ b/src/RestFiles/RestFiles/Web.config @@ -2,28 +2,22 @@ - - - -
- -
-
-
-
- - - - - + - + - - - - - - - + + - - - - - - - - - - - + - - - + - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - + \ No newline at end of file diff --git a/src/RestFiles/RestFiles/packages.config b/src/RestFiles/RestFiles/packages.config index f57348a5..6b7d575f 100644 --- a/src/RestFiles/RestFiles/packages.config +++ b/src/RestFiles/RestFiles/packages.config @@ -1,8 +1,8 @@  - - - - - + + + + + \ No newline at end of file diff --git a/src/RestIntro/RestIntro.IntegrationTests/IntegrationTests.cs b/src/RestIntro/RestIntro.IntegrationTests/IntegrationTests.cs index 0eec7e5b..0a280d33 100644 --- a/src/RestIntro/RestIntro.IntegrationTests/IntegrationTests.cs +++ b/src/RestIntro/RestIntro.IntegrationTests/IntegrationTests.cs @@ -1,8 +1,7 @@ using System.Collections.Generic; using NUnit.Framework; using RestIntro.ServiceModel; -using ServiceStack.Service; -using ServiceStack.ServiceClient.Web; +using ServiceStack; namespace RestIntro.IntegrationTests { diff --git a/src/RestIntro/RestIntro.IntegrationTests/RestIntro.IntegrationTests.csproj b/src/RestIntro/RestIntro.IntegrationTests/RestIntro.IntegrationTests.csproj index 46496e96..eb2fab05 100644 --- a/src/RestIntro/RestIntro.IntegrationTests/RestIntro.IntegrationTests.csproj +++ b/src/RestIntro/RestIntro.IntegrationTests/RestIntro.IntegrationTests.csproj @@ -10,8 +10,9 @@ Properties RestIntro.IntegrationTests RestIntro.IntegrationTests - v3.5 + v4.5 512 + true @@ -21,6 +22,7 @@ DEBUG;TRACE prompt 4 + false pdbonly @@ -29,19 +31,27 @@ TRACE prompt 4 + false - ..\..\..\lib\tests\nunit.framework.dll + ..\packages\NUnit.2.6.3\lib\nunit.framework.dll + + + ..\packages\ServiceStack.4.0.11\lib\net40\ServiceStack.dll + True + + + ..\packages\ServiceStack.Client.4.0.11\lib\net40\ServiceStack.Client.dll - ..\packages\ServiceStack.Common.3.9.32\lib\net35\ServiceStack.Common.dll + ..\packages\ServiceStack.Common.4.0.11\lib\net40\ServiceStack.Common.dll - ..\packages\ServiceStack.Common.3.9.32\lib\net35\ServiceStack.Interfaces.dll + ..\packages\ServiceStack.Interfaces.4.0.11\lib\net40\ServiceStack.Interfaces.dll - ..\packages\ServiceStack.Text.3.9.32\lib\net35\ServiceStack.Text.dll + ..\packages\ServiceStack.Text.4.0.11\lib\net40\ServiceStack.Text.dll diff --git a/src/RestIntro/RestIntro.IntegrationTests/packages.config b/src/RestIntro/RestIntro.IntegrationTests/packages.config new file mode 100644 index 00000000..25f95d0b --- /dev/null +++ b/src/RestIntro/RestIntro.IntegrationTests/packages.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/RestIntro/RestIntro.ServiceInterface/CustomerService.cs b/src/RestIntro/RestIntro.ServiceInterface/CustomerService.cs index 2c09b268..9b4f71a9 100644 --- a/src/RestIntro/RestIntro.ServiceInterface/CustomerService.cs +++ b/src/RestIntro/RestIntro.ServiceInterface/CustomerService.cs @@ -1,8 +1,6 @@ using RestIntro.ServiceModel; -using ServiceStack.Common; -using ServiceStack.Common.Web; +using ServiceStack; using ServiceStack.OrmLite; -using ServiceStack.ServiceInterface; namespace RestIntro.ServiceInterface { @@ -14,7 +12,7 @@ public class CustomerService : Service public object Get(Customer request) { if (request.Id != default(long)) - return Db.GetById(request.Id); + return Db.SingleById(request.Id); return Db.Select(); } @@ -22,9 +20,8 @@ public object Get(Customer request) public object Post(Customer customer) { Db.Save(customer); - customer.Id = (int)Db.GetLastInsertId(); - var pathToNewResource = base.RequestContext.AbsoluteUri.CombineWith(customer.Id.ToString()); + var pathToNewResource = base.Request.AbsoluteUri.CombineWith(customer.Id.ToString()); return HttpResult.Status201Created(customer, pathToNewResource); } diff --git a/src/RestIntro/RestIntro.ServiceInterface/RestIntro.ServiceInterface.csproj b/src/RestIntro/RestIntro.ServiceInterface/RestIntro.ServiceInterface.csproj index 6ba56bf4..a2780d54 100644 --- a/src/RestIntro/RestIntro.ServiceInterface/RestIntro.ServiceInterface.csproj +++ b/src/RestIntro/RestIntro.ServiceInterface/RestIntro.ServiceInterface.csproj @@ -10,8 +10,9 @@ Properties RestIntro.ServiceInterface RestIntro.ServiceInterface - v3.5 + v4.5 512 + true @@ -22,6 +23,7 @@ prompt 4 x86 + false pdbonly @@ -30,31 +32,32 @@ TRACE prompt 4 + false - - ..\..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.dll + + ..\..\packages\ServiceStack.4.5.0\lib\net45\ServiceStack.dll + True - - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Common.dll + + ..\..\packages\ServiceStack.Client.4.5.0\lib\net45\ServiceStack.Client.dll + True - - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Interfaces.dll + + ..\..\packages\ServiceStack.Common.4.5.0\lib\net45\ServiceStack.Common.dll + True - - ..\..\packages\ServiceStack.OrmLite.SqlServer.3.9.63\lib\net35\ServiceStack.OrmLite.dll + + ..\..\packages\ServiceStack.Interfaces.4.5.0\lib\portable-wp80+sl5+net45+win8+wpa81+monotouch+monoandroid+xamarin.ios10\ServiceStack.Interfaces.dll + True - - ..\..\packages\ServiceStack.OrmLite.SqlServer.3.9.63\lib\net35\ServiceStack.OrmLite.SqlServer.dll + + ..\..\packages\ServiceStack.OrmLite.4.5.0\lib\net45\ServiceStack.OrmLite.dll + True - - ..\..\packages\ServiceStack.Redis.3.9.63\lib\net35\ServiceStack.Redis.dll - - - ..\..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.ServiceInterface.dll - - - ..\..\packages\ServiceStack.Text.3.9.63\lib\net35\ServiceStack.Text.dll + + ..\..\packages\ServiceStack.Text.4.5.0\lib\net45\ServiceStack.Text.dll + True diff --git a/src/RestIntro/RestIntro.ServiceInterface/packages.config b/src/RestIntro/RestIntro.ServiceInterface/packages.config index f57348a5..4534703d 100644 --- a/src/RestIntro/RestIntro.ServiceInterface/packages.config +++ b/src/RestIntro/RestIntro.ServiceInterface/packages.config @@ -1,8 +1,9 @@  - - - - - + + + + + + \ No newline at end of file diff --git a/src/RestIntro/RestIntro.ServiceModel/Customer.cs b/src/RestIntro/RestIntro.ServiceModel/Customer.cs index b185fcb0..b2770dde 100644 --- a/src/RestIntro/RestIntro.ServiceModel/Customer.cs +++ b/src/RestIntro/RestIntro.ServiceModel/Customer.cs @@ -1,5 +1,5 @@ +using ServiceStack; using ServiceStack.DataAnnotations; -using ServiceStack.ServiceHost; namespace RestIntro.ServiceModel { diff --git a/src/RestIntro/RestIntro.ServiceModel/RestIntro.ServiceModel.csproj b/src/RestIntro/RestIntro.ServiceModel/RestIntro.ServiceModel.csproj index 0570694b..52433654 100644 --- a/src/RestIntro/RestIntro.ServiceModel/RestIntro.ServiceModel.csproj +++ b/src/RestIntro/RestIntro.ServiceModel/RestIntro.ServiceModel.csproj @@ -10,8 +10,9 @@ Properties RestIntro.ServiceModel RestIntro.ServiceModel - v3.5 + v4.5 512 + true @@ -22,6 +23,7 @@ prompt 4 x86 + false pdbonly @@ -30,19 +32,12 @@ TRACE prompt 4 + false - - False - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Common.dll - - - False - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Interfaces.dll - - - False - ..\..\packages\ServiceStack.Text.3.9.63\lib\net35\ServiceStack.Text.dll + + ..\..\packages\ServiceStack.Interfaces.4.5.0\lib\portable-wp80+sl5+net45+win8+wpa81+monotouch+monoandroid+xamarin.ios10\ServiceStack.Interfaces.dll + True diff --git a/src/RestIntro/RestIntro.ServiceModel/packages.config b/src/RestIntro/RestIntro.ServiceModel/packages.config index d0392c07..5c87f865 100644 --- a/src/RestIntro/RestIntro.ServiceModel/packages.config +++ b/src/RestIntro/RestIntro.ServiceModel/packages.config @@ -1,5 +1,4 @@  - - + \ No newline at end of file diff --git a/src/RestIntro/RestIntro/Global.asax.cs b/src/RestIntro/RestIntro/Global.asax.cs index 305272e4..63f8af08 100644 --- a/src/RestIntro/RestIntro/Global.asax.cs +++ b/src/RestIntro/RestIntro/Global.asax.cs @@ -2,10 +2,9 @@ using Funq; using RestIntro.ServiceInterface; using RestIntro.ServiceModel; -using ServiceStack.Common.Utils; +using ServiceStack; +using ServiceStack.Data; using ServiceStack.OrmLite; -using ServiceStack.OrmLite.Sqlite; -using ServiceStack.WebHost.Endpoints; namespace RestIntro { diff --git a/src/RestIntro/RestIntro/RestIntro.csproj b/src/RestIntro/RestIntro/RestIntro.csproj index 20fa7386..3fd9b2ae 100644 --- a/src/RestIntro/RestIntro/RestIntro.csproj +++ b/src/RestIntro/RestIntro/RestIntro.csproj @@ -13,7 +13,7 @@ Properties RestIntro RestIntro - v3.5 + v4.5 false @@ -24,6 +24,8 @@ + + true @@ -34,6 +36,7 @@ prompt 4 x86 + false pdbonly @@ -42,48 +45,51 @@ TRACE prompt 4 + false - False - ..\..\packages\ServiceStack.OrmLite.Sqlite.Mono.3.9.63\lib\net35\Mono.Data.Sqlite.dll + ..\..\packages\ServiceStack.OrmLite.Sqlite.Mono.4.5.0\lib\net45\Mono.Data.Sqlite.dll + True - - ..\..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.dll + + ..\..\packages\ServiceStack.4.5.0\lib\net45\ServiceStack.dll + True - - False - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Common.dll + + ..\..\packages\ServiceStack.Client.4.5.0\lib\net45\ServiceStack.Client.dll + True - - False - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Interfaces.dll + + ..\..\packages\ServiceStack.Common.4.5.0\lib\net45\ServiceStack.Common.dll + True - - False - ..\..\packages\ServiceStack.OrmLite.Sqlite.Mono.3.9.63\lib\net35\ServiceStack.OrmLite.dll + + ..\..\packages\ServiceStack.Interfaces.4.5.0\lib\portable-wp80+sl5+net45+win8+wpa81+monotouch+monoandroid+xamarin.ios10\ServiceStack.Interfaces.dll + True - - ..\..\packages\ServiceStack.OrmLite.Sqlite.Mono.3.9.63\lib\net35\ServiceStack.OrmLite.Sqlite.dll + + ..\..\packages\ServiceStack.OrmLite.4.5.0\lib\net45\ServiceStack.OrmLite.dll + True - - ..\..\packages\ServiceStack.OrmLite.SqlServer.3.9.63\lib\net35\ServiceStack.OrmLite.SqlServer.dll + + ..\..\packages\ServiceStack.OrmLite.Sqlite.Mono.4.5.0\lib\net45\ServiceStack.OrmLite.Sqlite.dll + True - - ..\..\packages\ServiceStack.Redis.3.9.63\lib\net35\ServiceStack.Redis.dll - - - ..\..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.ServiceInterface.dll - - - False - ..\..\packages\ServiceStack.Text.3.9.63\lib\net35\ServiceStack.Text.dll + + ..\..\packages\ServiceStack.Text.4.5.0\lib\net45\ServiceStack.Text.dll + True - + + + + + + @@ -139,6 +145,11 @@ + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + \ No newline at end of file diff --git a/src/RestIntro/RestIntro/packages.config b/src/RestIntro/RestIntro/packages.config index 5de3badb..877f9ce2 100644 --- a/src/RestIntro/RestIntro/packages.config +++ b/src/RestIntro/RestIntro/packages.config @@ -1,9 +1,10 @@  - - - - - - + + + + + + + \ No newline at end of file diff --git a/src/RestIntro/RestIntro/sqlite3.dll b/src/RestIntro/RestIntro/sqlite3.dll index 2d241c4e..1058a2b1 100644 Binary files a/src/RestIntro/RestIntro/sqlite3.dll and b/src/RestIntro/RestIntro/sqlite3.dll differ diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Properties/DataSources/ServiceStack.ServiceInterface.ServiceModel.ResponseStatus.datasource b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Properties/DataSources/ServiceStack.ServiceInterface.ServiceModel.ResponseStatus.datasource deleted file mode 100644 index 217f7310..00000000 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Properties/DataSources/ServiceStack.ServiceInterface.ServiceModel.ResponseStatus.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - ServiceStack.ServiceInterface.ServiceModel.ResponseStatus, ServiceStack.ServiceInterface, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Properties/DataSources/ServiceStack.ServiceInterface.ServiceModel.ResponseStatus1.datasource b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Properties/DataSources/ServiceStack.ServiceInterface.ServiceModel.ResponseStatus1.datasource deleted file mode 100644 index 217f7310..00000000 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Properties/DataSources/ServiceStack.ServiceInterface.ServiceModel.ResponseStatus1.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - ServiceStack.ServiceInterface.ServiceModel.ResponseStatus, ServiceStack.ServiceInterface, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Properties/DataSources/ServiceStack.ServiceInterface.ServiceModel.ResponseStatus11.datasource b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Properties/DataSources/ServiceStack.ServiceInterface.ServiceModel.ResponseStatus11.datasource deleted file mode 100644 index 217f7310..00000000 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Properties/DataSources/ServiceStack.ServiceInterface.ServiceModel.ResponseStatus11.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - ServiceStack.ServiceInterface.ServiceModel.ResponseStatus, ServiceStack.ServiceInterface, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Properties/DataSources/ServiceStack.ServiceInterface.ServiceModel.ResponseStatus2.datasource b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Properties/DataSources/ServiceStack.ServiceInterface.ServiceModel.ResponseStatus2.datasource deleted file mode 100644 index e69de29b..00000000 diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Properties/DataSources/ServiceStack.ServiceInterface.ServiceModel.ResponseStatus3.datasource b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Properties/DataSources/ServiceStack.ServiceInterface.ServiceModel.ResponseStatus3.datasource deleted file mode 100644 index e69de29b..00000000 diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap11ServiceReference/Reference.cs b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap11ServiceReference/Reference.cs index ad62f5ca..bbc588ae 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap11ServiceReference/Reference.cs +++ b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap11ServiceReference/Reference.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:4.0.30319.18051 +// Runtime Version:4.0.30319.18449 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -15,18 +15,15 @@ namespace ServiceStack.Examples.Clients.Soap11ServiceReference { [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] - [System.Runtime.Serialization.DataContractAttribute(Name="CustomerOrders", Namespace="http://schemas.servicestack.net/types")] + [System.Runtime.Serialization.DataContractAttribute(Name="StoreLogs", Namespace="http://schemas.servicestack.net/types")] [System.SerializableAttribute()] - public partial class CustomerOrders : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + public partial class StoreLogs : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { [System.NonSerializedAttribute()] private System.Runtime.Serialization.ExtensionDataObject extensionDataField; [System.Runtime.Serialization.OptionalFieldAttribute()] - private ServiceStack.Examples.Clients.Soap11ServiceReference.Customer CustomerField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private ServiceStack.Examples.Clients.Soap11ServiceReference.Order[] OrdersField; + private ServiceStack.Examples.Clients.Soap11ServiceReference.Logger[] LoggersField; [global::System.ComponentModel.BrowsableAttribute(false)] public System.Runtime.Serialization.ExtensionDataObject ExtensionData { @@ -39,28 +36,44 @@ public System.Runtime.Serialization.ExtensionDataObject ExtensionData { } [System.Runtime.Serialization.DataMemberAttribute()] - public ServiceStack.Examples.Clients.Soap11ServiceReference.Customer Customer { + public ServiceStack.Examples.Clients.Soap11ServiceReference.Logger[] Loggers { get { - return this.CustomerField; + return this.LoggersField; } set { - if ((object.ReferenceEquals(this.CustomerField, value) != true)) { - this.CustomerField = value; - this.RaisePropertyChanged("Customer"); + if ((object.ReferenceEquals(this.LoggersField, value) != true)) { + this.LoggersField = value; + this.RaisePropertyChanged("Loggers"); } } } - [System.Runtime.Serialization.DataMemberAttribute()] - public ServiceStack.Examples.Clients.Soap11ServiceReference.Order[] Orders { + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="Logger", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class Logger : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { get { - return this.OrdersField; + return this.extensionDataField; } set { - if ((object.ReferenceEquals(this.OrdersField, value) != true)) { - this.OrdersField = value; - this.RaisePropertyChanged("Orders"); - } + this.extensionDataField = value; } } @@ -76,45 +89,18 @@ protected void RaisePropertyChanged(string propertyName) { [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] - [System.Runtime.Serialization.DataContractAttribute(Name="Customer", Namespace="http://schemas.servicestack.net/types")] + [System.Runtime.Serialization.DataContractAttribute(Name="StoreLogsResponse", Namespace="http://schemas.servicestack.net/types")] [System.SerializableAttribute()] - public partial class Customer : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + public partial class StoreLogsResponse : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { [System.NonSerializedAttribute()] private System.Runtime.Serialization.ExtensionDataObject extensionDataField; [System.Runtime.Serialization.OptionalFieldAttribute()] - private string AddressField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string CityField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string CompanyNameField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string ContactNameField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string ContactTitleField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string CountryField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string FaxField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string IdField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string PhoneField; + private ServiceStack.Examples.Clients.Soap11ServiceReference.Logger[] ExistingLogsField; [System.Runtime.Serialization.OptionalFieldAttribute()] - private string PostalCodeField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string RegionField; + private ServiceStack.Examples.Clients.Soap11ServiceReference.ResponseStatus ResponseStatusField; [global::System.ComponentModel.BrowsableAttribute(false)] public System.Runtime.Serialization.ExtensionDataObject ExtensionData { @@ -127,144 +113,120 @@ public System.Runtime.Serialization.ExtensionDataObject ExtensionData { } [System.Runtime.Serialization.DataMemberAttribute()] - public string Address { + public ServiceStack.Examples.Clients.Soap11ServiceReference.Logger[] ExistingLogs { get { - return this.AddressField; + return this.ExistingLogsField; } set { - if ((object.ReferenceEquals(this.AddressField, value) != true)) { - this.AddressField = value; - this.RaisePropertyChanged("Address"); + if ((object.ReferenceEquals(this.ExistingLogsField, value) != true)) { + this.ExistingLogsField = value; + this.RaisePropertyChanged("ExistingLogs"); } } } [System.Runtime.Serialization.DataMemberAttribute()] - public string City { + public ServiceStack.Examples.Clients.Soap11ServiceReference.ResponseStatus ResponseStatus { get { - return this.CityField; + return this.ResponseStatusField; } set { - if ((object.ReferenceEquals(this.CityField, value) != true)) { - this.CityField = value; - this.RaisePropertyChanged("City"); + if ((object.ReferenceEquals(this.ResponseStatusField, value) != true)) { + this.ResponseStatusField = value; + this.RaisePropertyChanged("ResponseStatus"); } } } - [System.Runtime.Serialization.DataMemberAttribute()] - public string CompanyName { - get { - return this.CompanyNameField; - } - set { - if ((object.ReferenceEquals(this.CompanyNameField, value) != true)) { - this.CompanyNameField = value; - this.RaisePropertyChanged("CompanyName"); - } - } - } + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; - [System.Runtime.Serialization.DataMemberAttribute()] - public string ContactName { - get { - return this.ContactNameField; - } - set { - if ((object.ReferenceEquals(this.ContactNameField, value) != true)) { - this.ContactNameField = value; - this.RaisePropertyChanged("ContactName"); - } + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); } } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="ResponseStatus", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class ResponseStatus : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { - [System.Runtime.Serialization.DataMemberAttribute()] - public string ContactTitle { - get { - return this.ContactTitleField; - } - set { - if ((object.ReferenceEquals(this.ContactTitleField, value) != true)) { - this.ContactTitleField = value; - this.RaisePropertyChanged("ContactTitle"); - } - } - } + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; - [System.Runtime.Serialization.DataMemberAttribute()] - public string Country { - get { - return this.CountryField; - } - set { - if ((object.ReferenceEquals(this.CountryField, value) != true)) { - this.CountryField = value; - this.RaisePropertyChanged("Country"); - } - } - } + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string ErrorCodeField; - [System.Runtime.Serialization.DataMemberAttribute()] - public string Fax { + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string MessageField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string StackTraceField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private ServiceStack.Examples.Clients.Soap11ServiceReference.ResponseError[] ErrorsField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { get { - return this.FaxField; + return this.extensionDataField; } set { - if ((object.ReferenceEquals(this.FaxField, value) != true)) { - this.FaxField = value; - this.RaisePropertyChanged("Fax"); - } + this.extensionDataField = value; } } [System.Runtime.Serialization.DataMemberAttribute()] - public string Id { + public string ErrorCode { get { - return this.IdField; + return this.ErrorCodeField; } set { - if ((object.ReferenceEquals(this.IdField, value) != true)) { - this.IdField = value; - this.RaisePropertyChanged("Id"); + if ((object.ReferenceEquals(this.ErrorCodeField, value) != true)) { + this.ErrorCodeField = value; + this.RaisePropertyChanged("ErrorCode"); } } } [System.Runtime.Serialization.DataMemberAttribute()] - public string Phone { + public string Message { get { - return this.PhoneField; + return this.MessageField; } set { - if ((object.ReferenceEquals(this.PhoneField, value) != true)) { - this.PhoneField = value; - this.RaisePropertyChanged("Phone"); + if ((object.ReferenceEquals(this.MessageField, value) != true)) { + this.MessageField = value; + this.RaisePropertyChanged("Message"); } } } [System.Runtime.Serialization.DataMemberAttribute()] - public string PostalCode { + public string StackTrace { get { - return this.PostalCodeField; + return this.StackTraceField; } set { - if ((object.ReferenceEquals(this.PostalCodeField, value) != true)) { - this.PostalCodeField = value; - this.RaisePropertyChanged("PostalCode"); + if ((object.ReferenceEquals(this.StackTraceField, value) != true)) { + this.StackTraceField = value; + this.RaisePropertyChanged("StackTrace"); } } } - [System.Runtime.Serialization.DataMemberAttribute()] - public string Region { + [System.Runtime.Serialization.DataMemberAttribute(Order=3)] + public ServiceStack.Examples.Clients.Soap11ServiceReference.ResponseError[] Errors { get { - return this.RegionField; + return this.ErrorsField; } set { - if ((object.ReferenceEquals(this.RegionField, value) != true)) { - this.RegionField = value; - this.RaisePropertyChanged("Region"); + if ((object.ReferenceEquals(this.ErrorsField, value) != true)) { + this.ErrorsField = value; + this.RaisePropertyChanged("Errors"); } } } @@ -281,18 +243,21 @@ protected void RaisePropertyChanged(string propertyName) { [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] - [System.Runtime.Serialization.DataContractAttribute(Name="Order", Namespace="http://schemas.servicestack.net/types")] + [System.Runtime.Serialization.DataContractAttribute(Name="ResponseError", Namespace="http://schemas.servicestack.net/types")] [System.SerializableAttribute()] - public partial class Order : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + public partial class ResponseError : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { [System.NonSerializedAttribute()] private System.Runtime.Serialization.ExtensionDataObject extensionDataField; [System.Runtime.Serialization.OptionalFieldAttribute()] - private ServiceStack.Examples.Clients.Soap11ServiceReference.OrderDetail[] OrderDetailsField; + private string ErrorCodeField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string FieldNameField; [System.Runtime.Serialization.OptionalFieldAttribute()] - private ServiceStack.Examples.Clients.Soap11ServiceReference.OrderHeader OrderHeaderField; + private string MessageField; [global::System.ComponentModel.BrowsableAttribute(false)] public System.Runtime.Serialization.ExtensionDataObject ExtensionData { @@ -304,28 +269,41 @@ public System.Runtime.Serialization.ExtensionDataObject ExtensionData { } } - [System.Runtime.Serialization.DataMemberAttribute()] - public ServiceStack.Examples.Clients.Soap11ServiceReference.OrderDetail[] OrderDetails { + [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false)] + public string ErrorCode { get { - return this.OrderDetailsField; + return this.ErrorCodeField; } set { - if ((object.ReferenceEquals(this.OrderDetailsField, value) != true)) { - this.OrderDetailsField = value; - this.RaisePropertyChanged("OrderDetails"); + if ((object.ReferenceEquals(this.ErrorCodeField, value) != true)) { + this.ErrorCodeField = value; + this.RaisePropertyChanged("ErrorCode"); } } } - [System.Runtime.Serialization.DataMemberAttribute()] - public ServiceStack.Examples.Clients.Soap11ServiceReference.OrderHeader OrderHeader { + [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false)] + public string FieldName { + get { + return this.FieldNameField; + } + set { + if ((object.ReferenceEquals(this.FieldNameField, value) != true)) { + this.FieldNameField = value; + this.RaisePropertyChanged("FieldName"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false)] + public string Message { get { - return this.OrderHeaderField; + return this.MessageField; } set { - if ((object.ReferenceEquals(this.OrderHeaderField, value) != true)) { - this.OrderHeaderField = value; - this.RaisePropertyChanged("OrderHeader"); + if ((object.ReferenceEquals(this.MessageField, value) != true)) { + this.MessageField = value; + this.RaisePropertyChanged("Message"); } } } @@ -342,54 +320,44 @@ protected void RaisePropertyChanged(string propertyName) { [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] - [System.Runtime.Serialization.DataContractAttribute(Name="OrderHeader", Namespace="http://schemas.servicestack.net/types")] + [System.Runtime.Serialization.DataContractAttribute(Name="ResetMovieDatabase", Namespace="http://schemas.servicestack.net/types")] [System.SerializableAttribute()] - public partial class OrderHeader : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + public partial class ResetMovieDatabase : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { [System.NonSerializedAttribute()] private System.Runtime.Serialization.ExtensionDataObject extensionDataField; - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string CustomerIdField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private int EmployeeIdField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private decimal FreightField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private int IdField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private System.Nullable OrderDateField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private System.Nullable RequiredDateField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string ShipAddressField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string ShipCityField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string ShipCountryField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string ShipNameField; + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string ShipPostalCodeField; + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string ShipRegionField; + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="ResetMovieDatabaseResponse", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class ResetMovieDatabaseResponse : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { - [System.Runtime.Serialization.OptionalFieldAttribute()] - private System.Nullable ShipViaField; + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; [System.Runtime.Serialization.OptionalFieldAttribute()] - private System.Nullable ShippedDateField; + private ServiceStack.Examples.Clients.Soap11ServiceReference.ResponseStatus ResponseStatusField; [global::System.ComponentModel.BrowsableAttribute(false)] public System.Runtime.Serialization.ExtensionDataObject ExtensionData { @@ -402,51 +370,60 @@ public System.Runtime.Serialization.ExtensionDataObject ExtensionData { } [System.Runtime.Serialization.DataMemberAttribute()] - public string CustomerId { + public ServiceStack.Examples.Clients.Soap11ServiceReference.ResponseStatus ResponseStatus { get { - return this.CustomerIdField; + return this.ResponseStatusField; } set { - if ((object.ReferenceEquals(this.CustomerIdField, value) != true)) { - this.CustomerIdField = value; - this.RaisePropertyChanged("CustomerId"); + if ((object.ReferenceEquals(this.ResponseStatusField, value) != true)) { + this.ResponseStatusField = value; + this.RaisePropertyChanged("ResponseStatus"); } } } - [System.Runtime.Serialization.DataMemberAttribute()] - public int EmployeeId { - get { - return this.EmployeeIdField; - } - set { - if ((this.EmployeeIdField.Equals(value) != true)) { - this.EmployeeIdField = value; - this.RaisePropertyChanged("EmployeeId"); - } + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); } } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="Movies", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class Movies : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { - [System.Runtime.Serialization.DataMemberAttribute()] - public decimal Freight { + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string IdField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private ServiceStack.Examples.Clients.Soap11ServiceReference.Movie MovieField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { get { - return this.FreightField; + return this.extensionDataField; } set { - if ((this.FreightField.Equals(value) != true)) { - this.FreightField = value; - this.RaisePropertyChanged("Freight"); - } + this.extensionDataField = value; } } [System.Runtime.Serialization.DataMemberAttribute()] - public int Id { + public string Id { get { return this.IdField; } set { - if ((this.IdField.Equals(value) != true)) { + if ((object.ReferenceEquals(this.IdField, value) != true)) { this.IdField = value; this.RaisePropertyChanged("Id"); } @@ -454,131 +431,149 @@ public int Id { } [System.Runtime.Serialization.DataMemberAttribute()] - public System.Nullable OrderDate { + public ServiceStack.Examples.Clients.Soap11ServiceReference.Movie Movie { get { - return this.OrderDateField; + return this.MovieField; } set { - if ((this.OrderDateField.Equals(value) != true)) { - this.OrderDateField = value; - this.RaisePropertyChanged("OrderDate"); + if ((object.ReferenceEquals(this.MovieField, value) != true)) { + this.MovieField = value; + this.RaisePropertyChanged("Movie"); } } } - [System.Runtime.Serialization.DataMemberAttribute()] - public System.Nullable RequiredDate { - get { - return this.RequiredDateField; - } - set { - if ((this.RequiredDateField.Equals(value) != true)) { - this.RequiredDateField = value; - this.RaisePropertyChanged("RequiredDate"); - } + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); } } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="Movie", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class Movie : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { - [System.Runtime.Serialization.DataMemberAttribute()] - public string ShipAddress { + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { get { - return this.ShipAddressField; + return this.extensionDataField; } set { - if ((object.ReferenceEquals(this.ShipAddressField, value) != true)) { - this.ShipAddressField = value; - this.RaisePropertyChanged("ShipAddress"); - } + this.extensionDataField = value; } } - [System.Runtime.Serialization.DataMemberAttribute()] - public string ShipCity { - get { - return this.ShipCityField; - } - set { - if ((object.ReferenceEquals(this.ShipCityField, value) != true)) { - this.ShipCityField = value; - this.RaisePropertyChanged("ShipCity"); - } + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); } } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="MoviesResponse", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class MoviesResponse : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { - [System.Runtime.Serialization.DataMemberAttribute()] - public string ShipCountry { + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private ServiceStack.Examples.Clients.Soap11ServiceReference.Movie[] MoviesField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private ServiceStack.Examples.Clients.Soap11ServiceReference.ResponseStatus ResponseStatusField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { get { - return this.ShipCountryField; + return this.extensionDataField; } set { - if ((object.ReferenceEquals(this.ShipCountryField, value) != true)) { - this.ShipCountryField = value; - this.RaisePropertyChanged("ShipCountry"); - } + this.extensionDataField = value; } } [System.Runtime.Serialization.DataMemberAttribute()] - public string ShipName { + public ServiceStack.Examples.Clients.Soap11ServiceReference.Movie[] Movies { get { - return this.ShipNameField; + return this.MoviesField; } set { - if ((object.ReferenceEquals(this.ShipNameField, value) != true)) { - this.ShipNameField = value; - this.RaisePropertyChanged("ShipName"); + if ((object.ReferenceEquals(this.MoviesField, value) != true)) { + this.MoviesField = value; + this.RaisePropertyChanged("Movies"); } } } [System.Runtime.Serialization.DataMemberAttribute()] - public string ShipPostalCode { + public ServiceStack.Examples.Clients.Soap11ServiceReference.ResponseStatus ResponseStatus { get { - return this.ShipPostalCodeField; + return this.ResponseStatusField; } set { - if ((object.ReferenceEquals(this.ShipPostalCodeField, value) != true)) { - this.ShipPostalCodeField = value; - this.RaisePropertyChanged("ShipPostalCode"); + if ((object.ReferenceEquals(this.ResponseStatusField, value) != true)) { + this.ResponseStatusField = value; + this.RaisePropertyChanged("ResponseStatus"); } } } - [System.Runtime.Serialization.DataMemberAttribute()] - public string ShipRegion { - get { - return this.ShipRegionField; - } - set { - if ((object.ReferenceEquals(this.ShipRegionField, value) != true)) { - this.ShipRegionField = value; - this.RaisePropertyChanged("ShipRegion"); - } + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); } } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="GetFactorial", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class GetFactorial : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { - [System.Runtime.Serialization.DataMemberAttribute()] - public System.Nullable ShipVia { + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private long ForNumberField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { get { - return this.ShipViaField; + return this.extensionDataField; } set { - if ((this.ShipViaField.Equals(value) != true)) { - this.ShipViaField = value; - this.RaisePropertyChanged("ShipVia"); - } + this.extensionDataField = value; } } [System.Runtime.Serialization.DataMemberAttribute()] - public System.Nullable ShippedDate { + public long ForNumber { get { - return this.ShippedDateField; + return this.ForNumberField; } set { - if ((this.ShippedDateField.Equals(value) != true)) { - this.ShippedDateField = value; - this.RaisePropertyChanged("ShippedDate"); + if ((this.ForNumberField.Equals(value) != true)) { + this.ForNumberField = value; + this.RaisePropertyChanged("ForNumber"); } } } @@ -595,27 +590,15 @@ protected void RaisePropertyChanged(string propertyName) { [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] - [System.Runtime.Serialization.DataContractAttribute(Name="OrderDetail", Namespace="http://schemas.servicestack.net/types")] + [System.Runtime.Serialization.DataContractAttribute(Name="GetFactorialResponse", Namespace="http://schemas.servicestack.net/types")] [System.SerializableAttribute()] - public partial class OrderDetail : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + public partial class GetFactorialResponse : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { [System.NonSerializedAttribute()] private System.Runtime.Serialization.ExtensionDataObject extensionDataField; [System.Runtime.Serialization.OptionalFieldAttribute()] - private double DiscountField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private int OrderIdField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private int ProductIdField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private short QuantityField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private decimal UnitPriceField; + private long ResultField; [global::System.ComponentModel.BrowsableAttribute(false)] public System.Runtime.Serialization.ExtensionDataObject ExtensionData { @@ -628,66 +611,104 @@ public System.Runtime.Serialization.ExtensionDataObject ExtensionData { } [System.Runtime.Serialization.DataMemberAttribute()] - public double Discount { + public long Result { get { - return this.DiscountField; + return this.ResultField; } set { - if ((this.DiscountField.Equals(value) != true)) { - this.DiscountField = value; - this.RaisePropertyChanged("Discount"); + if ((this.ResultField.Equals(value) != true)) { + this.ResultField = value; + this.RaisePropertyChanged("Result"); } } } - [System.Runtime.Serialization.DataMemberAttribute()] - public int OrderId { + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="GetAllUsers", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class GetAllUsers : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { get { - return this.OrderIdField; + return this.extensionDataField; } set { - if ((this.OrderIdField.Equals(value) != true)) { - this.OrderIdField = value; - this.RaisePropertyChanged("OrderId"); - } + this.extensionDataField = value; } } - [System.Runtime.Serialization.DataMemberAttribute()] - public int ProductId { + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="GetAllUsersResponse", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class GetAllUsersResponse : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private ServiceStack.Examples.Clients.Soap11ServiceReference.ResponseStatus ResponseStatusField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private ServiceStack.Examples.Clients.Soap11ServiceReference.User[] UsersField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { get { - return this.ProductIdField; + return this.extensionDataField; } set { - if ((this.ProductIdField.Equals(value) != true)) { - this.ProductIdField = value; - this.RaisePropertyChanged("ProductId"); - } + this.extensionDataField = value; } } [System.Runtime.Serialization.DataMemberAttribute()] - public short Quantity { + public ServiceStack.Examples.Clients.Soap11ServiceReference.ResponseStatus ResponseStatus { get { - return this.QuantityField; + return this.ResponseStatusField; } set { - if ((this.QuantityField.Equals(value) != true)) { - this.QuantityField = value; - this.RaisePropertyChanged("Quantity"); + if ((object.ReferenceEquals(this.ResponseStatusField, value) != true)) { + this.ResponseStatusField = value; + this.RaisePropertyChanged("ResponseStatus"); } } } [System.Runtime.Serialization.DataMemberAttribute()] - public decimal UnitPrice { + public ServiceStack.Examples.Clients.Soap11ServiceReference.User[] Users { get { - return this.UnitPriceField; + return this.UsersField; } set { - if ((this.UnitPriceField.Equals(value) != true)) { - this.UnitPriceField = value; - this.RaisePropertyChanged("UnitPrice"); + if ((object.ReferenceEquals(this.UsersField, value) != true)) { + this.UsersField = value; + this.RaisePropertyChanged("Users"); } } } @@ -702,13 +723,6 @@ protected void RaisePropertyChanged(string propertyName) { } } - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] - [System.Runtime.Serialization.CollectionDataContractAttribute(Name="ArrayOfLong", Namespace="http://schemas.servicestack.net/types", ItemName="Long")] - [System.SerializableAttribute()] - public class ArrayOfLong : System.Collections.Generic.List { - } - [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] [System.Runtime.Serialization.DataContractAttribute(Name="User", Namespace="http://schemas.servicestack.net/types")] @@ -820,33 +834,63 @@ protected void RaisePropertyChanged(string propertyName) { [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] - [System.Runtime.Serialization.DataContractAttribute(Name="Movie", Namespace="http://schemas.servicestack.net/types")] + [System.Runtime.Serialization.DataContractAttribute(Name="GetNorthwindCustomerOrders", Namespace="http://schemas.servicestack.net/types")] [System.SerializableAttribute()] - public partial class Movie : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + public partial class GetNorthwindCustomerOrders : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { [System.NonSerializedAttribute()] private System.Runtime.Serialization.ExtensionDataObject extensionDataField; [System.Runtime.Serialization.OptionalFieldAttribute()] - private string DirectorField; + private string CustomerIdField; - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string[] GenresField; + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string IdField; + [System.Runtime.Serialization.DataMemberAttribute()] + public string CustomerId { + get { + return this.CustomerIdField; + } + set { + if ((object.ReferenceEquals(this.CustomerIdField, value) != true)) { + this.CustomerIdField = value; + this.RaisePropertyChanged("CustomerId"); + } + } + } - [System.Runtime.Serialization.OptionalFieldAttribute()] - private decimal RatingField; + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; - [System.Runtime.Serialization.OptionalFieldAttribute()] - private System.DateTime ReleaseDateField; + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="GetNorthwindCustomerOrdersResponse", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class GetNorthwindCustomerOrdersResponse : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; [System.Runtime.Serialization.OptionalFieldAttribute()] - private string TagLineField; + private ServiceStack.Examples.Clients.Soap11ServiceReference.CustomerOrders CustomerOrdersField; [System.Runtime.Serialization.OptionalFieldAttribute()] - private string TitleField; + private ServiceStack.Examples.Clients.Soap11ServiceReference.ResponseStatus ResponseStatusField; [global::System.ComponentModel.BrowsableAttribute(false)] public System.Runtime.Serialization.ExtensionDataObject ExtensionData { @@ -859,92 +903,133 @@ public System.Runtime.Serialization.ExtensionDataObject ExtensionData { } [System.Runtime.Serialization.DataMemberAttribute()] - public string Director { + public ServiceStack.Examples.Clients.Soap11ServiceReference.CustomerOrders CustomerOrders { get { - return this.DirectorField; + return this.CustomerOrdersField; } set { - if ((object.ReferenceEquals(this.DirectorField, value) != true)) { - this.DirectorField = value; - this.RaisePropertyChanged("Director"); + if ((object.ReferenceEquals(this.CustomerOrdersField, value) != true)) { + this.CustomerOrdersField = value; + this.RaisePropertyChanged("CustomerOrders"); } } } [System.Runtime.Serialization.DataMemberAttribute()] - public string[] Genres { + public ServiceStack.Examples.Clients.Soap11ServiceReference.ResponseStatus ResponseStatus { get { - return this.GenresField; + return this.ResponseStatusField; } set { - if ((object.ReferenceEquals(this.GenresField, value) != true)) { - this.GenresField = value; - this.RaisePropertyChanged("Genres"); + if ((object.ReferenceEquals(this.ResponseStatusField, value) != true)) { + this.ResponseStatusField = value; + this.RaisePropertyChanged("ResponseStatus"); } } } - [System.Runtime.Serialization.DataMemberAttribute()] - public string Id { + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="CustomerOrders", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class CustomerOrders : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { get { - return this.IdField; + return this.extensionDataField; } set { - if ((object.ReferenceEquals(this.IdField, value) != true)) { - this.IdField = value; - this.RaisePropertyChanged("Id"); - } + this.extensionDataField = value; } } - [System.Runtime.Serialization.DataMemberAttribute()] - public decimal Rating { + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="StoreNewUser", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class StoreNewUser : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string EmailField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string PasswordField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string UserNameField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { get { - return this.RatingField; + return this.extensionDataField; } set { - if ((this.RatingField.Equals(value) != true)) { - this.RatingField = value; - this.RaisePropertyChanged("Rating"); - } + this.extensionDataField = value; } } [System.Runtime.Serialization.DataMemberAttribute()] - public System.DateTime ReleaseDate { + public string Email { get { - return this.ReleaseDateField; + return this.EmailField; } set { - if ((this.ReleaseDateField.Equals(value) != true)) { - this.ReleaseDateField = value; - this.RaisePropertyChanged("ReleaseDate"); + if ((object.ReferenceEquals(this.EmailField, value) != true)) { + this.EmailField = value; + this.RaisePropertyChanged("Email"); } } } [System.Runtime.Serialization.DataMemberAttribute()] - public string TagLine { + public string Password { get { - return this.TagLineField; + return this.PasswordField; } set { - if ((object.ReferenceEquals(this.TagLineField, value) != true)) { - this.TagLineField = value; - this.RaisePropertyChanged("TagLine"); + if ((object.ReferenceEquals(this.PasswordField, value) != true)) { + this.PasswordField = value; + this.RaisePropertyChanged("Password"); } } } [System.Runtime.Serialization.DataMemberAttribute()] - public string Title { + public string UserName { get { - return this.TitleField; + return this.UserNameField; } set { - if ((object.ReferenceEquals(this.TitleField, value) != true)) { - this.TitleField = value; - this.RaisePropertyChanged("Title"); + if ((object.ReferenceEquals(this.UserNameField, value) != true)) { + this.UserNameField = value; + this.RaisePropertyChanged("UserName"); } } } @@ -959,157 +1044,1216 @@ protected void RaisePropertyChanged(string propertyName) { } } - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] - [System.ServiceModel.ServiceContractAttribute(Namespace="http://schemas.servicestack.net/types", ConfigurationName="Soap11ServiceReference.ISyncReply")] - public interface ISyncReply { - - [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/GetNorthwindCustomerOrdersCached", ReplyAction="*")] - [return: System.ServiceModel.MessageParameterAttribute(Name="CreatedDate")] - System.DateTime GetNorthwindCustomerOrdersCached(out ServiceStack.Examples.Clients.Soap11ServiceReference.CustomerOrders CustomerOrders, out ServiceStack.ServiceInterface.ServiceModel.ResponseStatus ResponseStatus, string CustomerId, bool RefreshCache); + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="StoreNewUserResponse", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class StoreNewUserResponse : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { - [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/GetFactorial", ReplyAction="*")] - [return: System.ServiceModel.MessageParameterAttribute(Name="Result")] - long GetFactorial(long ForNumber); + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; - [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/DeleteAllUsers", ReplyAction="*")] - [return: System.ServiceModel.MessageParameterAttribute(Name="ResponseStatus")] - ServiceStack.ServiceInterface.ServiceModel.ResponseStatus DeleteAllUsers(out long UserId); + [System.Runtime.Serialization.OptionalFieldAttribute()] + private ServiceStack.Examples.Clients.Soap11ServiceReference.ResponseStatus ResponseStatusField; - [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/StoreNewUser", ReplyAction="*")] - [return: System.ServiceModel.MessageParameterAttribute(Name="ResponseStatus")] - ServiceStack.ServiceInterface.ServiceModel.ResponseStatus StoreNewUser(out long UserId, string Email, string Password, string UserName); + [System.Runtime.Serialization.OptionalFieldAttribute()] + private long UserIdField; - [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/Greet", ReplyAction="*")] - [return: System.ServiceModel.MessageParameterAttribute(Name="Result")] - string Greet(string Name); + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } - [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/GetFibonacciNumbers", ReplyAction="*")] - [return: System.ServiceModel.MessageParameterAttribute(Name="Results")] - ServiceStack.Examples.Clients.Soap11ServiceReference.ArrayOfLong GetFibonacciNumbers(System.Nullable Skip, System.Nullable Take); + [System.Runtime.Serialization.DataMemberAttribute()] + public ServiceStack.Examples.Clients.Soap11ServiceReference.ResponseStatus ResponseStatus { + get { + return this.ResponseStatusField; + } + set { + if ((object.ReferenceEquals(this.ResponseStatusField, value) != true)) { + this.ResponseStatusField = value; + this.RaisePropertyChanged("ResponseStatus"); + } + } + } - [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/GetNorthwindCustomerOrders", ReplyAction="*")] - [return: System.ServiceModel.MessageParameterAttribute(Name="CustomerOrders")] - ServiceStack.Examples.Clients.Soap11ServiceReference.CustomerOrders GetNorthwindCustomerOrders(out ServiceStack.ServiceInterface.ServiceModel.ResponseStatus ResponseStatus, string CustomerId); + [System.Runtime.Serialization.DataMemberAttribute()] + public long UserId { + get { + return this.UserIdField; + } + set { + if ((this.UserIdField.Equals(value) != true)) { + this.UserIdField = value; + this.RaisePropertyChanged("UserId"); + } + } + } - [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/ResetMovieDatabase", ReplyAction="*")] - [return: System.ServiceModel.MessageParameterAttribute(Name="ResponseStatus")] - ServiceStack.ServiceInterface.ServiceModel.ResponseStatus ResetMovieDatabase(); + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; - [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/GetAllUsers", ReplyAction="*")] - [return: System.ServiceModel.MessageParameterAttribute(Name="ResponseStatus")] - ServiceStack.ServiceInterface.ServiceModel.ResponseStatus GetAllUsers(out ServiceStack.Examples.Clients.Soap11ServiceReference.User[] Users); + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="DeleteAllUsers", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class DeleteAllUsers : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="DeleteAllUsersResponse", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class DeleteAllUsersResponse : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private ServiceStack.Examples.Clients.Soap11ServiceReference.ResponseStatus ResponseStatusField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private long UserIdField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public ServiceStack.Examples.Clients.Soap11ServiceReference.ResponseStatus ResponseStatus { + get { + return this.ResponseStatusField; + } + set { + if ((object.ReferenceEquals(this.ResponseStatusField, value) != true)) { + this.ResponseStatusField = value; + this.RaisePropertyChanged("ResponseStatus"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public long UserId { + get { + return this.UserIdField; + } + set { + if ((this.UserIdField.Equals(value) != true)) { + this.UserIdField = value; + this.RaisePropertyChanged("UserId"); + } + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="Greet", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class Greet : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string NameField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public string Name { + get { + return this.NameField; + } + set { + if ((object.ReferenceEquals(this.NameField, value) != true)) { + this.NameField = value; + this.RaisePropertyChanged("Name"); + } + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="GreetResponse", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class GreetResponse : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string ResultField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public string Result { + get { + return this.ResultField; + } + set { + if ((object.ReferenceEquals(this.ResultField, value) != true)) { + this.ResultField = value; + this.RaisePropertyChanged("Result"); + } + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="GetUsers", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class GetUsers : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private long[] UserIdsField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string[] UserNamesField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public long[] UserIds { + get { + return this.UserIdsField; + } + set { + if ((object.ReferenceEquals(this.UserIdsField, value) != true)) { + this.UserIdsField = value; + this.RaisePropertyChanged("UserIds"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public string[] UserNames { + get { + return this.UserNamesField; + } + set { + if ((object.ReferenceEquals(this.UserNamesField, value) != true)) { + this.UserNamesField = value; + this.RaisePropertyChanged("UserNames"); + } + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="GetUsersResponse", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class GetUsersResponse : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private ServiceStack.Examples.Clients.Soap11ServiceReference.ResponseStatus ResponseStatusField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private ServiceStack.Examples.Clients.Soap11ServiceReference.User[] UsersField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public ServiceStack.Examples.Clients.Soap11ServiceReference.ResponseStatus ResponseStatus { + get { + return this.ResponseStatusField; + } + set { + if ((object.ReferenceEquals(this.ResponseStatusField, value) != true)) { + this.ResponseStatusField = value; + this.RaisePropertyChanged("ResponseStatus"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public ServiceStack.Examples.Clients.Soap11ServiceReference.User[] Users { + get { + return this.UsersField; + } + set { + if ((object.ReferenceEquals(this.UsersField, value) != true)) { + this.UsersField = value; + this.RaisePropertyChanged("Users"); + } + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="GetFibonacciNumbers", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class GetFibonacciNumbers : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private System.Nullable SkipField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private System.Nullable TakeField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public System.Nullable Skip { + get { + return this.SkipField; + } + set { + if ((this.SkipField.Equals(value) != true)) { + this.SkipField = value; + this.RaisePropertyChanged("Skip"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public System.Nullable Take { + get { + return this.TakeField; + } + set { + if ((this.TakeField.Equals(value) != true)) { + this.TakeField = value; + this.RaisePropertyChanged("Take"); + } + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="GetFibonacciNumbersResponse", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class GetFibonacciNumbersResponse : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private ServiceStack.Examples.Clients.Soap11ServiceReference.ArrayOfLong ResultsField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public ServiceStack.Examples.Clients.Soap11ServiceReference.ArrayOfLong Results { + get { + return this.ResultsField; + } + set { + if ((object.ReferenceEquals(this.ResultsField, value) != true)) { + this.ResultsField = value; + this.RaisePropertyChanged("Results"); + } + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.CollectionDataContractAttribute(Name="ArrayOfLong", Namespace="http://schemas.servicestack.net/types", ItemName="Long")] + [System.SerializableAttribute()] + public class ArrayOfLong : System.Collections.Generic.List { + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ServiceModel.ServiceContractAttribute(Namespace="http://schemas.servicestack.net/types", ConfigurationName="Soap11ServiceReference.ISyncReply")] + public interface ISyncReply { + + // CODEGEN: Generating message contract since the operation StoreLogs is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/StoreLogs", ReplyAction="*")] + ServiceStack.Examples.Clients.Soap11ServiceReference.StoreLogsResponse1 StoreLogs(ServiceStack.Examples.Clients.Soap11ServiceReference.StoreLogsRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/StoreLogs", ReplyAction="*")] + System.Threading.Tasks.Task StoreLogsAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.StoreLogsRequest request); + + // CODEGEN: Generating message contract since the operation ResetMovieDatabase is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/ResetMovieDatabase", ReplyAction="*")] + ServiceStack.Examples.Clients.Soap11ServiceReference.ResetMovieDatabaseResponse1 ResetMovieDatabase(ServiceStack.Examples.Clients.Soap11ServiceReference.ResetMovieDatabaseRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/ResetMovieDatabase", ReplyAction="*")] + System.Threading.Tasks.Task ResetMovieDatabaseAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.ResetMovieDatabaseRequest request); + + // CODEGEN: Generating message contract since the operation Movies is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/Movies", ReplyAction="*")] + ServiceStack.Examples.Clients.Soap11ServiceReference.MoviesResponse1 Movies(ServiceStack.Examples.Clients.Soap11ServiceReference.MoviesRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/Movies", ReplyAction="*")] + System.Threading.Tasks.Task MoviesAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.MoviesRequest request); + + // CODEGEN: Generating message contract since the operation GetFactorial is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/GetFactorial", ReplyAction="*")] + ServiceStack.Examples.Clients.Soap11ServiceReference.GetFactorialResponse1 GetFactorial(ServiceStack.Examples.Clients.Soap11ServiceReference.GetFactorialRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/GetFactorial", ReplyAction="*")] + System.Threading.Tasks.Task GetFactorialAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.GetFactorialRequest request); + + // CODEGEN: Generating message contract since the operation GetAllUsers is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/GetAllUsers", ReplyAction="*")] + ServiceStack.Examples.Clients.Soap11ServiceReference.GetAllUsersResponse1 GetAllUsers(ServiceStack.Examples.Clients.Soap11ServiceReference.GetAllUsersRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/GetAllUsers", ReplyAction="*")] + System.Threading.Tasks.Task GetAllUsersAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.GetAllUsersRequest request); + + // CODEGEN: Generating message contract since the operation GetNorthwindCustomerOrders is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/GetNorthwindCustomerOrders", ReplyAction="*")] + ServiceStack.Examples.Clients.Soap11ServiceReference.GetNorthwindCustomerOrdersResponse1 GetNorthwindCustomerOrders(ServiceStack.Examples.Clients.Soap11ServiceReference.GetNorthwindCustomerOrdersRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/GetNorthwindCustomerOrders", ReplyAction="*")] + System.Threading.Tasks.Task GetNorthwindCustomerOrdersAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.GetNorthwindCustomerOrdersRequest request); + + // CODEGEN: Generating message contract since the operation StoreNewUser is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/StoreNewUser", ReplyAction="*")] + ServiceStack.Examples.Clients.Soap11ServiceReference.StoreNewUserResponse1 StoreNewUser(ServiceStack.Examples.Clients.Soap11ServiceReference.StoreNewUserRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/StoreNewUser", ReplyAction="*")] + System.Threading.Tasks.Task StoreNewUserAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.StoreNewUserRequest request); + + // CODEGEN: Generating message contract since the operation DeleteAllUsers is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/DeleteAllUsers", ReplyAction="*")] + ServiceStack.Examples.Clients.Soap11ServiceReference.DeleteAllUsersResponse1 DeleteAllUsers(ServiceStack.Examples.Clients.Soap11ServiceReference.DeleteAllUsersRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/DeleteAllUsers", ReplyAction="*")] + System.Threading.Tasks.Task DeleteAllUsersAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.DeleteAllUsersRequest request); + + // CODEGEN: Generating message contract since the operation Greet is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/Greet", ReplyAction="*")] + ServiceStack.Examples.Clients.Soap11ServiceReference.GreetResponse1 Greet(ServiceStack.Examples.Clients.Soap11ServiceReference.GreetRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/Greet", ReplyAction="*")] + System.Threading.Tasks.Task GreetAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.GreetRequest request); + + // CODEGEN: Generating message contract since the operation GetUsers is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/GetUsers", ReplyAction="*")] + ServiceStack.Examples.Clients.Soap11ServiceReference.GetUsersResponse1 GetUsers(ServiceStack.Examples.Clients.Soap11ServiceReference.GetUsersRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/GetUsers", ReplyAction="*")] + System.Threading.Tasks.Task GetUsersAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.GetUsersRequest request); + + // CODEGEN: Generating message contract since the operation GetFibonacciNumbers is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/GetFibonacciNumbers", ReplyAction="*")] + ServiceStack.Examples.Clients.Soap11ServiceReference.GetFibonacciNumbersResponse1 GetFibonacciNumbers(ServiceStack.Examples.Clients.Soap11ServiceReference.GetFibonacciNumbersRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/GetFibonacciNumbers", ReplyAction="*")] + System.Threading.Tasks.Task GetFibonacciNumbersAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.GetFibonacciNumbersRequest request); + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class StoreLogsRequest { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap11ServiceReference.StoreLogs StoreLogs; + + public StoreLogsRequest() { + } - [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/Movies", ReplyAction="*")] - [return: System.ServiceModel.MessageParameterAttribute(Name="Movies")] - ServiceStack.Examples.Clients.Soap11ServiceReference.Movie[] Movies(out ServiceStack.ServiceInterface.ServiceModel.ResponseStatus ResponseStatus, string Id, ServiceStack.Examples.Clients.Soap11ServiceReference.Movie Movie); + public StoreLogsRequest(ServiceStack.Examples.Clients.Soap11ServiceReference.StoreLogs StoreLogs) { + this.StoreLogs = StoreLogs; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class StoreLogsResponse1 { - [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/GetUsers", ReplyAction="*")] - [return: System.ServiceModel.MessageParameterAttribute(Name="ResponseStatus")] - ServiceStack.ServiceInterface.ServiceModel.ResponseStatus GetUsers(out ServiceStack.Examples.Clients.Soap11ServiceReference.User[] Users, long[] UserIds, string[] UserNames); + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap11ServiceReference.StoreLogsResponse StoreLogsResponse; + + public StoreLogsResponse1() { + } + + public StoreLogsResponse1(ServiceStack.Examples.Clients.Soap11ServiceReference.StoreLogsResponse StoreLogsResponse) { + this.StoreLogsResponse = StoreLogsResponse; + } } + [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] - public interface ISyncReplyChannel : ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply, System.ServiceModel.IClientChannel { + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class ResetMovieDatabaseRequest { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap11ServiceReference.ResetMovieDatabase ResetMovieDatabase; + + public ResetMovieDatabaseRequest() { + } + + public ResetMovieDatabaseRequest(ServiceStack.Examples.Clients.Soap11ServiceReference.ResetMovieDatabase ResetMovieDatabase) { + this.ResetMovieDatabase = ResetMovieDatabase; + } } [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] - public partial class SyncReplyClient : System.ServiceModel.ClientBase, ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply { + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class ResetMovieDatabaseResponse1 { - public SyncReplyClient() { + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap11ServiceReference.ResetMovieDatabaseResponse ResetMovieDatabaseResponse; + + public ResetMovieDatabaseResponse1() { } - public SyncReplyClient(string endpointConfigurationName) : - base(endpointConfigurationName) { + public ResetMovieDatabaseResponse1(ServiceStack.Examples.Clients.Soap11ServiceReference.ResetMovieDatabaseResponse ResetMovieDatabaseResponse) { + this.ResetMovieDatabaseResponse = ResetMovieDatabaseResponse; } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class MoviesRequest { - public SyncReplyClient(string endpointConfigurationName, string remoteAddress) : - base(endpointConfigurationName, remoteAddress) { + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap11ServiceReference.Movies Movies; + + public MoviesRequest() { } - public SyncReplyClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : - base(endpointConfigurationName, remoteAddress) { + public MoviesRequest(ServiceStack.Examples.Clients.Soap11ServiceReference.Movies Movies) { + this.Movies = Movies; } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class MoviesResponse1 { - public SyncReplyClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : - base(binding, remoteAddress) { + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap11ServiceReference.MoviesResponse MoviesResponse; + + public MoviesResponse1() { + } + + public MoviesResponse1(ServiceStack.Examples.Clients.Soap11ServiceReference.MoviesResponse MoviesResponse) { + this.MoviesResponse = MoviesResponse; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class GetFactorialRequest { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap11ServiceReference.GetFactorial GetFactorial; + + public GetFactorialRequest() { + } + + public GetFactorialRequest(ServiceStack.Examples.Clients.Soap11ServiceReference.GetFactorial GetFactorial) { + this.GetFactorial = GetFactorial; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class GetFactorialResponse1 { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap11ServiceReference.GetFactorialResponse GetFactorialResponse; + + public GetFactorialResponse1() { + } + + public GetFactorialResponse1(ServiceStack.Examples.Clients.Soap11ServiceReference.GetFactorialResponse GetFactorialResponse) { + this.GetFactorialResponse = GetFactorialResponse; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class GetAllUsersRequest { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap11ServiceReference.GetAllUsers GetAllUsers; + + public GetAllUsersRequest() { + } + + public GetAllUsersRequest(ServiceStack.Examples.Clients.Soap11ServiceReference.GetAllUsers GetAllUsers) { + this.GetAllUsers = GetAllUsers; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class GetAllUsersResponse1 { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap11ServiceReference.GetAllUsersResponse GetAllUsersResponse; + + public GetAllUsersResponse1() { + } + + public GetAllUsersResponse1(ServiceStack.Examples.Clients.Soap11ServiceReference.GetAllUsersResponse GetAllUsersResponse) { + this.GetAllUsersResponse = GetAllUsersResponse; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class GetNorthwindCustomerOrdersRequest { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap11ServiceReference.GetNorthwindCustomerOrders GetNorthwindCustomerOrders; + + public GetNorthwindCustomerOrdersRequest() { + } + + public GetNorthwindCustomerOrdersRequest(ServiceStack.Examples.Clients.Soap11ServiceReference.GetNorthwindCustomerOrders GetNorthwindCustomerOrders) { + this.GetNorthwindCustomerOrders = GetNorthwindCustomerOrders; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class GetNorthwindCustomerOrdersResponse1 { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap11ServiceReference.GetNorthwindCustomerOrdersResponse GetNorthwindCustomerOrdersResponse; + + public GetNorthwindCustomerOrdersResponse1() { + } + + public GetNorthwindCustomerOrdersResponse1(ServiceStack.Examples.Clients.Soap11ServiceReference.GetNorthwindCustomerOrdersResponse GetNorthwindCustomerOrdersResponse) { + this.GetNorthwindCustomerOrdersResponse = GetNorthwindCustomerOrdersResponse; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class StoreNewUserRequest { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap11ServiceReference.StoreNewUser StoreNewUser; + + public StoreNewUserRequest() { + } + + public StoreNewUserRequest(ServiceStack.Examples.Clients.Soap11ServiceReference.StoreNewUser StoreNewUser) { + this.StoreNewUser = StoreNewUser; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class StoreNewUserResponse1 { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap11ServiceReference.StoreNewUserResponse StoreNewUserResponse; + + public StoreNewUserResponse1() { + } + + public StoreNewUserResponse1(ServiceStack.Examples.Clients.Soap11ServiceReference.StoreNewUserResponse StoreNewUserResponse) { + this.StoreNewUserResponse = StoreNewUserResponse; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class DeleteAllUsersRequest { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap11ServiceReference.DeleteAllUsers DeleteAllUsers; + + public DeleteAllUsersRequest() { + } + + public DeleteAllUsersRequest(ServiceStack.Examples.Clients.Soap11ServiceReference.DeleteAllUsers DeleteAllUsers) { + this.DeleteAllUsers = DeleteAllUsers; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class DeleteAllUsersResponse1 { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap11ServiceReference.DeleteAllUsersResponse DeleteAllUsersResponse; + + public DeleteAllUsersResponse1() { } - public System.DateTime GetNorthwindCustomerOrdersCached(out ServiceStack.Examples.Clients.Soap11ServiceReference.CustomerOrders CustomerOrders, out ServiceStack.ServiceInterface.ServiceModel.ResponseStatus ResponseStatus, string CustomerId, bool RefreshCache) { - return base.Channel.GetNorthwindCustomerOrdersCached(out CustomerOrders, out ResponseStatus, CustomerId, RefreshCache); + public DeleteAllUsersResponse1(ServiceStack.Examples.Clients.Soap11ServiceReference.DeleteAllUsersResponse DeleteAllUsersResponse) { + this.DeleteAllUsersResponse = DeleteAllUsersResponse; } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class GreetRequest { - public long GetFactorial(long ForNumber) { - return base.Channel.GetFactorial(ForNumber); + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap11ServiceReference.Greet Greet; + + public GreetRequest() { } - public ServiceStack.ServiceInterface.ServiceModel.ResponseStatus DeleteAllUsers(out long UserId) { - return base.Channel.DeleteAllUsers(out UserId); + public GreetRequest(ServiceStack.Examples.Clients.Soap11ServiceReference.Greet Greet) { + this.Greet = Greet; } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class GreetResponse1 { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap11ServiceReference.GreetResponse GreetResponse; - public ServiceStack.ServiceInterface.ServiceModel.ResponseStatus StoreNewUser(out long UserId, string Email, string Password, string UserName) { - return base.Channel.StoreNewUser(out UserId, Email, Password, UserName); + public GreetResponse1() { } - public string Greet(string Name) { - return base.Channel.Greet(Name); + public GreetResponse1(ServiceStack.Examples.Clients.Soap11ServiceReference.GreetResponse GreetResponse) { + this.GreetResponse = GreetResponse; } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class GetUsersRequest { - public ServiceStack.Examples.Clients.Soap11ServiceReference.ArrayOfLong GetFibonacciNumbers(System.Nullable Skip, System.Nullable Take) { - return base.Channel.GetFibonacciNumbers(Skip, Take); + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap11ServiceReference.GetUsers GetUsers; + + public GetUsersRequest() { } - public ServiceStack.Examples.Clients.Soap11ServiceReference.CustomerOrders GetNorthwindCustomerOrders(out ServiceStack.ServiceInterface.ServiceModel.ResponseStatus ResponseStatus, string CustomerId) { - return base.Channel.GetNorthwindCustomerOrders(out ResponseStatus, CustomerId); + public GetUsersRequest(ServiceStack.Examples.Clients.Soap11ServiceReference.GetUsers GetUsers) { + this.GetUsers = GetUsers; } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class GetUsersResponse1 { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap11ServiceReference.GetUsersResponse GetUsersResponse; - public ServiceStack.ServiceInterface.ServiceModel.ResponseStatus ResetMovieDatabase() { - return base.Channel.ResetMovieDatabase(); + public GetUsersResponse1() { } - public ServiceStack.ServiceInterface.ServiceModel.ResponseStatus GetAllUsers(out ServiceStack.Examples.Clients.Soap11ServiceReference.User[] Users) { - return base.Channel.GetAllUsers(out Users); + public GetUsersResponse1(ServiceStack.Examples.Clients.Soap11ServiceReference.GetUsersResponse GetUsersResponse) { + this.GetUsersResponse = GetUsersResponse; } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class GetFibonacciNumbersRequest { - public ServiceStack.Examples.Clients.Soap11ServiceReference.Movie[] Movies(out ServiceStack.ServiceInterface.ServiceModel.ResponseStatus ResponseStatus, string Id, ServiceStack.Examples.Clients.Soap11ServiceReference.Movie Movie) { - return base.Channel.Movies(out ResponseStatus, Id, Movie); + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap11ServiceReference.GetFibonacciNumbers GetFibonacciNumbers; + + public GetFibonacciNumbersRequest() { } - public ServiceStack.ServiceInterface.ServiceModel.ResponseStatus GetUsers(out ServiceStack.Examples.Clients.Soap11ServiceReference.User[] Users, long[] UserIds, string[] UserNames) { - return base.Channel.GetUsers(out Users, UserIds, UserNames); + public GetFibonacciNumbersRequest(ServiceStack.Examples.Clients.Soap11ServiceReference.GetFibonacciNumbers GetFibonacciNumbers) { + this.GetFibonacciNumbers = GetFibonacciNumbers; } } + [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] - [System.ServiceModel.ServiceContractAttribute(Namespace="http://schemas.servicestack.net/types", ConfigurationName="Soap11ServiceReference.IOneWay")] - public interface IOneWay { + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class GetFibonacciNumbersResponse1 { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap11ServiceReference.GetFibonacciNumbersResponse GetFibonacciNumbersResponse; + + public GetFibonacciNumbersResponse1() { + } + + public GetFibonacciNumbersResponse1(ServiceStack.Examples.Clients.Soap11ServiceReference.GetFibonacciNumbersResponse GetFibonacciNumbersResponse) { + this.GetFibonacciNumbersResponse = GetFibonacciNumbersResponse; + } } [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] - public interface IOneWayChannel : ServiceStack.Examples.Clients.Soap11ServiceReference.IOneWay, System.ServiceModel.IClientChannel { + public interface ISyncReplyChannel : ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply, System.ServiceModel.IClientChannel { } [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] - public partial class OneWayClient : System.ServiceModel.ClientBase, ServiceStack.Examples.Clients.Soap11ServiceReference.IOneWay { + public partial class SyncReplyClient : System.ServiceModel.ClientBase, ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply { - public OneWayClient() { + public SyncReplyClient() { } - public OneWayClient(string endpointConfigurationName) : + public SyncReplyClient(string endpointConfigurationName) : base(endpointConfigurationName) { } - public OneWayClient(string endpointConfigurationName, string remoteAddress) : + public SyncReplyClient(string endpointConfigurationName, string remoteAddress) : base(endpointConfigurationName, remoteAddress) { } - public OneWayClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : + public SyncReplyClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : base(endpointConfigurationName, remoteAddress) { } - public OneWayClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : + public SyncReplyClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : base(binding, remoteAddress) { } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + ServiceStack.Examples.Clients.Soap11ServiceReference.StoreLogsResponse1 ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply.StoreLogs(ServiceStack.Examples.Clients.Soap11ServiceReference.StoreLogsRequest request) { + return base.Channel.StoreLogs(request); + } + + public ServiceStack.Examples.Clients.Soap11ServiceReference.StoreLogsResponse StoreLogs(ServiceStack.Examples.Clients.Soap11ServiceReference.StoreLogs StoreLogs1) { + ServiceStack.Examples.Clients.Soap11ServiceReference.StoreLogsRequest inValue = new ServiceStack.Examples.Clients.Soap11ServiceReference.StoreLogsRequest(); + inValue.StoreLogs = StoreLogs1; + ServiceStack.Examples.Clients.Soap11ServiceReference.StoreLogsResponse1 retVal = ((ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply)(this)).StoreLogs(inValue); + return retVal.StoreLogsResponse; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply.StoreLogsAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.StoreLogsRequest request) { + return base.Channel.StoreLogsAsync(request); + } + + public System.Threading.Tasks.Task StoreLogsAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.StoreLogs StoreLogs) { + ServiceStack.Examples.Clients.Soap11ServiceReference.StoreLogsRequest inValue = new ServiceStack.Examples.Clients.Soap11ServiceReference.StoreLogsRequest(); + inValue.StoreLogs = StoreLogs; + return ((ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply)(this)).StoreLogsAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + ServiceStack.Examples.Clients.Soap11ServiceReference.ResetMovieDatabaseResponse1 ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply.ResetMovieDatabase(ServiceStack.Examples.Clients.Soap11ServiceReference.ResetMovieDatabaseRequest request) { + return base.Channel.ResetMovieDatabase(request); + } + + public ServiceStack.Examples.Clients.Soap11ServiceReference.ResetMovieDatabaseResponse ResetMovieDatabase(ServiceStack.Examples.Clients.Soap11ServiceReference.ResetMovieDatabase ResetMovieDatabase1) { + ServiceStack.Examples.Clients.Soap11ServiceReference.ResetMovieDatabaseRequest inValue = new ServiceStack.Examples.Clients.Soap11ServiceReference.ResetMovieDatabaseRequest(); + inValue.ResetMovieDatabase = ResetMovieDatabase1; + ServiceStack.Examples.Clients.Soap11ServiceReference.ResetMovieDatabaseResponse1 retVal = ((ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply)(this)).ResetMovieDatabase(inValue); + return retVal.ResetMovieDatabaseResponse; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply.ResetMovieDatabaseAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.ResetMovieDatabaseRequest request) { + return base.Channel.ResetMovieDatabaseAsync(request); + } + + public System.Threading.Tasks.Task ResetMovieDatabaseAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.ResetMovieDatabase ResetMovieDatabase) { + ServiceStack.Examples.Clients.Soap11ServiceReference.ResetMovieDatabaseRequest inValue = new ServiceStack.Examples.Clients.Soap11ServiceReference.ResetMovieDatabaseRequest(); + inValue.ResetMovieDatabase = ResetMovieDatabase; + return ((ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply)(this)).ResetMovieDatabaseAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + ServiceStack.Examples.Clients.Soap11ServiceReference.MoviesResponse1 ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply.Movies(ServiceStack.Examples.Clients.Soap11ServiceReference.MoviesRequest request) { + return base.Channel.Movies(request); + } + + public ServiceStack.Examples.Clients.Soap11ServiceReference.MoviesResponse Movies(ServiceStack.Examples.Clients.Soap11ServiceReference.Movies Movies1) { + ServiceStack.Examples.Clients.Soap11ServiceReference.MoviesRequest inValue = new ServiceStack.Examples.Clients.Soap11ServiceReference.MoviesRequest(); + inValue.Movies = Movies1; + ServiceStack.Examples.Clients.Soap11ServiceReference.MoviesResponse1 retVal = ((ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply)(this)).Movies(inValue); + return retVal.MoviesResponse; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply.MoviesAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.MoviesRequest request) { + return base.Channel.MoviesAsync(request); + } + + public System.Threading.Tasks.Task MoviesAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.Movies Movies) { + ServiceStack.Examples.Clients.Soap11ServiceReference.MoviesRequest inValue = new ServiceStack.Examples.Clients.Soap11ServiceReference.MoviesRequest(); + inValue.Movies = Movies; + return ((ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply)(this)).MoviesAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + ServiceStack.Examples.Clients.Soap11ServiceReference.GetFactorialResponse1 ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply.GetFactorial(ServiceStack.Examples.Clients.Soap11ServiceReference.GetFactorialRequest request) { + return base.Channel.GetFactorial(request); + } + + public ServiceStack.Examples.Clients.Soap11ServiceReference.GetFactorialResponse GetFactorial(ServiceStack.Examples.Clients.Soap11ServiceReference.GetFactorial GetFactorial1) { + ServiceStack.Examples.Clients.Soap11ServiceReference.GetFactorialRequest inValue = new ServiceStack.Examples.Clients.Soap11ServiceReference.GetFactorialRequest(); + inValue.GetFactorial = GetFactorial1; + ServiceStack.Examples.Clients.Soap11ServiceReference.GetFactorialResponse1 retVal = ((ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply)(this)).GetFactorial(inValue); + return retVal.GetFactorialResponse; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply.GetFactorialAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.GetFactorialRequest request) { + return base.Channel.GetFactorialAsync(request); + } + + public System.Threading.Tasks.Task GetFactorialAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.GetFactorial GetFactorial) { + ServiceStack.Examples.Clients.Soap11ServiceReference.GetFactorialRequest inValue = new ServiceStack.Examples.Clients.Soap11ServiceReference.GetFactorialRequest(); + inValue.GetFactorial = GetFactorial; + return ((ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply)(this)).GetFactorialAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + ServiceStack.Examples.Clients.Soap11ServiceReference.GetAllUsersResponse1 ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply.GetAllUsers(ServiceStack.Examples.Clients.Soap11ServiceReference.GetAllUsersRequest request) { + return base.Channel.GetAllUsers(request); + } + + public ServiceStack.Examples.Clients.Soap11ServiceReference.GetAllUsersResponse GetAllUsers(ServiceStack.Examples.Clients.Soap11ServiceReference.GetAllUsers GetAllUsers1) { + ServiceStack.Examples.Clients.Soap11ServiceReference.GetAllUsersRequest inValue = new ServiceStack.Examples.Clients.Soap11ServiceReference.GetAllUsersRequest(); + inValue.GetAllUsers = GetAllUsers1; + ServiceStack.Examples.Clients.Soap11ServiceReference.GetAllUsersResponse1 retVal = ((ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply)(this)).GetAllUsers(inValue); + return retVal.GetAllUsersResponse; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply.GetAllUsersAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.GetAllUsersRequest request) { + return base.Channel.GetAllUsersAsync(request); + } + + public System.Threading.Tasks.Task GetAllUsersAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.GetAllUsers GetAllUsers) { + ServiceStack.Examples.Clients.Soap11ServiceReference.GetAllUsersRequest inValue = new ServiceStack.Examples.Clients.Soap11ServiceReference.GetAllUsersRequest(); + inValue.GetAllUsers = GetAllUsers; + return ((ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply)(this)).GetAllUsersAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + ServiceStack.Examples.Clients.Soap11ServiceReference.GetNorthwindCustomerOrdersResponse1 ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply.GetNorthwindCustomerOrders(ServiceStack.Examples.Clients.Soap11ServiceReference.GetNorthwindCustomerOrdersRequest request) { + return base.Channel.GetNorthwindCustomerOrders(request); + } + + public ServiceStack.Examples.Clients.Soap11ServiceReference.GetNorthwindCustomerOrdersResponse GetNorthwindCustomerOrders(ServiceStack.Examples.Clients.Soap11ServiceReference.GetNorthwindCustomerOrders GetNorthwindCustomerOrders1) { + ServiceStack.Examples.Clients.Soap11ServiceReference.GetNorthwindCustomerOrdersRequest inValue = new ServiceStack.Examples.Clients.Soap11ServiceReference.GetNorthwindCustomerOrdersRequest(); + inValue.GetNorthwindCustomerOrders = GetNorthwindCustomerOrders1; + ServiceStack.Examples.Clients.Soap11ServiceReference.GetNorthwindCustomerOrdersResponse1 retVal = ((ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply)(this)).GetNorthwindCustomerOrders(inValue); + return retVal.GetNorthwindCustomerOrdersResponse; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply.GetNorthwindCustomerOrdersAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.GetNorthwindCustomerOrdersRequest request) { + return base.Channel.GetNorthwindCustomerOrdersAsync(request); + } + + public System.Threading.Tasks.Task GetNorthwindCustomerOrdersAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.GetNorthwindCustomerOrders GetNorthwindCustomerOrders) { + ServiceStack.Examples.Clients.Soap11ServiceReference.GetNorthwindCustomerOrdersRequest inValue = new ServiceStack.Examples.Clients.Soap11ServiceReference.GetNorthwindCustomerOrdersRequest(); + inValue.GetNorthwindCustomerOrders = GetNorthwindCustomerOrders; + return ((ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply)(this)).GetNorthwindCustomerOrdersAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + ServiceStack.Examples.Clients.Soap11ServiceReference.StoreNewUserResponse1 ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply.StoreNewUser(ServiceStack.Examples.Clients.Soap11ServiceReference.StoreNewUserRequest request) { + return base.Channel.StoreNewUser(request); + } + + public ServiceStack.Examples.Clients.Soap11ServiceReference.StoreNewUserResponse StoreNewUser(ServiceStack.Examples.Clients.Soap11ServiceReference.StoreNewUser StoreNewUser1) { + ServiceStack.Examples.Clients.Soap11ServiceReference.StoreNewUserRequest inValue = new ServiceStack.Examples.Clients.Soap11ServiceReference.StoreNewUserRequest(); + inValue.StoreNewUser = StoreNewUser1; + ServiceStack.Examples.Clients.Soap11ServiceReference.StoreNewUserResponse1 retVal = ((ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply)(this)).StoreNewUser(inValue); + return retVal.StoreNewUserResponse; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply.StoreNewUserAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.StoreNewUserRequest request) { + return base.Channel.StoreNewUserAsync(request); + } + + public System.Threading.Tasks.Task StoreNewUserAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.StoreNewUser StoreNewUser) { + ServiceStack.Examples.Clients.Soap11ServiceReference.StoreNewUserRequest inValue = new ServiceStack.Examples.Clients.Soap11ServiceReference.StoreNewUserRequest(); + inValue.StoreNewUser = StoreNewUser; + return ((ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply)(this)).StoreNewUserAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + ServiceStack.Examples.Clients.Soap11ServiceReference.DeleteAllUsersResponse1 ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply.DeleteAllUsers(ServiceStack.Examples.Clients.Soap11ServiceReference.DeleteAllUsersRequest request) { + return base.Channel.DeleteAllUsers(request); + } + + public ServiceStack.Examples.Clients.Soap11ServiceReference.DeleteAllUsersResponse DeleteAllUsers(ServiceStack.Examples.Clients.Soap11ServiceReference.DeleteAllUsers DeleteAllUsers1) { + ServiceStack.Examples.Clients.Soap11ServiceReference.DeleteAllUsersRequest inValue = new ServiceStack.Examples.Clients.Soap11ServiceReference.DeleteAllUsersRequest(); + inValue.DeleteAllUsers = DeleteAllUsers1; + ServiceStack.Examples.Clients.Soap11ServiceReference.DeleteAllUsersResponse1 retVal = ((ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply)(this)).DeleteAllUsers(inValue); + return retVal.DeleteAllUsersResponse; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply.DeleteAllUsersAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.DeleteAllUsersRequest request) { + return base.Channel.DeleteAllUsersAsync(request); + } + + public System.Threading.Tasks.Task DeleteAllUsersAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.DeleteAllUsers DeleteAllUsers) { + ServiceStack.Examples.Clients.Soap11ServiceReference.DeleteAllUsersRequest inValue = new ServiceStack.Examples.Clients.Soap11ServiceReference.DeleteAllUsersRequest(); + inValue.DeleteAllUsers = DeleteAllUsers; + return ((ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply)(this)).DeleteAllUsersAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + ServiceStack.Examples.Clients.Soap11ServiceReference.GreetResponse1 ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply.Greet(ServiceStack.Examples.Clients.Soap11ServiceReference.GreetRequest request) { + return base.Channel.Greet(request); + } + + public ServiceStack.Examples.Clients.Soap11ServiceReference.GreetResponse Greet(ServiceStack.Examples.Clients.Soap11ServiceReference.Greet Greet1) { + ServiceStack.Examples.Clients.Soap11ServiceReference.GreetRequest inValue = new ServiceStack.Examples.Clients.Soap11ServiceReference.GreetRequest(); + inValue.Greet = Greet1; + ServiceStack.Examples.Clients.Soap11ServiceReference.GreetResponse1 retVal = ((ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply)(this)).Greet(inValue); + return retVal.GreetResponse; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply.GreetAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.GreetRequest request) { + return base.Channel.GreetAsync(request); + } + + public System.Threading.Tasks.Task GreetAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.Greet Greet) { + ServiceStack.Examples.Clients.Soap11ServiceReference.GreetRequest inValue = new ServiceStack.Examples.Clients.Soap11ServiceReference.GreetRequest(); + inValue.Greet = Greet; + return ((ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply)(this)).GreetAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + ServiceStack.Examples.Clients.Soap11ServiceReference.GetUsersResponse1 ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply.GetUsers(ServiceStack.Examples.Clients.Soap11ServiceReference.GetUsersRequest request) { + return base.Channel.GetUsers(request); + } + + public ServiceStack.Examples.Clients.Soap11ServiceReference.GetUsersResponse GetUsers(ServiceStack.Examples.Clients.Soap11ServiceReference.GetUsers GetUsers1) { + ServiceStack.Examples.Clients.Soap11ServiceReference.GetUsersRequest inValue = new ServiceStack.Examples.Clients.Soap11ServiceReference.GetUsersRequest(); + inValue.GetUsers = GetUsers1; + ServiceStack.Examples.Clients.Soap11ServiceReference.GetUsersResponse1 retVal = ((ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply)(this)).GetUsers(inValue); + return retVal.GetUsersResponse; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply.GetUsersAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.GetUsersRequest request) { + return base.Channel.GetUsersAsync(request); + } + + public System.Threading.Tasks.Task GetUsersAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.GetUsers GetUsers) { + ServiceStack.Examples.Clients.Soap11ServiceReference.GetUsersRequest inValue = new ServiceStack.Examples.Clients.Soap11ServiceReference.GetUsersRequest(); + inValue.GetUsers = GetUsers; + return ((ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply)(this)).GetUsersAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + ServiceStack.Examples.Clients.Soap11ServiceReference.GetFibonacciNumbersResponse1 ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply.GetFibonacciNumbers(ServiceStack.Examples.Clients.Soap11ServiceReference.GetFibonacciNumbersRequest request) { + return base.Channel.GetFibonacciNumbers(request); + } + + public ServiceStack.Examples.Clients.Soap11ServiceReference.GetFibonacciNumbersResponse GetFibonacciNumbers(ServiceStack.Examples.Clients.Soap11ServiceReference.GetFibonacciNumbers GetFibonacciNumbers1) { + ServiceStack.Examples.Clients.Soap11ServiceReference.GetFibonacciNumbersRequest inValue = new ServiceStack.Examples.Clients.Soap11ServiceReference.GetFibonacciNumbersRequest(); + inValue.GetFibonacciNumbers = GetFibonacciNumbers1; + ServiceStack.Examples.Clients.Soap11ServiceReference.GetFibonacciNumbersResponse1 retVal = ((ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply)(this)).GetFibonacciNumbers(inValue); + return retVal.GetFibonacciNumbersResponse; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply.GetFibonacciNumbersAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.GetFibonacciNumbersRequest request) { + return base.Channel.GetFibonacciNumbersAsync(request); + } + + public System.Threading.Tasks.Task GetFibonacciNumbersAsync(ServiceStack.Examples.Clients.Soap11ServiceReference.GetFibonacciNumbers GetFibonacciNumbers) { + ServiceStack.Examples.Clients.Soap11ServiceReference.GetFibonacciNumbersRequest inValue = new ServiceStack.Examples.Clients.Soap11ServiceReference.GetFibonacciNumbersRequest(); + inValue.GetFibonacciNumbers = GetFibonacciNumbers; + return ((ServiceStack.Examples.Clients.Soap11ServiceReference.ISyncReply)(this)).GetFibonacciNumbersAsync(inValue); + } } } diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap11ServiceReference/Reference.svcmap b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap11ServiceReference/Reference.svcmap index a0230666..7b988296 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap11ServiceReference/Reference.svcmap +++ b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap11ServiceReference/Reference.svcmap @@ -1,7 +1,8 @@ - + false + true true false @@ -11,16 +12,17 @@ true Auto - true + true + false - + - + diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap11ServiceReference/ServiceStack.Examples.Clients.Soap11ServiceReference.ArrayOfLong.datasource b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap11ServiceReference/ServiceStack.Examples.Clients.Soap11ServiceReference.ArrayOfLong.datasource deleted file mode 100644 index fef002db..00000000 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap11ServiceReference/ServiceStack.Examples.Clients.Soap11ServiceReference.ArrayOfLong.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - ServiceStack.Examples.Clients.Soap11ServiceReference.ArrayOfLong, Service References.Soap11ServiceReference.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap11ServiceReference/ServiceStack.Examples.Clients.Soap11ServiceReference.CustomerOrders.datasource b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap11ServiceReference/ServiceStack.Examples.Clients.Soap11ServiceReference.CustomerOrders.datasource deleted file mode 100644 index 41d14c5d..00000000 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap11ServiceReference/ServiceStack.Examples.Clients.Soap11ServiceReference.CustomerOrders.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - ServiceStack.Examples.Clients.Soap11ServiceReference.CustomerOrders, Service References.Soap11ServiceReference.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap11ServiceReference/ServiceStack.Examples.Clients.Soap11ServiceReference.Movie.datasource b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap11ServiceReference/ServiceStack.Examples.Clients.Soap11ServiceReference.Movie.datasource deleted file mode 100644 index 7593e8fe..00000000 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap11ServiceReference/ServiceStack.Examples.Clients.Soap11ServiceReference.Movie.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - ServiceStack.Examples.Clients.Soap11ServiceReference.Movie, Service References.Soap11ServiceReference.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap11ServiceReference/ServiceStack.Examples.Clients.Soap11ServiceReference.User.datasource b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap11ServiceReference/ServiceStack.Examples.Clients.Soap11ServiceReference.User.datasource deleted file mode 100644 index 194f04ed..00000000 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap11ServiceReference/ServiceStack.Examples.Clients.Soap11ServiceReference.User.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - ServiceStack.Examples.Clients.Soap11ServiceReference.User, Service References.Soap11ServiceReference.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap11ServiceReference/Soap11.wsdl b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap11ServiceReference/Soap11.wsdl index c2045a51..1a91b16c 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap11ServiceReference/Soap11.wsdl +++ b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap11ServiceReference/Soap11.wsdl @@ -1,5 +1,5 @@ - + @@ -42,101 +42,38 @@ - + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - + - - + + - + - - - - - - - - - - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - + + - + - + @@ -148,24 +85,30 @@ - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - @@ -177,33 +120,45 @@ - + + + + + - - - + + - - + + - - + - - + + - + + + + + - - + + - + - + + + + + + + @@ -236,83 +191,73 @@ - + - - + + + + + + + + + + + - - - + + + + + + - - + + - - + + - + - - + + - - - - - + - - - - - - - - - - - - - - - - - - + + + - + + + + + + + + + - - - - - - + - + - - - - - - - + @@ -323,153 +268,179 @@ - + + + + + + + + + + + + + + + + + + + + + - - + - - + + - - + + + - - - - + + - + + - + + + + + + + + + - - + + - - + + - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - + + + + + + + - - - + + + + + + + + + + + - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + - - - + + @@ -477,8 +448,8 @@ - - + + @@ -486,8 +457,8 @@ - - + + @@ -495,8 +466,8 @@ - - + + @@ -504,8 +475,8 @@ - - + + @@ -513,8 +484,8 @@ - - + + @@ -522,8 +493,8 @@ - - + + @@ -531,8 +502,8 @@ - - + + @@ -540,8 +511,8 @@ - - + + @@ -549,8 +520,8 @@ - - + + @@ -558,8 +529,8 @@ - - + + @@ -568,17 +539,9 @@ - - - - - - - - - + \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap11ServiceReference/configuration.svcinfo b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap11ServiceReference/configuration.svcinfo index 8288ae71..faf89208 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap11ServiceReference/configuration.svcinfo +++ b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap11ServiceReference/configuration.svcinfo @@ -2,11 +2,9 @@ - - + - - + \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap11ServiceReference/configuration91.svcinfo b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap11ServiceReference/configuration91.svcinfo index b6fbcc3d..4369e2b9 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap11ServiceReference/configuration91.svcinfo +++ b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap11ServiceReference/configuration91.svcinfo @@ -1,382 +1,200 @@ - + - + BasicHttpBinding_ISyncReply - - 00:01:00 + + - - 00:01:00 + + - - 00:10:00 + + - - 00:01:00 + + - - False + + - - False + + - + StrongWildcard - - 65536 - - - 524288 + + - + 65536 - - Text - - + - - System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement - - - 32 - - - 8192 - - - 16384 - - - 4096 - - - 16384 - - - System.ServiceModel.Configuration.BasicHttpSecurityElement - - - None - - - System.ServiceModel.Configuration.HttpTransportSecurityElement - - - None - - - None - - + - - System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement - - - Never + + System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement - - TransportSelected + + 0 - - (Collection) + + 0 - - System.ServiceModel.Configuration.BasicHttpMessageSecurityElement + + 0 - - UserName + + 0 - - Basic256 + + 0 - + System.Text.UTF8Encoding - + Buffered - - True - - - - - - - BasicHttpBinding_IOneWay - - - 00:01:00 - - - 00:01:00 - - - 00:10:00 - - - 00:01:00 - - - False - - - False - - - StrongWildcard - - - 65536 - - - 524288 - - - 65536 - - - Text - - + - - System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement - - - 32 - - - 8192 - - - 16384 - - - 4096 - - - 16384 + + Text - + System.ServiceModel.Configuration.BasicHttpSecurityElement - + None - + System.ServiceModel.Configuration.HttpTransportSecurityElement - + None - + None - - - - + System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement - + Never - + TransportSelected - + (Collection) - + + + + System.ServiceModel.Configuration.BasicHttpMessageSecurityElement - + UserName - - Basic256 - - - System.Text.UTF8Encoding - - - Buffered - - - True + + Default - + - - http://localhost/ServiceStack.Examples.Host.Web/ServiceStack/Soap11 + + http://localhost:64067/ServiceStack/soap11 - + - + basicHttpBinding - + BasicHttpBinding_ISyncReply - + Soap11ServiceReference.ISyncReply - + System.ServiceModel.Configuration.AddressHeaderCollectionElement - + <Header /> - + System.ServiceModel.Configuration.IdentityElement - + System.ServiceModel.Configuration.UserPrincipalNameElement - + - + System.ServiceModel.Configuration.ServicePrincipalNameElement - + - + System.ServiceModel.Configuration.DnsElement - + - + System.ServiceModel.Configuration.RsaElement - + - + System.ServiceModel.Configuration.CertificateElement - + - + System.ServiceModel.Configuration.CertificateReferenceElement - + My - + LocalMachine - + FindBySubjectDistinguishedName - + - + False - + BasicHttpBinding_ISyncReply - - - - - - http://localhost/ServiceStack.Examples.Host.Web/ServiceStack/Soap11 - - - - - - basicHttpBinding - - - BasicHttpBinding_IOneWay - - - Soap11ServiceReference.IOneWay - - - System.ServiceModel.Configuration.AddressHeaderCollectionElement - - - <Header /> - - - System.ServiceModel.Configuration.IdentityElement - - - System.ServiceModel.Configuration.UserPrincipalNameElement - - - - - - System.ServiceModel.Configuration.ServicePrincipalNameElement - - - - - - System.ServiceModel.Configuration.DnsElement - - - - - - System.ServiceModel.Configuration.RsaElement - - + - - System.ServiceModel.Configuration.CertificateElement - - + - - System.ServiceModel.Configuration.CertificateReferenceElement - - - My - - - LocalMachine - - - FindBySubjectDistinguishedName - - - - - - False - - - BasicHttpBinding_IOneWay - diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap12ServiceReference/Reference.cs b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap12ServiceReference/Reference.cs index b4309d20..1faf6115 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap12ServiceReference/Reference.cs +++ b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap12ServiceReference/Reference.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:4.0.30319.18051 +// Runtime Version:4.0.30319.18449 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -15,18 +15,15 @@ namespace ServiceStack.Examples.Clients.Soap12ServiceReference { [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] - [System.Runtime.Serialization.DataContractAttribute(Name="CustomerOrders", Namespace="http://schemas.servicestack.net/types")] + [System.Runtime.Serialization.DataContractAttribute(Name="StoreLogs", Namespace="http://schemas.servicestack.net/types")] [System.SerializableAttribute()] - public partial class CustomerOrders : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + public partial class StoreLogs : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { [System.NonSerializedAttribute()] private System.Runtime.Serialization.ExtensionDataObject extensionDataField; [System.Runtime.Serialization.OptionalFieldAttribute()] - private ServiceStack.Examples.Clients.Soap12ServiceReference.Customer CustomerField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private ServiceStack.Examples.Clients.Soap12ServiceReference.Order[] OrdersField; + private ServiceStack.Examples.Clients.Soap12ServiceReference.Logger[] LoggersField; [global::System.ComponentModel.BrowsableAttribute(false)] public System.Runtime.Serialization.ExtensionDataObject ExtensionData { @@ -39,28 +36,44 @@ public System.Runtime.Serialization.ExtensionDataObject ExtensionData { } [System.Runtime.Serialization.DataMemberAttribute()] - public ServiceStack.Examples.Clients.Soap12ServiceReference.Customer Customer { + public ServiceStack.Examples.Clients.Soap12ServiceReference.Logger[] Loggers { get { - return this.CustomerField; + return this.LoggersField; } set { - if ((object.ReferenceEquals(this.CustomerField, value) != true)) { - this.CustomerField = value; - this.RaisePropertyChanged("Customer"); + if ((object.ReferenceEquals(this.LoggersField, value) != true)) { + this.LoggersField = value; + this.RaisePropertyChanged("Loggers"); } } } - [System.Runtime.Serialization.DataMemberAttribute()] - public ServiceStack.Examples.Clients.Soap12ServiceReference.Order[] Orders { + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="Logger", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class Logger : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { get { - return this.OrdersField; + return this.extensionDataField; } set { - if ((object.ReferenceEquals(this.OrdersField, value) != true)) { - this.OrdersField = value; - this.RaisePropertyChanged("Orders"); - } + this.extensionDataField = value; } } @@ -76,45 +89,18 @@ protected void RaisePropertyChanged(string propertyName) { [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] - [System.Runtime.Serialization.DataContractAttribute(Name="Customer", Namespace="http://schemas.servicestack.net/types")] + [System.Runtime.Serialization.DataContractAttribute(Name="StoreLogsResponse", Namespace="http://schemas.servicestack.net/types")] [System.SerializableAttribute()] - public partial class Customer : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + public partial class StoreLogsResponse : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { [System.NonSerializedAttribute()] private System.Runtime.Serialization.ExtensionDataObject extensionDataField; [System.Runtime.Serialization.OptionalFieldAttribute()] - private string AddressField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string CityField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string CompanyNameField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string ContactNameField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string ContactTitleField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string CountryField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string FaxField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string IdField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string PhoneField; + private ServiceStack.Examples.Clients.Soap12ServiceReference.Logger[] ExistingLogsField; [System.Runtime.Serialization.OptionalFieldAttribute()] - private string PostalCodeField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string RegionField; + private ServiceStack.Examples.Clients.Soap12ServiceReference.ResponseStatus ResponseStatusField; [global::System.ComponentModel.BrowsableAttribute(false)] public System.Runtime.Serialization.ExtensionDataObject ExtensionData { @@ -127,144 +113,120 @@ public System.Runtime.Serialization.ExtensionDataObject ExtensionData { } [System.Runtime.Serialization.DataMemberAttribute()] - public string Address { + public ServiceStack.Examples.Clients.Soap12ServiceReference.Logger[] ExistingLogs { get { - return this.AddressField; + return this.ExistingLogsField; } set { - if ((object.ReferenceEquals(this.AddressField, value) != true)) { - this.AddressField = value; - this.RaisePropertyChanged("Address"); + if ((object.ReferenceEquals(this.ExistingLogsField, value) != true)) { + this.ExistingLogsField = value; + this.RaisePropertyChanged("ExistingLogs"); } } } [System.Runtime.Serialization.DataMemberAttribute()] - public string City { + public ServiceStack.Examples.Clients.Soap12ServiceReference.ResponseStatus ResponseStatus { get { - return this.CityField; + return this.ResponseStatusField; } set { - if ((object.ReferenceEquals(this.CityField, value) != true)) { - this.CityField = value; - this.RaisePropertyChanged("City"); + if ((object.ReferenceEquals(this.ResponseStatusField, value) != true)) { + this.ResponseStatusField = value; + this.RaisePropertyChanged("ResponseStatus"); } } } - [System.Runtime.Serialization.DataMemberAttribute()] - public string CompanyName { - get { - return this.CompanyNameField; - } - set { - if ((object.ReferenceEquals(this.CompanyNameField, value) != true)) { - this.CompanyNameField = value; - this.RaisePropertyChanged("CompanyName"); - } - } - } + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; - [System.Runtime.Serialization.DataMemberAttribute()] - public string ContactName { - get { - return this.ContactNameField; - } - set { - if ((object.ReferenceEquals(this.ContactNameField, value) != true)) { - this.ContactNameField = value; - this.RaisePropertyChanged("ContactName"); - } + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); } } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="ResponseStatus", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class ResponseStatus : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { - [System.Runtime.Serialization.DataMemberAttribute()] - public string ContactTitle { - get { - return this.ContactTitleField; - } - set { - if ((object.ReferenceEquals(this.ContactTitleField, value) != true)) { - this.ContactTitleField = value; - this.RaisePropertyChanged("ContactTitle"); - } - } - } + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; - [System.Runtime.Serialization.DataMemberAttribute()] - public string Country { - get { - return this.CountryField; - } - set { - if ((object.ReferenceEquals(this.CountryField, value) != true)) { - this.CountryField = value; - this.RaisePropertyChanged("Country"); - } - } - } + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string ErrorCodeField; - [System.Runtime.Serialization.DataMemberAttribute()] - public string Fax { + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string MessageField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string StackTraceField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private ServiceStack.Examples.Clients.Soap12ServiceReference.ResponseError[] ErrorsField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { get { - return this.FaxField; + return this.extensionDataField; } set { - if ((object.ReferenceEquals(this.FaxField, value) != true)) { - this.FaxField = value; - this.RaisePropertyChanged("Fax"); - } + this.extensionDataField = value; } } [System.Runtime.Serialization.DataMemberAttribute()] - public string Id { + public string ErrorCode { get { - return this.IdField; + return this.ErrorCodeField; } set { - if ((object.ReferenceEquals(this.IdField, value) != true)) { - this.IdField = value; - this.RaisePropertyChanged("Id"); + if ((object.ReferenceEquals(this.ErrorCodeField, value) != true)) { + this.ErrorCodeField = value; + this.RaisePropertyChanged("ErrorCode"); } } } [System.Runtime.Serialization.DataMemberAttribute()] - public string Phone { + public string Message { get { - return this.PhoneField; + return this.MessageField; } set { - if ((object.ReferenceEquals(this.PhoneField, value) != true)) { - this.PhoneField = value; - this.RaisePropertyChanged("Phone"); + if ((object.ReferenceEquals(this.MessageField, value) != true)) { + this.MessageField = value; + this.RaisePropertyChanged("Message"); } } } [System.Runtime.Serialization.DataMemberAttribute()] - public string PostalCode { + public string StackTrace { get { - return this.PostalCodeField; + return this.StackTraceField; } set { - if ((object.ReferenceEquals(this.PostalCodeField, value) != true)) { - this.PostalCodeField = value; - this.RaisePropertyChanged("PostalCode"); + if ((object.ReferenceEquals(this.StackTraceField, value) != true)) { + this.StackTraceField = value; + this.RaisePropertyChanged("StackTrace"); } } } - [System.Runtime.Serialization.DataMemberAttribute()] - public string Region { + [System.Runtime.Serialization.DataMemberAttribute(Order=3)] + public ServiceStack.Examples.Clients.Soap12ServiceReference.ResponseError[] Errors { get { - return this.RegionField; + return this.ErrorsField; } set { - if ((object.ReferenceEquals(this.RegionField, value) != true)) { - this.RegionField = value; - this.RaisePropertyChanged("Region"); + if ((object.ReferenceEquals(this.ErrorsField, value) != true)) { + this.ErrorsField = value; + this.RaisePropertyChanged("Errors"); } } } @@ -281,18 +243,21 @@ protected void RaisePropertyChanged(string propertyName) { [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] - [System.Runtime.Serialization.DataContractAttribute(Name="Order", Namespace="http://schemas.servicestack.net/types")] + [System.Runtime.Serialization.DataContractAttribute(Name="ResponseError", Namespace="http://schemas.servicestack.net/types")] [System.SerializableAttribute()] - public partial class Order : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + public partial class ResponseError : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { [System.NonSerializedAttribute()] private System.Runtime.Serialization.ExtensionDataObject extensionDataField; [System.Runtime.Serialization.OptionalFieldAttribute()] - private ServiceStack.Examples.Clients.Soap12ServiceReference.OrderDetail[] OrderDetailsField; + private string ErrorCodeField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string FieldNameField; [System.Runtime.Serialization.OptionalFieldAttribute()] - private ServiceStack.Examples.Clients.Soap12ServiceReference.OrderHeader OrderHeaderField; + private string MessageField; [global::System.ComponentModel.BrowsableAttribute(false)] public System.Runtime.Serialization.ExtensionDataObject ExtensionData { @@ -304,28 +269,41 @@ public System.Runtime.Serialization.ExtensionDataObject ExtensionData { } } - [System.Runtime.Serialization.DataMemberAttribute()] - public ServiceStack.Examples.Clients.Soap12ServiceReference.OrderDetail[] OrderDetails { + [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false)] + public string ErrorCode { get { - return this.OrderDetailsField; + return this.ErrorCodeField; } set { - if ((object.ReferenceEquals(this.OrderDetailsField, value) != true)) { - this.OrderDetailsField = value; - this.RaisePropertyChanged("OrderDetails"); + if ((object.ReferenceEquals(this.ErrorCodeField, value) != true)) { + this.ErrorCodeField = value; + this.RaisePropertyChanged("ErrorCode"); } } } - [System.Runtime.Serialization.DataMemberAttribute()] - public ServiceStack.Examples.Clients.Soap12ServiceReference.OrderHeader OrderHeader { + [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false)] + public string FieldName { + get { + return this.FieldNameField; + } + set { + if ((object.ReferenceEquals(this.FieldNameField, value) != true)) { + this.FieldNameField = value; + this.RaisePropertyChanged("FieldName"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false)] + public string Message { get { - return this.OrderHeaderField; + return this.MessageField; } set { - if ((object.ReferenceEquals(this.OrderHeaderField, value) != true)) { - this.OrderHeaderField = value; - this.RaisePropertyChanged("OrderHeader"); + if ((object.ReferenceEquals(this.MessageField, value) != true)) { + this.MessageField = value; + this.RaisePropertyChanged("Message"); } } } @@ -342,54 +320,44 @@ protected void RaisePropertyChanged(string propertyName) { [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] - [System.Runtime.Serialization.DataContractAttribute(Name="OrderHeader", Namespace="http://schemas.servicestack.net/types")] + [System.Runtime.Serialization.DataContractAttribute(Name="ResetMovieDatabase", Namespace="http://schemas.servicestack.net/types")] [System.SerializableAttribute()] - public partial class OrderHeader : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + public partial class ResetMovieDatabase : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { [System.NonSerializedAttribute()] private System.Runtime.Serialization.ExtensionDataObject extensionDataField; - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string CustomerIdField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private int EmployeeIdField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private decimal FreightField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private int IdField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private System.Nullable OrderDateField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private System.Nullable RequiredDateField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string ShipAddressField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string ShipCityField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string ShipCountryField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string ShipNameField; + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string ShipPostalCodeField; + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string ShipRegionField; + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="ResetMovieDatabaseResponse", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class ResetMovieDatabaseResponse : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { - [System.Runtime.Serialization.OptionalFieldAttribute()] - private System.Nullable ShipViaField; + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; [System.Runtime.Serialization.OptionalFieldAttribute()] - private System.Nullable ShippedDateField; + private ServiceStack.Examples.Clients.Soap12ServiceReference.ResponseStatus ResponseStatusField; [global::System.ComponentModel.BrowsableAttribute(false)] public System.Runtime.Serialization.ExtensionDataObject ExtensionData { @@ -402,51 +370,60 @@ public System.Runtime.Serialization.ExtensionDataObject ExtensionData { } [System.Runtime.Serialization.DataMemberAttribute()] - public string CustomerId { + public ServiceStack.Examples.Clients.Soap12ServiceReference.ResponseStatus ResponseStatus { get { - return this.CustomerIdField; + return this.ResponseStatusField; } set { - if ((object.ReferenceEquals(this.CustomerIdField, value) != true)) { - this.CustomerIdField = value; - this.RaisePropertyChanged("CustomerId"); + if ((object.ReferenceEquals(this.ResponseStatusField, value) != true)) { + this.ResponseStatusField = value; + this.RaisePropertyChanged("ResponseStatus"); } } } - [System.Runtime.Serialization.DataMemberAttribute()] - public int EmployeeId { - get { - return this.EmployeeIdField; - } - set { - if ((this.EmployeeIdField.Equals(value) != true)) { - this.EmployeeIdField = value; - this.RaisePropertyChanged("EmployeeId"); - } + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); } } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="Movies", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class Movies : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { - [System.Runtime.Serialization.DataMemberAttribute()] - public decimal Freight { + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string IdField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private ServiceStack.Examples.Clients.Soap12ServiceReference.Movie MovieField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { get { - return this.FreightField; + return this.extensionDataField; } set { - if ((this.FreightField.Equals(value) != true)) { - this.FreightField = value; - this.RaisePropertyChanged("Freight"); - } + this.extensionDataField = value; } } [System.Runtime.Serialization.DataMemberAttribute()] - public int Id { + public string Id { get { return this.IdField; } set { - if ((this.IdField.Equals(value) != true)) { + if ((object.ReferenceEquals(this.IdField, value) != true)) { this.IdField = value; this.RaisePropertyChanged("Id"); } @@ -454,131 +431,149 @@ public int Id { } [System.Runtime.Serialization.DataMemberAttribute()] - public System.Nullable OrderDate { + public ServiceStack.Examples.Clients.Soap12ServiceReference.Movie Movie { get { - return this.OrderDateField; + return this.MovieField; } set { - if ((this.OrderDateField.Equals(value) != true)) { - this.OrderDateField = value; - this.RaisePropertyChanged("OrderDate"); + if ((object.ReferenceEquals(this.MovieField, value) != true)) { + this.MovieField = value; + this.RaisePropertyChanged("Movie"); } } } - [System.Runtime.Serialization.DataMemberAttribute()] - public System.Nullable RequiredDate { - get { - return this.RequiredDateField; - } - set { - if ((this.RequiredDateField.Equals(value) != true)) { - this.RequiredDateField = value; - this.RaisePropertyChanged("RequiredDate"); - } + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); } } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="Movie", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class Movie : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { - [System.Runtime.Serialization.DataMemberAttribute()] - public string ShipAddress { + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { get { - return this.ShipAddressField; + return this.extensionDataField; } set { - if ((object.ReferenceEquals(this.ShipAddressField, value) != true)) { - this.ShipAddressField = value; - this.RaisePropertyChanged("ShipAddress"); - } + this.extensionDataField = value; } } - [System.Runtime.Serialization.DataMemberAttribute()] - public string ShipCity { - get { - return this.ShipCityField; - } - set { - if ((object.ReferenceEquals(this.ShipCityField, value) != true)) { - this.ShipCityField = value; - this.RaisePropertyChanged("ShipCity"); - } + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); } } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="MoviesResponse", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class MoviesResponse : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { - [System.Runtime.Serialization.DataMemberAttribute()] - public string ShipCountry { + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private ServiceStack.Examples.Clients.Soap12ServiceReference.Movie[] MoviesField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private ServiceStack.Examples.Clients.Soap12ServiceReference.ResponseStatus ResponseStatusField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { get { - return this.ShipCountryField; + return this.extensionDataField; } set { - if ((object.ReferenceEquals(this.ShipCountryField, value) != true)) { - this.ShipCountryField = value; - this.RaisePropertyChanged("ShipCountry"); - } + this.extensionDataField = value; } } [System.Runtime.Serialization.DataMemberAttribute()] - public string ShipName { + public ServiceStack.Examples.Clients.Soap12ServiceReference.Movie[] Movies { get { - return this.ShipNameField; + return this.MoviesField; } set { - if ((object.ReferenceEquals(this.ShipNameField, value) != true)) { - this.ShipNameField = value; - this.RaisePropertyChanged("ShipName"); + if ((object.ReferenceEquals(this.MoviesField, value) != true)) { + this.MoviesField = value; + this.RaisePropertyChanged("Movies"); } } } [System.Runtime.Serialization.DataMemberAttribute()] - public string ShipPostalCode { + public ServiceStack.Examples.Clients.Soap12ServiceReference.ResponseStatus ResponseStatus { get { - return this.ShipPostalCodeField; + return this.ResponseStatusField; } set { - if ((object.ReferenceEquals(this.ShipPostalCodeField, value) != true)) { - this.ShipPostalCodeField = value; - this.RaisePropertyChanged("ShipPostalCode"); + if ((object.ReferenceEquals(this.ResponseStatusField, value) != true)) { + this.ResponseStatusField = value; + this.RaisePropertyChanged("ResponseStatus"); } } } - [System.Runtime.Serialization.DataMemberAttribute()] - public string ShipRegion { - get { - return this.ShipRegionField; - } - set { - if ((object.ReferenceEquals(this.ShipRegionField, value) != true)) { - this.ShipRegionField = value; - this.RaisePropertyChanged("ShipRegion"); - } + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); } } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="GetFactorial", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class GetFactorial : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { - [System.Runtime.Serialization.DataMemberAttribute()] - public System.Nullable ShipVia { + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private long ForNumberField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { get { - return this.ShipViaField; + return this.extensionDataField; } set { - if ((this.ShipViaField.Equals(value) != true)) { - this.ShipViaField = value; - this.RaisePropertyChanged("ShipVia"); - } + this.extensionDataField = value; } } [System.Runtime.Serialization.DataMemberAttribute()] - public System.Nullable ShippedDate { + public long ForNumber { get { - return this.ShippedDateField; + return this.ForNumberField; } set { - if ((this.ShippedDateField.Equals(value) != true)) { - this.ShippedDateField = value; - this.RaisePropertyChanged("ShippedDate"); + if ((this.ForNumberField.Equals(value) != true)) { + this.ForNumberField = value; + this.RaisePropertyChanged("ForNumber"); } } } @@ -595,27 +590,15 @@ protected void RaisePropertyChanged(string propertyName) { [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] - [System.Runtime.Serialization.DataContractAttribute(Name="OrderDetail", Namespace="http://schemas.servicestack.net/types")] + [System.Runtime.Serialization.DataContractAttribute(Name="GetFactorialResponse", Namespace="http://schemas.servicestack.net/types")] [System.SerializableAttribute()] - public partial class OrderDetail : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + public partial class GetFactorialResponse : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { [System.NonSerializedAttribute()] private System.Runtime.Serialization.ExtensionDataObject extensionDataField; [System.Runtime.Serialization.OptionalFieldAttribute()] - private double DiscountField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private int OrderIdField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private int ProductIdField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private short QuantityField; - - [System.Runtime.Serialization.OptionalFieldAttribute()] - private decimal UnitPriceField; + private long ResultField; [global::System.ComponentModel.BrowsableAttribute(false)] public System.Runtime.Serialization.ExtensionDataObject ExtensionData { @@ -628,66 +611,104 @@ public System.Runtime.Serialization.ExtensionDataObject ExtensionData { } [System.Runtime.Serialization.DataMemberAttribute()] - public double Discount { + public long Result { get { - return this.DiscountField; + return this.ResultField; } set { - if ((this.DiscountField.Equals(value) != true)) { - this.DiscountField = value; - this.RaisePropertyChanged("Discount"); + if ((this.ResultField.Equals(value) != true)) { + this.ResultField = value; + this.RaisePropertyChanged("Result"); } } } - [System.Runtime.Serialization.DataMemberAttribute()] - public int OrderId { + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="GetAllUsers", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class GetAllUsers : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { get { - return this.OrderIdField; + return this.extensionDataField; } set { - if ((this.OrderIdField.Equals(value) != true)) { - this.OrderIdField = value; - this.RaisePropertyChanged("OrderId"); - } + this.extensionDataField = value; } } - [System.Runtime.Serialization.DataMemberAttribute()] - public int ProductId { + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="GetAllUsersResponse", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class GetAllUsersResponse : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private ServiceStack.Examples.Clients.Soap12ServiceReference.ResponseStatus ResponseStatusField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private ServiceStack.Examples.Clients.Soap12ServiceReference.User[] UsersField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { get { - return this.ProductIdField; + return this.extensionDataField; } set { - if ((this.ProductIdField.Equals(value) != true)) { - this.ProductIdField = value; - this.RaisePropertyChanged("ProductId"); - } + this.extensionDataField = value; } } [System.Runtime.Serialization.DataMemberAttribute()] - public short Quantity { + public ServiceStack.Examples.Clients.Soap12ServiceReference.ResponseStatus ResponseStatus { get { - return this.QuantityField; + return this.ResponseStatusField; } set { - if ((this.QuantityField.Equals(value) != true)) { - this.QuantityField = value; - this.RaisePropertyChanged("Quantity"); + if ((object.ReferenceEquals(this.ResponseStatusField, value) != true)) { + this.ResponseStatusField = value; + this.RaisePropertyChanged("ResponseStatus"); } } } [System.Runtime.Serialization.DataMemberAttribute()] - public decimal UnitPrice { + public ServiceStack.Examples.Clients.Soap12ServiceReference.User[] Users { get { - return this.UnitPriceField; + return this.UsersField; } set { - if ((this.UnitPriceField.Equals(value) != true)) { - this.UnitPriceField = value; - this.RaisePropertyChanged("UnitPrice"); + if ((object.ReferenceEquals(this.UsersField, value) != true)) { + this.UsersField = value; + this.RaisePropertyChanged("Users"); } } } @@ -702,13 +723,6 @@ protected void RaisePropertyChanged(string propertyName) { } } - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] - [System.Runtime.Serialization.CollectionDataContractAttribute(Name="ArrayOfLong", Namespace="http://schemas.servicestack.net/types", ItemName="Long")] - [System.SerializableAttribute()] - public class ArrayOfLong : System.Collections.Generic.List { - } - [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] [System.Runtime.Serialization.DataContractAttribute(Name="User", Namespace="http://schemas.servicestack.net/types")] @@ -820,33 +834,63 @@ protected void RaisePropertyChanged(string propertyName) { [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] - [System.Runtime.Serialization.DataContractAttribute(Name="Movie", Namespace="http://schemas.servicestack.net/types")] + [System.Runtime.Serialization.DataContractAttribute(Name="GetNorthwindCustomerOrders", Namespace="http://schemas.servicestack.net/types")] [System.SerializableAttribute()] - public partial class Movie : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + public partial class GetNorthwindCustomerOrders : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { [System.NonSerializedAttribute()] private System.Runtime.Serialization.ExtensionDataObject extensionDataField; [System.Runtime.Serialization.OptionalFieldAttribute()] - private string DirectorField; + private string CustomerIdField; - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string[] GenresField; + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } - [System.Runtime.Serialization.OptionalFieldAttribute()] - private string IdField; + [System.Runtime.Serialization.DataMemberAttribute()] + public string CustomerId { + get { + return this.CustomerIdField; + } + set { + if ((object.ReferenceEquals(this.CustomerIdField, value) != true)) { + this.CustomerIdField = value; + this.RaisePropertyChanged("CustomerId"); + } + } + } - [System.Runtime.Serialization.OptionalFieldAttribute()] - private decimal RatingField; + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; - [System.Runtime.Serialization.OptionalFieldAttribute()] - private System.DateTime ReleaseDateField; + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="GetNorthwindCustomerOrdersResponse", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class GetNorthwindCustomerOrdersResponse : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; [System.Runtime.Serialization.OptionalFieldAttribute()] - private string TagLineField; + private ServiceStack.Examples.Clients.Soap12ServiceReference.CustomerOrders CustomerOrdersField; [System.Runtime.Serialization.OptionalFieldAttribute()] - private string TitleField; + private ServiceStack.Examples.Clients.Soap12ServiceReference.ResponseStatus ResponseStatusField; [global::System.ComponentModel.BrowsableAttribute(false)] public System.Runtime.Serialization.ExtensionDataObject ExtensionData { @@ -859,92 +903,133 @@ public System.Runtime.Serialization.ExtensionDataObject ExtensionData { } [System.Runtime.Serialization.DataMemberAttribute()] - public string Director { + public ServiceStack.Examples.Clients.Soap12ServiceReference.CustomerOrders CustomerOrders { get { - return this.DirectorField; + return this.CustomerOrdersField; } set { - if ((object.ReferenceEquals(this.DirectorField, value) != true)) { - this.DirectorField = value; - this.RaisePropertyChanged("Director"); + if ((object.ReferenceEquals(this.CustomerOrdersField, value) != true)) { + this.CustomerOrdersField = value; + this.RaisePropertyChanged("CustomerOrders"); } } } [System.Runtime.Serialization.DataMemberAttribute()] - public string[] Genres { + public ServiceStack.Examples.Clients.Soap12ServiceReference.ResponseStatus ResponseStatus { get { - return this.GenresField; + return this.ResponseStatusField; } set { - if ((object.ReferenceEquals(this.GenresField, value) != true)) { - this.GenresField = value; - this.RaisePropertyChanged("Genres"); + if ((object.ReferenceEquals(this.ResponseStatusField, value) != true)) { + this.ResponseStatusField = value; + this.RaisePropertyChanged("ResponseStatus"); } } } - [System.Runtime.Serialization.DataMemberAttribute()] - public string Id { + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="CustomerOrders", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class CustomerOrders : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { get { - return this.IdField; + return this.extensionDataField; } set { - if ((object.ReferenceEquals(this.IdField, value) != true)) { - this.IdField = value; - this.RaisePropertyChanged("Id"); - } + this.extensionDataField = value; } } - [System.Runtime.Serialization.DataMemberAttribute()] - public decimal Rating { + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="StoreNewUser", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class StoreNewUser : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string EmailField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string PasswordField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string UserNameField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { get { - return this.RatingField; + return this.extensionDataField; } set { - if ((this.RatingField.Equals(value) != true)) { - this.RatingField = value; - this.RaisePropertyChanged("Rating"); - } + this.extensionDataField = value; } } [System.Runtime.Serialization.DataMemberAttribute()] - public System.DateTime ReleaseDate { + public string Email { get { - return this.ReleaseDateField; + return this.EmailField; } set { - if ((this.ReleaseDateField.Equals(value) != true)) { - this.ReleaseDateField = value; - this.RaisePropertyChanged("ReleaseDate"); + if ((object.ReferenceEquals(this.EmailField, value) != true)) { + this.EmailField = value; + this.RaisePropertyChanged("Email"); } } } [System.Runtime.Serialization.DataMemberAttribute()] - public string TagLine { + public string Password { get { - return this.TagLineField; + return this.PasswordField; } set { - if ((object.ReferenceEquals(this.TagLineField, value) != true)) { - this.TagLineField = value; - this.RaisePropertyChanged("TagLine"); + if ((object.ReferenceEquals(this.PasswordField, value) != true)) { + this.PasswordField = value; + this.RaisePropertyChanged("Password"); } } } [System.Runtime.Serialization.DataMemberAttribute()] - public string Title { + public string UserName { get { - return this.TitleField; + return this.UserNameField; } set { - if ((object.ReferenceEquals(this.TitleField, value) != true)) { - this.TitleField = value; - this.RaisePropertyChanged("Title"); + if ((object.ReferenceEquals(this.UserNameField, value) != true)) { + this.UserNameField = value; + this.RaisePropertyChanged("UserName"); } } } @@ -959,157 +1044,1216 @@ protected void RaisePropertyChanged(string propertyName) { } } - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] - [System.ServiceModel.ServiceContractAttribute(Namespace="http://schemas.servicestack.net/types", ConfigurationName="Soap12ServiceReference.ISyncReply")] - public interface ISyncReply { - - [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/GetNorthwindCustomerOrdersCached", ReplyAction="*")] - [return: System.ServiceModel.MessageParameterAttribute(Name="CreatedDate")] - System.DateTime GetNorthwindCustomerOrdersCached(out ServiceStack.Examples.Clients.Soap12ServiceReference.CustomerOrders CustomerOrders, out ServiceStack.ServiceInterface.ServiceModel.ResponseStatus ResponseStatus, string CustomerId, bool RefreshCache); + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="StoreNewUserResponse", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class StoreNewUserResponse : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { - [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/GetFactorial", ReplyAction="*")] - [return: System.ServiceModel.MessageParameterAttribute(Name="Result")] - long GetFactorial(long ForNumber); + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; - [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/DeleteAllUsers", ReplyAction="*")] - [return: System.ServiceModel.MessageParameterAttribute(Name="ResponseStatus")] - ServiceStack.ServiceInterface.ServiceModel.ResponseStatus DeleteAllUsers(out long UserId); + [System.Runtime.Serialization.OptionalFieldAttribute()] + private ServiceStack.Examples.Clients.Soap12ServiceReference.ResponseStatus ResponseStatusField; - [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/StoreNewUser", ReplyAction="*")] - [return: System.ServiceModel.MessageParameterAttribute(Name="ResponseStatus")] - ServiceStack.ServiceInterface.ServiceModel.ResponseStatus StoreNewUser(out long UserId, string Email, string Password, string UserName); + [System.Runtime.Serialization.OptionalFieldAttribute()] + private long UserIdField; - [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/Greet", ReplyAction="*")] - [return: System.ServiceModel.MessageParameterAttribute(Name="Result")] - string Greet(string Name); + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } - [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/GetFibonacciNumbers", ReplyAction="*")] - [return: System.ServiceModel.MessageParameterAttribute(Name="Results")] - ServiceStack.Examples.Clients.Soap12ServiceReference.ArrayOfLong GetFibonacciNumbers(System.Nullable Skip, System.Nullable Take); + [System.Runtime.Serialization.DataMemberAttribute()] + public ServiceStack.Examples.Clients.Soap12ServiceReference.ResponseStatus ResponseStatus { + get { + return this.ResponseStatusField; + } + set { + if ((object.ReferenceEquals(this.ResponseStatusField, value) != true)) { + this.ResponseStatusField = value; + this.RaisePropertyChanged("ResponseStatus"); + } + } + } - [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/GetNorthwindCustomerOrders", ReplyAction="*")] - [return: System.ServiceModel.MessageParameterAttribute(Name="CustomerOrders")] - ServiceStack.Examples.Clients.Soap12ServiceReference.CustomerOrders GetNorthwindCustomerOrders(out ServiceStack.ServiceInterface.ServiceModel.ResponseStatus ResponseStatus, string CustomerId); + [System.Runtime.Serialization.DataMemberAttribute()] + public long UserId { + get { + return this.UserIdField; + } + set { + if ((this.UserIdField.Equals(value) != true)) { + this.UserIdField = value; + this.RaisePropertyChanged("UserId"); + } + } + } - [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/ResetMovieDatabase", ReplyAction="*")] - [return: System.ServiceModel.MessageParameterAttribute(Name="ResponseStatus")] - ServiceStack.ServiceInterface.ServiceModel.ResponseStatus ResetMovieDatabase(); + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; - [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/GetAllUsers", ReplyAction="*")] - [return: System.ServiceModel.MessageParameterAttribute(Name="ResponseStatus")] - ServiceStack.ServiceInterface.ServiceModel.ResponseStatus GetAllUsers(out ServiceStack.Examples.Clients.Soap12ServiceReference.User[] Users); + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="DeleteAllUsers", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class DeleteAllUsers : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="DeleteAllUsersResponse", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class DeleteAllUsersResponse : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private ServiceStack.Examples.Clients.Soap12ServiceReference.ResponseStatus ResponseStatusField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private long UserIdField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public ServiceStack.Examples.Clients.Soap12ServiceReference.ResponseStatus ResponseStatus { + get { + return this.ResponseStatusField; + } + set { + if ((object.ReferenceEquals(this.ResponseStatusField, value) != true)) { + this.ResponseStatusField = value; + this.RaisePropertyChanged("ResponseStatus"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public long UserId { + get { + return this.UserIdField; + } + set { + if ((this.UserIdField.Equals(value) != true)) { + this.UserIdField = value; + this.RaisePropertyChanged("UserId"); + } + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="Greet", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class Greet : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string NameField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public string Name { + get { + return this.NameField; + } + set { + if ((object.ReferenceEquals(this.NameField, value) != true)) { + this.NameField = value; + this.RaisePropertyChanged("Name"); + } + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="GreetResponse", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class GreetResponse : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string ResultField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public string Result { + get { + return this.ResultField; + } + set { + if ((object.ReferenceEquals(this.ResultField, value) != true)) { + this.ResultField = value; + this.RaisePropertyChanged("Result"); + } + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="GetUsers", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class GetUsers : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private long[] UserIdsField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string[] UserNamesField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public long[] UserIds { + get { + return this.UserIdsField; + } + set { + if ((object.ReferenceEquals(this.UserIdsField, value) != true)) { + this.UserIdsField = value; + this.RaisePropertyChanged("UserIds"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public string[] UserNames { + get { + return this.UserNamesField; + } + set { + if ((object.ReferenceEquals(this.UserNamesField, value) != true)) { + this.UserNamesField = value; + this.RaisePropertyChanged("UserNames"); + } + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="GetUsersResponse", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class GetUsersResponse : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private ServiceStack.Examples.Clients.Soap12ServiceReference.ResponseStatus ResponseStatusField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private ServiceStack.Examples.Clients.Soap12ServiceReference.User[] UsersField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public ServiceStack.Examples.Clients.Soap12ServiceReference.ResponseStatus ResponseStatus { + get { + return this.ResponseStatusField; + } + set { + if ((object.ReferenceEquals(this.ResponseStatusField, value) != true)) { + this.ResponseStatusField = value; + this.RaisePropertyChanged("ResponseStatus"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public ServiceStack.Examples.Clients.Soap12ServiceReference.User[] Users { + get { + return this.UsersField; + } + set { + if ((object.ReferenceEquals(this.UsersField, value) != true)) { + this.UsersField = value; + this.RaisePropertyChanged("Users"); + } + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="GetFibonacciNumbers", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class GetFibonacciNumbers : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private System.Nullable SkipField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private System.Nullable TakeField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public System.Nullable Skip { + get { + return this.SkipField; + } + set { + if ((this.SkipField.Equals(value) != true)) { + this.SkipField = value; + this.RaisePropertyChanged("Skip"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public System.Nullable Take { + get { + return this.TakeField; + } + set { + if ((this.TakeField.Equals(value) != true)) { + this.TakeField = value; + this.RaisePropertyChanged("Take"); + } + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="GetFibonacciNumbersResponse", Namespace="http://schemas.servicestack.net/types")] + [System.SerializableAttribute()] + public partial class GetFibonacciNumbersResponse : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private ServiceStack.Examples.Clients.Soap12ServiceReference.ArrayOfLong ResultsField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public ServiceStack.Examples.Clients.Soap12ServiceReference.ArrayOfLong Results { + get { + return this.ResultsField; + } + set { + if ((object.ReferenceEquals(this.ResultsField, value) != true)) { + this.ResultsField = value; + this.RaisePropertyChanged("Results"); + } + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.CollectionDataContractAttribute(Name="ArrayOfLong", Namespace="http://schemas.servicestack.net/types", ItemName="Long")] + [System.SerializableAttribute()] + public class ArrayOfLong : System.Collections.Generic.List { + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ServiceModel.ServiceContractAttribute(Namespace="http://schemas.servicestack.net/types", ConfigurationName="Soap12ServiceReference.ISyncReply")] + public interface ISyncReply { + + // CODEGEN: Generating message contract since the operation StoreLogs is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/StoreLogs", ReplyAction="*")] + ServiceStack.Examples.Clients.Soap12ServiceReference.StoreLogsResponse1 StoreLogs(ServiceStack.Examples.Clients.Soap12ServiceReference.StoreLogsRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/StoreLogs", ReplyAction="*")] + System.Threading.Tasks.Task StoreLogsAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.StoreLogsRequest request); + + // CODEGEN: Generating message contract since the operation ResetMovieDatabase is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/ResetMovieDatabase", ReplyAction="*")] + ServiceStack.Examples.Clients.Soap12ServiceReference.ResetMovieDatabaseResponse1 ResetMovieDatabase(ServiceStack.Examples.Clients.Soap12ServiceReference.ResetMovieDatabaseRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/ResetMovieDatabase", ReplyAction="*")] + System.Threading.Tasks.Task ResetMovieDatabaseAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.ResetMovieDatabaseRequest request); + + // CODEGEN: Generating message contract since the operation Movies is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/Movies", ReplyAction="*")] + ServiceStack.Examples.Clients.Soap12ServiceReference.MoviesResponse1 Movies(ServiceStack.Examples.Clients.Soap12ServiceReference.MoviesRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/Movies", ReplyAction="*")] + System.Threading.Tasks.Task MoviesAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.MoviesRequest request); + + // CODEGEN: Generating message contract since the operation GetFactorial is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/GetFactorial", ReplyAction="*")] + ServiceStack.Examples.Clients.Soap12ServiceReference.GetFactorialResponse1 GetFactorial(ServiceStack.Examples.Clients.Soap12ServiceReference.GetFactorialRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/GetFactorial", ReplyAction="*")] + System.Threading.Tasks.Task GetFactorialAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.GetFactorialRequest request); + + // CODEGEN: Generating message contract since the operation GetAllUsers is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/GetAllUsers", ReplyAction="*")] + ServiceStack.Examples.Clients.Soap12ServiceReference.GetAllUsersResponse1 GetAllUsers(ServiceStack.Examples.Clients.Soap12ServiceReference.GetAllUsersRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/GetAllUsers", ReplyAction="*")] + System.Threading.Tasks.Task GetAllUsersAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.GetAllUsersRequest request); + + // CODEGEN: Generating message contract since the operation GetNorthwindCustomerOrders is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/GetNorthwindCustomerOrders", ReplyAction="*")] + ServiceStack.Examples.Clients.Soap12ServiceReference.GetNorthwindCustomerOrdersResponse1 GetNorthwindCustomerOrders(ServiceStack.Examples.Clients.Soap12ServiceReference.GetNorthwindCustomerOrdersRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/GetNorthwindCustomerOrders", ReplyAction="*")] + System.Threading.Tasks.Task GetNorthwindCustomerOrdersAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.GetNorthwindCustomerOrdersRequest request); + + // CODEGEN: Generating message contract since the operation StoreNewUser is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/StoreNewUser", ReplyAction="*")] + ServiceStack.Examples.Clients.Soap12ServiceReference.StoreNewUserResponse1 StoreNewUser(ServiceStack.Examples.Clients.Soap12ServiceReference.StoreNewUserRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/StoreNewUser", ReplyAction="*")] + System.Threading.Tasks.Task StoreNewUserAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.StoreNewUserRequest request); + + // CODEGEN: Generating message contract since the operation DeleteAllUsers is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/DeleteAllUsers", ReplyAction="*")] + ServiceStack.Examples.Clients.Soap12ServiceReference.DeleteAllUsersResponse1 DeleteAllUsers(ServiceStack.Examples.Clients.Soap12ServiceReference.DeleteAllUsersRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/DeleteAllUsers", ReplyAction="*")] + System.Threading.Tasks.Task DeleteAllUsersAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.DeleteAllUsersRequest request); + + // CODEGEN: Generating message contract since the operation Greet is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/Greet", ReplyAction="*")] + ServiceStack.Examples.Clients.Soap12ServiceReference.GreetResponse1 Greet(ServiceStack.Examples.Clients.Soap12ServiceReference.GreetRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/Greet", ReplyAction="*")] + System.Threading.Tasks.Task GreetAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.GreetRequest request); + + // CODEGEN: Generating message contract since the operation GetUsers is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/GetUsers", ReplyAction="*")] + ServiceStack.Examples.Clients.Soap12ServiceReference.GetUsersResponse1 GetUsers(ServiceStack.Examples.Clients.Soap12ServiceReference.GetUsersRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/GetUsers", ReplyAction="*")] + System.Threading.Tasks.Task GetUsersAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.GetUsersRequest request); + + // CODEGEN: Generating message contract since the operation GetFibonacciNumbers is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/GetFibonacciNumbers", ReplyAction="*")] + ServiceStack.Examples.Clients.Soap12ServiceReference.GetFibonacciNumbersResponse1 GetFibonacciNumbers(ServiceStack.Examples.Clients.Soap12ServiceReference.GetFibonacciNumbersRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/GetFibonacciNumbers", ReplyAction="*")] + System.Threading.Tasks.Task GetFibonacciNumbersAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.GetFibonacciNumbersRequest request); + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class StoreLogsRequest { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap12ServiceReference.StoreLogs StoreLogs; + + public StoreLogsRequest() { + } - [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/Movies", ReplyAction="*")] - [return: System.ServiceModel.MessageParameterAttribute(Name="Movies")] - ServiceStack.Examples.Clients.Soap12ServiceReference.Movie[] Movies(out ServiceStack.ServiceInterface.ServiceModel.ResponseStatus ResponseStatus, string Id, ServiceStack.Examples.Clients.Soap12ServiceReference.Movie Movie); + public StoreLogsRequest(ServiceStack.Examples.Clients.Soap12ServiceReference.StoreLogs StoreLogs) { + this.StoreLogs = StoreLogs; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class StoreLogsResponse1 { - [System.ServiceModel.OperationContractAttribute(Action="http://schemas.servicestack.net/types/GetUsers", ReplyAction="*")] - [return: System.ServiceModel.MessageParameterAttribute(Name="ResponseStatus")] - ServiceStack.ServiceInterface.ServiceModel.ResponseStatus GetUsers(out ServiceStack.Examples.Clients.Soap12ServiceReference.User[] Users, long[] UserIds, string[] UserNames); + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap12ServiceReference.StoreLogsResponse StoreLogsResponse; + + public StoreLogsResponse1() { + } + + public StoreLogsResponse1(ServiceStack.Examples.Clients.Soap12ServiceReference.StoreLogsResponse StoreLogsResponse) { + this.StoreLogsResponse = StoreLogsResponse; + } } + [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] - public interface ISyncReplyChannel : ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply, System.ServiceModel.IClientChannel { + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class ResetMovieDatabaseRequest { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap12ServiceReference.ResetMovieDatabase ResetMovieDatabase; + + public ResetMovieDatabaseRequest() { + } + + public ResetMovieDatabaseRequest(ServiceStack.Examples.Clients.Soap12ServiceReference.ResetMovieDatabase ResetMovieDatabase) { + this.ResetMovieDatabase = ResetMovieDatabase; + } } [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] - public partial class SyncReplyClient : System.ServiceModel.ClientBase, ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply { + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class ResetMovieDatabaseResponse1 { - public SyncReplyClient() { + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap12ServiceReference.ResetMovieDatabaseResponse ResetMovieDatabaseResponse; + + public ResetMovieDatabaseResponse1() { } - public SyncReplyClient(string endpointConfigurationName) : - base(endpointConfigurationName) { + public ResetMovieDatabaseResponse1(ServiceStack.Examples.Clients.Soap12ServiceReference.ResetMovieDatabaseResponse ResetMovieDatabaseResponse) { + this.ResetMovieDatabaseResponse = ResetMovieDatabaseResponse; } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class MoviesRequest { - public SyncReplyClient(string endpointConfigurationName, string remoteAddress) : - base(endpointConfigurationName, remoteAddress) { + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap12ServiceReference.Movies Movies; + + public MoviesRequest() { } - public SyncReplyClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : - base(endpointConfigurationName, remoteAddress) { + public MoviesRequest(ServiceStack.Examples.Clients.Soap12ServiceReference.Movies Movies) { + this.Movies = Movies; } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class MoviesResponse1 { - public SyncReplyClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : - base(binding, remoteAddress) { + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap12ServiceReference.MoviesResponse MoviesResponse; + + public MoviesResponse1() { + } + + public MoviesResponse1(ServiceStack.Examples.Clients.Soap12ServiceReference.MoviesResponse MoviesResponse) { + this.MoviesResponse = MoviesResponse; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class GetFactorialRequest { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap12ServiceReference.GetFactorial GetFactorial; + + public GetFactorialRequest() { + } + + public GetFactorialRequest(ServiceStack.Examples.Clients.Soap12ServiceReference.GetFactorial GetFactorial) { + this.GetFactorial = GetFactorial; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class GetFactorialResponse1 { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap12ServiceReference.GetFactorialResponse GetFactorialResponse; + + public GetFactorialResponse1() { + } + + public GetFactorialResponse1(ServiceStack.Examples.Clients.Soap12ServiceReference.GetFactorialResponse GetFactorialResponse) { + this.GetFactorialResponse = GetFactorialResponse; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class GetAllUsersRequest { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap12ServiceReference.GetAllUsers GetAllUsers; + + public GetAllUsersRequest() { + } + + public GetAllUsersRequest(ServiceStack.Examples.Clients.Soap12ServiceReference.GetAllUsers GetAllUsers) { + this.GetAllUsers = GetAllUsers; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class GetAllUsersResponse1 { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap12ServiceReference.GetAllUsersResponse GetAllUsersResponse; + + public GetAllUsersResponse1() { + } + + public GetAllUsersResponse1(ServiceStack.Examples.Clients.Soap12ServiceReference.GetAllUsersResponse GetAllUsersResponse) { + this.GetAllUsersResponse = GetAllUsersResponse; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class GetNorthwindCustomerOrdersRequest { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap12ServiceReference.GetNorthwindCustomerOrders GetNorthwindCustomerOrders; + + public GetNorthwindCustomerOrdersRequest() { + } + + public GetNorthwindCustomerOrdersRequest(ServiceStack.Examples.Clients.Soap12ServiceReference.GetNorthwindCustomerOrders GetNorthwindCustomerOrders) { + this.GetNorthwindCustomerOrders = GetNorthwindCustomerOrders; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class GetNorthwindCustomerOrdersResponse1 { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap12ServiceReference.GetNorthwindCustomerOrdersResponse GetNorthwindCustomerOrdersResponse; + + public GetNorthwindCustomerOrdersResponse1() { + } + + public GetNorthwindCustomerOrdersResponse1(ServiceStack.Examples.Clients.Soap12ServiceReference.GetNorthwindCustomerOrdersResponse GetNorthwindCustomerOrdersResponse) { + this.GetNorthwindCustomerOrdersResponse = GetNorthwindCustomerOrdersResponse; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class StoreNewUserRequest { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap12ServiceReference.StoreNewUser StoreNewUser; + + public StoreNewUserRequest() { + } + + public StoreNewUserRequest(ServiceStack.Examples.Clients.Soap12ServiceReference.StoreNewUser StoreNewUser) { + this.StoreNewUser = StoreNewUser; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class StoreNewUserResponse1 { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap12ServiceReference.StoreNewUserResponse StoreNewUserResponse; + + public StoreNewUserResponse1() { + } + + public StoreNewUserResponse1(ServiceStack.Examples.Clients.Soap12ServiceReference.StoreNewUserResponse StoreNewUserResponse) { + this.StoreNewUserResponse = StoreNewUserResponse; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class DeleteAllUsersRequest { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap12ServiceReference.DeleteAllUsers DeleteAllUsers; + + public DeleteAllUsersRequest() { + } + + public DeleteAllUsersRequest(ServiceStack.Examples.Clients.Soap12ServiceReference.DeleteAllUsers DeleteAllUsers) { + this.DeleteAllUsers = DeleteAllUsers; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class DeleteAllUsersResponse1 { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap12ServiceReference.DeleteAllUsersResponse DeleteAllUsersResponse; + + public DeleteAllUsersResponse1() { } - public System.DateTime GetNorthwindCustomerOrdersCached(out ServiceStack.Examples.Clients.Soap12ServiceReference.CustomerOrders CustomerOrders, out ServiceStack.ServiceInterface.ServiceModel.ResponseStatus ResponseStatus, string CustomerId, bool RefreshCache) { - return base.Channel.GetNorthwindCustomerOrdersCached(out CustomerOrders, out ResponseStatus, CustomerId, RefreshCache); + public DeleteAllUsersResponse1(ServiceStack.Examples.Clients.Soap12ServiceReference.DeleteAllUsersResponse DeleteAllUsersResponse) { + this.DeleteAllUsersResponse = DeleteAllUsersResponse; } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class GreetRequest { - public long GetFactorial(long ForNumber) { - return base.Channel.GetFactorial(ForNumber); + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap12ServiceReference.Greet Greet; + + public GreetRequest() { } - public ServiceStack.ServiceInterface.ServiceModel.ResponseStatus DeleteAllUsers(out long UserId) { - return base.Channel.DeleteAllUsers(out UserId); + public GreetRequest(ServiceStack.Examples.Clients.Soap12ServiceReference.Greet Greet) { + this.Greet = Greet; } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class GreetResponse1 { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap12ServiceReference.GreetResponse GreetResponse; - public ServiceStack.ServiceInterface.ServiceModel.ResponseStatus StoreNewUser(out long UserId, string Email, string Password, string UserName) { - return base.Channel.StoreNewUser(out UserId, Email, Password, UserName); + public GreetResponse1() { } - public string Greet(string Name) { - return base.Channel.Greet(Name); + public GreetResponse1(ServiceStack.Examples.Clients.Soap12ServiceReference.GreetResponse GreetResponse) { + this.GreetResponse = GreetResponse; } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class GetUsersRequest { - public ServiceStack.Examples.Clients.Soap12ServiceReference.ArrayOfLong GetFibonacciNumbers(System.Nullable Skip, System.Nullable Take) { - return base.Channel.GetFibonacciNumbers(Skip, Take); + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap12ServiceReference.GetUsers GetUsers; + + public GetUsersRequest() { } - public ServiceStack.Examples.Clients.Soap12ServiceReference.CustomerOrders GetNorthwindCustomerOrders(out ServiceStack.ServiceInterface.ServiceModel.ResponseStatus ResponseStatus, string CustomerId) { - return base.Channel.GetNorthwindCustomerOrders(out ResponseStatus, CustomerId); + public GetUsersRequest(ServiceStack.Examples.Clients.Soap12ServiceReference.GetUsers GetUsers) { + this.GetUsers = GetUsers; } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class GetUsersResponse1 { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap12ServiceReference.GetUsersResponse GetUsersResponse; - public ServiceStack.ServiceInterface.ServiceModel.ResponseStatus ResetMovieDatabase() { - return base.Channel.ResetMovieDatabase(); + public GetUsersResponse1() { } - public ServiceStack.ServiceInterface.ServiceModel.ResponseStatus GetAllUsers(out ServiceStack.Examples.Clients.Soap12ServiceReference.User[] Users) { - return base.Channel.GetAllUsers(out Users); + public GetUsersResponse1(ServiceStack.Examples.Clients.Soap12ServiceReference.GetUsersResponse GetUsersResponse) { + this.GetUsersResponse = GetUsersResponse; } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class GetFibonacciNumbersRequest { - public ServiceStack.Examples.Clients.Soap12ServiceReference.Movie[] Movies(out ServiceStack.ServiceInterface.ServiceModel.ResponseStatus ResponseStatus, string Id, ServiceStack.Examples.Clients.Soap12ServiceReference.Movie Movie) { - return base.Channel.Movies(out ResponseStatus, Id, Movie); + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap12ServiceReference.GetFibonacciNumbers GetFibonacciNumbers; + + public GetFibonacciNumbersRequest() { } - public ServiceStack.ServiceInterface.ServiceModel.ResponseStatus GetUsers(out ServiceStack.Examples.Clients.Soap12ServiceReference.User[] Users, long[] UserIds, string[] UserNames) { - return base.Channel.GetUsers(out Users, UserIds, UserNames); + public GetFibonacciNumbersRequest(ServiceStack.Examples.Clients.Soap12ServiceReference.GetFibonacciNumbers GetFibonacciNumbers) { + this.GetFibonacciNumbers = GetFibonacciNumbers; } } + [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] - [System.ServiceModel.ServiceContractAttribute(Namespace="http://schemas.servicestack.net/types", ConfigurationName="Soap12ServiceReference.IOneWay")] - public interface IOneWay { + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class GetFibonacciNumbersResponse1 { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://schemas.servicestack.net/types", Order=0)] + public ServiceStack.Examples.Clients.Soap12ServiceReference.GetFibonacciNumbersResponse GetFibonacciNumbersResponse; + + public GetFibonacciNumbersResponse1() { + } + + public GetFibonacciNumbersResponse1(ServiceStack.Examples.Clients.Soap12ServiceReference.GetFibonacciNumbersResponse GetFibonacciNumbersResponse) { + this.GetFibonacciNumbersResponse = GetFibonacciNumbersResponse; + } } [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] - public interface IOneWayChannel : ServiceStack.Examples.Clients.Soap12ServiceReference.IOneWay, System.ServiceModel.IClientChannel { + public interface ISyncReplyChannel : ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply, System.ServiceModel.IClientChannel { } [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] - public partial class OneWayClient : System.ServiceModel.ClientBase, ServiceStack.Examples.Clients.Soap12ServiceReference.IOneWay { + public partial class SyncReplyClient : System.ServiceModel.ClientBase, ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply { - public OneWayClient() { + public SyncReplyClient() { } - public OneWayClient(string endpointConfigurationName) : + public SyncReplyClient(string endpointConfigurationName) : base(endpointConfigurationName) { } - public OneWayClient(string endpointConfigurationName, string remoteAddress) : + public SyncReplyClient(string endpointConfigurationName, string remoteAddress) : base(endpointConfigurationName, remoteAddress) { } - public OneWayClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : + public SyncReplyClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : base(endpointConfigurationName, remoteAddress) { } - public OneWayClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : + public SyncReplyClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : base(binding, remoteAddress) { } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + ServiceStack.Examples.Clients.Soap12ServiceReference.StoreLogsResponse1 ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply.StoreLogs(ServiceStack.Examples.Clients.Soap12ServiceReference.StoreLogsRequest request) { + return base.Channel.StoreLogs(request); + } + + public ServiceStack.Examples.Clients.Soap12ServiceReference.StoreLogsResponse StoreLogs(ServiceStack.Examples.Clients.Soap12ServiceReference.StoreLogs StoreLogs1) { + ServiceStack.Examples.Clients.Soap12ServiceReference.StoreLogsRequest inValue = new ServiceStack.Examples.Clients.Soap12ServiceReference.StoreLogsRequest(); + inValue.StoreLogs = StoreLogs1; + ServiceStack.Examples.Clients.Soap12ServiceReference.StoreLogsResponse1 retVal = ((ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply)(this)).StoreLogs(inValue); + return retVal.StoreLogsResponse; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply.StoreLogsAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.StoreLogsRequest request) { + return base.Channel.StoreLogsAsync(request); + } + + public System.Threading.Tasks.Task StoreLogsAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.StoreLogs StoreLogs) { + ServiceStack.Examples.Clients.Soap12ServiceReference.StoreLogsRequest inValue = new ServiceStack.Examples.Clients.Soap12ServiceReference.StoreLogsRequest(); + inValue.StoreLogs = StoreLogs; + return ((ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply)(this)).StoreLogsAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + ServiceStack.Examples.Clients.Soap12ServiceReference.ResetMovieDatabaseResponse1 ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply.ResetMovieDatabase(ServiceStack.Examples.Clients.Soap12ServiceReference.ResetMovieDatabaseRequest request) { + return base.Channel.ResetMovieDatabase(request); + } + + public ServiceStack.Examples.Clients.Soap12ServiceReference.ResetMovieDatabaseResponse ResetMovieDatabase(ServiceStack.Examples.Clients.Soap12ServiceReference.ResetMovieDatabase ResetMovieDatabase1) { + ServiceStack.Examples.Clients.Soap12ServiceReference.ResetMovieDatabaseRequest inValue = new ServiceStack.Examples.Clients.Soap12ServiceReference.ResetMovieDatabaseRequest(); + inValue.ResetMovieDatabase = ResetMovieDatabase1; + ServiceStack.Examples.Clients.Soap12ServiceReference.ResetMovieDatabaseResponse1 retVal = ((ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply)(this)).ResetMovieDatabase(inValue); + return retVal.ResetMovieDatabaseResponse; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply.ResetMovieDatabaseAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.ResetMovieDatabaseRequest request) { + return base.Channel.ResetMovieDatabaseAsync(request); + } + + public System.Threading.Tasks.Task ResetMovieDatabaseAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.ResetMovieDatabase ResetMovieDatabase) { + ServiceStack.Examples.Clients.Soap12ServiceReference.ResetMovieDatabaseRequest inValue = new ServiceStack.Examples.Clients.Soap12ServiceReference.ResetMovieDatabaseRequest(); + inValue.ResetMovieDatabase = ResetMovieDatabase; + return ((ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply)(this)).ResetMovieDatabaseAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + ServiceStack.Examples.Clients.Soap12ServiceReference.MoviesResponse1 ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply.Movies(ServiceStack.Examples.Clients.Soap12ServiceReference.MoviesRequest request) { + return base.Channel.Movies(request); + } + + public ServiceStack.Examples.Clients.Soap12ServiceReference.MoviesResponse Movies(ServiceStack.Examples.Clients.Soap12ServiceReference.Movies Movies1) { + ServiceStack.Examples.Clients.Soap12ServiceReference.MoviesRequest inValue = new ServiceStack.Examples.Clients.Soap12ServiceReference.MoviesRequest(); + inValue.Movies = Movies1; + ServiceStack.Examples.Clients.Soap12ServiceReference.MoviesResponse1 retVal = ((ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply)(this)).Movies(inValue); + return retVal.MoviesResponse; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply.MoviesAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.MoviesRequest request) { + return base.Channel.MoviesAsync(request); + } + + public System.Threading.Tasks.Task MoviesAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.Movies Movies) { + ServiceStack.Examples.Clients.Soap12ServiceReference.MoviesRequest inValue = new ServiceStack.Examples.Clients.Soap12ServiceReference.MoviesRequest(); + inValue.Movies = Movies; + return ((ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply)(this)).MoviesAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + ServiceStack.Examples.Clients.Soap12ServiceReference.GetFactorialResponse1 ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply.GetFactorial(ServiceStack.Examples.Clients.Soap12ServiceReference.GetFactorialRequest request) { + return base.Channel.GetFactorial(request); + } + + public ServiceStack.Examples.Clients.Soap12ServiceReference.GetFactorialResponse GetFactorial(ServiceStack.Examples.Clients.Soap12ServiceReference.GetFactorial GetFactorial1) { + ServiceStack.Examples.Clients.Soap12ServiceReference.GetFactorialRequest inValue = new ServiceStack.Examples.Clients.Soap12ServiceReference.GetFactorialRequest(); + inValue.GetFactorial = GetFactorial1; + ServiceStack.Examples.Clients.Soap12ServiceReference.GetFactorialResponse1 retVal = ((ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply)(this)).GetFactorial(inValue); + return retVal.GetFactorialResponse; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply.GetFactorialAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.GetFactorialRequest request) { + return base.Channel.GetFactorialAsync(request); + } + + public System.Threading.Tasks.Task GetFactorialAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.GetFactorial GetFactorial) { + ServiceStack.Examples.Clients.Soap12ServiceReference.GetFactorialRequest inValue = new ServiceStack.Examples.Clients.Soap12ServiceReference.GetFactorialRequest(); + inValue.GetFactorial = GetFactorial; + return ((ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply)(this)).GetFactorialAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + ServiceStack.Examples.Clients.Soap12ServiceReference.GetAllUsersResponse1 ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply.GetAllUsers(ServiceStack.Examples.Clients.Soap12ServiceReference.GetAllUsersRequest request) { + return base.Channel.GetAllUsers(request); + } + + public ServiceStack.Examples.Clients.Soap12ServiceReference.GetAllUsersResponse GetAllUsers(ServiceStack.Examples.Clients.Soap12ServiceReference.GetAllUsers GetAllUsers1) { + ServiceStack.Examples.Clients.Soap12ServiceReference.GetAllUsersRequest inValue = new ServiceStack.Examples.Clients.Soap12ServiceReference.GetAllUsersRequest(); + inValue.GetAllUsers = GetAllUsers1; + ServiceStack.Examples.Clients.Soap12ServiceReference.GetAllUsersResponse1 retVal = ((ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply)(this)).GetAllUsers(inValue); + return retVal.GetAllUsersResponse; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply.GetAllUsersAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.GetAllUsersRequest request) { + return base.Channel.GetAllUsersAsync(request); + } + + public System.Threading.Tasks.Task GetAllUsersAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.GetAllUsers GetAllUsers) { + ServiceStack.Examples.Clients.Soap12ServiceReference.GetAllUsersRequest inValue = new ServiceStack.Examples.Clients.Soap12ServiceReference.GetAllUsersRequest(); + inValue.GetAllUsers = GetAllUsers; + return ((ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply)(this)).GetAllUsersAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + ServiceStack.Examples.Clients.Soap12ServiceReference.GetNorthwindCustomerOrdersResponse1 ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply.GetNorthwindCustomerOrders(ServiceStack.Examples.Clients.Soap12ServiceReference.GetNorthwindCustomerOrdersRequest request) { + return base.Channel.GetNorthwindCustomerOrders(request); + } + + public ServiceStack.Examples.Clients.Soap12ServiceReference.GetNorthwindCustomerOrdersResponse GetNorthwindCustomerOrders(ServiceStack.Examples.Clients.Soap12ServiceReference.GetNorthwindCustomerOrders GetNorthwindCustomerOrders1) { + ServiceStack.Examples.Clients.Soap12ServiceReference.GetNorthwindCustomerOrdersRequest inValue = new ServiceStack.Examples.Clients.Soap12ServiceReference.GetNorthwindCustomerOrdersRequest(); + inValue.GetNorthwindCustomerOrders = GetNorthwindCustomerOrders1; + ServiceStack.Examples.Clients.Soap12ServiceReference.GetNorthwindCustomerOrdersResponse1 retVal = ((ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply)(this)).GetNorthwindCustomerOrders(inValue); + return retVal.GetNorthwindCustomerOrdersResponse; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply.GetNorthwindCustomerOrdersAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.GetNorthwindCustomerOrdersRequest request) { + return base.Channel.GetNorthwindCustomerOrdersAsync(request); + } + + public System.Threading.Tasks.Task GetNorthwindCustomerOrdersAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.GetNorthwindCustomerOrders GetNorthwindCustomerOrders) { + ServiceStack.Examples.Clients.Soap12ServiceReference.GetNorthwindCustomerOrdersRequest inValue = new ServiceStack.Examples.Clients.Soap12ServiceReference.GetNorthwindCustomerOrdersRequest(); + inValue.GetNorthwindCustomerOrders = GetNorthwindCustomerOrders; + return ((ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply)(this)).GetNorthwindCustomerOrdersAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + ServiceStack.Examples.Clients.Soap12ServiceReference.StoreNewUserResponse1 ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply.StoreNewUser(ServiceStack.Examples.Clients.Soap12ServiceReference.StoreNewUserRequest request) { + return base.Channel.StoreNewUser(request); + } + + public ServiceStack.Examples.Clients.Soap12ServiceReference.StoreNewUserResponse StoreNewUser(ServiceStack.Examples.Clients.Soap12ServiceReference.StoreNewUser StoreNewUser1) { + ServiceStack.Examples.Clients.Soap12ServiceReference.StoreNewUserRequest inValue = new ServiceStack.Examples.Clients.Soap12ServiceReference.StoreNewUserRequest(); + inValue.StoreNewUser = StoreNewUser1; + ServiceStack.Examples.Clients.Soap12ServiceReference.StoreNewUserResponse1 retVal = ((ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply)(this)).StoreNewUser(inValue); + return retVal.StoreNewUserResponse; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply.StoreNewUserAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.StoreNewUserRequest request) { + return base.Channel.StoreNewUserAsync(request); + } + + public System.Threading.Tasks.Task StoreNewUserAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.StoreNewUser StoreNewUser) { + ServiceStack.Examples.Clients.Soap12ServiceReference.StoreNewUserRequest inValue = new ServiceStack.Examples.Clients.Soap12ServiceReference.StoreNewUserRequest(); + inValue.StoreNewUser = StoreNewUser; + return ((ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply)(this)).StoreNewUserAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + ServiceStack.Examples.Clients.Soap12ServiceReference.DeleteAllUsersResponse1 ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply.DeleteAllUsers(ServiceStack.Examples.Clients.Soap12ServiceReference.DeleteAllUsersRequest request) { + return base.Channel.DeleteAllUsers(request); + } + + public ServiceStack.Examples.Clients.Soap12ServiceReference.DeleteAllUsersResponse DeleteAllUsers(ServiceStack.Examples.Clients.Soap12ServiceReference.DeleteAllUsers DeleteAllUsers1) { + ServiceStack.Examples.Clients.Soap12ServiceReference.DeleteAllUsersRequest inValue = new ServiceStack.Examples.Clients.Soap12ServiceReference.DeleteAllUsersRequest(); + inValue.DeleteAllUsers = DeleteAllUsers1; + ServiceStack.Examples.Clients.Soap12ServiceReference.DeleteAllUsersResponse1 retVal = ((ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply)(this)).DeleteAllUsers(inValue); + return retVal.DeleteAllUsersResponse; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply.DeleteAllUsersAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.DeleteAllUsersRequest request) { + return base.Channel.DeleteAllUsersAsync(request); + } + + public System.Threading.Tasks.Task DeleteAllUsersAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.DeleteAllUsers DeleteAllUsers) { + ServiceStack.Examples.Clients.Soap12ServiceReference.DeleteAllUsersRequest inValue = new ServiceStack.Examples.Clients.Soap12ServiceReference.DeleteAllUsersRequest(); + inValue.DeleteAllUsers = DeleteAllUsers; + return ((ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply)(this)).DeleteAllUsersAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + ServiceStack.Examples.Clients.Soap12ServiceReference.GreetResponse1 ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply.Greet(ServiceStack.Examples.Clients.Soap12ServiceReference.GreetRequest request) { + return base.Channel.Greet(request); + } + + public ServiceStack.Examples.Clients.Soap12ServiceReference.GreetResponse Greet(ServiceStack.Examples.Clients.Soap12ServiceReference.Greet Greet1) { + ServiceStack.Examples.Clients.Soap12ServiceReference.GreetRequest inValue = new ServiceStack.Examples.Clients.Soap12ServiceReference.GreetRequest(); + inValue.Greet = Greet1; + ServiceStack.Examples.Clients.Soap12ServiceReference.GreetResponse1 retVal = ((ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply)(this)).Greet(inValue); + return retVal.GreetResponse; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply.GreetAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.GreetRequest request) { + return base.Channel.GreetAsync(request); + } + + public System.Threading.Tasks.Task GreetAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.Greet Greet) { + ServiceStack.Examples.Clients.Soap12ServiceReference.GreetRequest inValue = new ServiceStack.Examples.Clients.Soap12ServiceReference.GreetRequest(); + inValue.Greet = Greet; + return ((ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply)(this)).GreetAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + ServiceStack.Examples.Clients.Soap12ServiceReference.GetUsersResponse1 ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply.GetUsers(ServiceStack.Examples.Clients.Soap12ServiceReference.GetUsersRequest request) { + return base.Channel.GetUsers(request); + } + + public ServiceStack.Examples.Clients.Soap12ServiceReference.GetUsersResponse GetUsers(ServiceStack.Examples.Clients.Soap12ServiceReference.GetUsers GetUsers1) { + ServiceStack.Examples.Clients.Soap12ServiceReference.GetUsersRequest inValue = new ServiceStack.Examples.Clients.Soap12ServiceReference.GetUsersRequest(); + inValue.GetUsers = GetUsers1; + ServiceStack.Examples.Clients.Soap12ServiceReference.GetUsersResponse1 retVal = ((ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply)(this)).GetUsers(inValue); + return retVal.GetUsersResponse; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply.GetUsersAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.GetUsersRequest request) { + return base.Channel.GetUsersAsync(request); + } + + public System.Threading.Tasks.Task GetUsersAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.GetUsers GetUsers) { + ServiceStack.Examples.Clients.Soap12ServiceReference.GetUsersRequest inValue = new ServiceStack.Examples.Clients.Soap12ServiceReference.GetUsersRequest(); + inValue.GetUsers = GetUsers; + return ((ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply)(this)).GetUsersAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + ServiceStack.Examples.Clients.Soap12ServiceReference.GetFibonacciNumbersResponse1 ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply.GetFibonacciNumbers(ServiceStack.Examples.Clients.Soap12ServiceReference.GetFibonacciNumbersRequest request) { + return base.Channel.GetFibonacciNumbers(request); + } + + public ServiceStack.Examples.Clients.Soap12ServiceReference.GetFibonacciNumbersResponse GetFibonacciNumbers(ServiceStack.Examples.Clients.Soap12ServiceReference.GetFibonacciNumbers GetFibonacciNumbers1) { + ServiceStack.Examples.Clients.Soap12ServiceReference.GetFibonacciNumbersRequest inValue = new ServiceStack.Examples.Clients.Soap12ServiceReference.GetFibonacciNumbersRequest(); + inValue.GetFibonacciNumbers = GetFibonacciNumbers1; + ServiceStack.Examples.Clients.Soap12ServiceReference.GetFibonacciNumbersResponse1 retVal = ((ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply)(this)).GetFibonacciNumbers(inValue); + return retVal.GetFibonacciNumbersResponse; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply.GetFibonacciNumbersAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.GetFibonacciNumbersRequest request) { + return base.Channel.GetFibonacciNumbersAsync(request); + } + + public System.Threading.Tasks.Task GetFibonacciNumbersAsync(ServiceStack.Examples.Clients.Soap12ServiceReference.GetFibonacciNumbers GetFibonacciNumbers) { + ServiceStack.Examples.Clients.Soap12ServiceReference.GetFibonacciNumbersRequest inValue = new ServiceStack.Examples.Clients.Soap12ServiceReference.GetFibonacciNumbersRequest(); + inValue.GetFibonacciNumbers = GetFibonacciNumbers; + return ((ServiceStack.Examples.Clients.Soap12ServiceReference.ISyncReply)(this)).GetFibonacciNumbersAsync(inValue); + } } } diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap12ServiceReference/Reference.svcmap b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap12ServiceReference/Reference.svcmap index 6035cf1a..0778e979 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap12ServiceReference/Reference.svcmap +++ b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap12ServiceReference/Reference.svcmap @@ -1,7 +1,8 @@ - + false + true true false @@ -11,16 +12,17 @@ true Auto - true + true + false - + - + diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap12ServiceReference/ServiceStack.Examples.Clients.Soap12ServiceReference.ArrayOfLong.datasource b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap12ServiceReference/ServiceStack.Examples.Clients.Soap12ServiceReference.ArrayOfLong.datasource deleted file mode 100644 index 783cd380..00000000 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap12ServiceReference/ServiceStack.Examples.Clients.Soap12ServiceReference.ArrayOfLong.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - ServiceStack.Examples.Clients.Soap12ServiceReference.ArrayOfLong, Service References.Soap12ServiceReference.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap12ServiceReference/ServiceStack.Examples.Clients.Soap12ServiceReference.CustomerOrders.datasource b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap12ServiceReference/ServiceStack.Examples.Clients.Soap12ServiceReference.CustomerOrders.datasource deleted file mode 100644 index 4182d11e..00000000 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap12ServiceReference/ServiceStack.Examples.Clients.Soap12ServiceReference.CustomerOrders.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - ServiceStack.Examples.Clients.Soap12ServiceReference.CustomerOrders, Service References.Soap12ServiceReference.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap12ServiceReference/ServiceStack.Examples.Clients.Soap12ServiceReference.Movie.datasource b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap12ServiceReference/ServiceStack.Examples.Clients.Soap12ServiceReference.Movie.datasource deleted file mode 100644 index 0395f003..00000000 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap12ServiceReference/ServiceStack.Examples.Clients.Soap12ServiceReference.Movie.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - ServiceStack.Examples.Clients.Soap12ServiceReference.Movie, Service References.Soap12ServiceReference.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap12ServiceReference/ServiceStack.Examples.Clients.Soap12ServiceReference.User.datasource b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap12ServiceReference/ServiceStack.Examples.Clients.Soap12ServiceReference.User.datasource deleted file mode 100644 index 58b8e6bf..00000000 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap12ServiceReference/ServiceStack.Examples.Clients.Soap12ServiceReference.User.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - ServiceStack.Examples.Clients.Soap12ServiceReference.User, Service References.Soap12ServiceReference.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap12ServiceReference/Soap12.wsdl b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap12ServiceReference/Soap12.wsdl index 756bb4ef..db3eb7db 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap12ServiceReference/Soap12.wsdl +++ b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap12ServiceReference/Soap12.wsdl @@ -1,5 +1,5 @@ - + @@ -42,101 +42,38 @@ - + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - + - - + + - + - - - - - - - - - - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - + + - + - + @@ -148,24 +85,30 @@ - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - @@ -177,33 +120,45 @@ - + + + + + - - - + + - - + + - - + - - + + - + + + + + - - + + - + - + + + + + + + @@ -236,83 +191,73 @@ - + - - + + + + + + + + + + + - - - + + + + + + - - + + - - + + - + - - + + - - - - - + - - - - - - - - - - - - - - - - - - + + + - + + + + + + + + + - - - - - - + - + - - - - - - - + @@ -323,153 +268,179 @@ - + + + + + + + + + + + + + + + + + + + + + - - + - - + + - - + + + - - - - + + - + + - + + + + + + + + + - - + + - - + + - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - + + + + + + + - - - + + + + + + + + + + + - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + - - - + + @@ -477,8 +448,8 @@ - - + + @@ -486,8 +457,8 @@ - - + + @@ -495,8 +466,8 @@ - - + + @@ -504,8 +475,8 @@ - - + + @@ -513,8 +484,8 @@ - - + + @@ -522,8 +493,8 @@ - - + + @@ -531,8 +502,8 @@ - - + + @@ -540,8 +511,8 @@ - - + + @@ -549,8 +520,8 @@ - - + + @@ -558,8 +529,8 @@ - - + + @@ -568,17 +539,9 @@ - - - - - - - - - + \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap12ServiceReference/configuration.svcinfo b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap12ServiceReference/configuration.svcinfo index de8cb831..94e57942 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap12ServiceReference/configuration.svcinfo +++ b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap12ServiceReference/configuration.svcinfo @@ -2,11 +2,9 @@ - - + - - + \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap12ServiceReference/configuration91.svcinfo b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap12ServiceReference/configuration91.svcinfo index 2a795463..bbbd0d5d 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap12ServiceReference/configuration91.svcinfo +++ b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Service References/Soap12ServiceReference/configuration91.svcinfo @@ -1,388 +1,242 @@ - + - + WSHttpBinding_ISyncReply - + - + - + - + - + System.ServiceModel.Configuration.TextMessageEncodingElement - + 64 - + 16 - - Soap12 (http://www.w3.org/2003/05/soap-envelope) AddressingNone (http://schemas.microsoft.com/ws/2005/05/addressing/none) + + Soap12 - + System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement - - 32 + + 0 - - 8192 + + 0 - - 16384 + + 0 - - 4096 + + 0 - - 16384 + + 0 - + System.Text.UTF8Encoding - + System.ServiceModel.Configuration.HttpTransportElement - + False - + 524288 - + 65536 - + False - + + 00:00:00 + + Anonymous - + False - + + True + + StrongWildcard - + True - + 65536 - + + 0 + + + System.ServiceModel.Configuration.HttpMessageHandlerFactoryElement + + + (Collection) + + - + + + + Anonymous - + - + Buffered - + False - + True - + System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement - + Never - + TransportSelected - + (Collection) - - - - - - WSHttpBinding_IOneWay - - - - - - - - - - - - - - - System.ServiceModel.Configuration.TextMessageEncodingElement - - - 64 - - - 16 - - - Soap12 (http://www.w3.org/2003/05/soap-envelope) AddressingNone (http://schemas.microsoft.com/ws/2005/05/addressing/none) - - - System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement + + System.ServiceModel.Configuration.WebSocketTransportSettingsElement - - 32 - - - 8192 - - - 16384 - - - 4096 - - - 16384 - - - System.Text.UTF8Encoding - - - System.ServiceModel.Configuration.HttpTransportElement - - - False - - - 524288 - - - 65536 - - - False - - - Anonymous + + Never - + False - - StrongWildcard - - - True - - - 65536 - - - - - - Anonymous + + 00:00:00 - + - - Buffered - - + False - - True - - - System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement - - - Never - - - TransportSelected - - - (Collection) + + 0 - + - - http://localhost/ServiceStack.Examples.Host.Web/ServiceStack/Soap12 + + http://localhost:64067/ServiceStack/soap12 - + - + customBinding - + WSHttpBinding_ISyncReply - + Soap12ServiceReference.ISyncReply - + System.ServiceModel.Configuration.AddressHeaderCollectionElement - + <Header /> - + System.ServiceModel.Configuration.IdentityElement - + System.ServiceModel.Configuration.UserPrincipalNameElement - + - + System.ServiceModel.Configuration.ServicePrincipalNameElement - + - + System.ServiceModel.Configuration.DnsElement - + - + System.ServiceModel.Configuration.RsaElement - + - + System.ServiceModel.Configuration.CertificateElement - + - + System.ServiceModel.Configuration.CertificateReferenceElement - + My - + LocalMachine - + FindBySubjectDistinguishedName - + - + False - + WSHttpBinding_ISyncReply - - - - - - http://localhost/ServiceStack.Examples.Host.Web/ServiceStack/Soap12 - - - - - - customBinding - - - WSHttpBinding_IOneWay - - - Soap12ServiceReference.IOneWay - - - System.ServiceModel.Configuration.AddressHeaderCollectionElement - - - <Header /> - - - System.ServiceModel.Configuration.IdentityElement - - - System.ServiceModel.Configuration.UserPrincipalNameElement - - - - - - System.ServiceModel.Configuration.ServicePrincipalNameElement - - - - - - System.ServiceModel.Configuration.DnsElement - - - - - - System.ServiceModel.Configuration.RsaElement - - - - - - System.ServiceModel.Configuration.CertificateElement - - + - - System.ServiceModel.Configuration.CertificateReferenceElement - - - My - - - LocalMachine - - - FindBySubjectDistinguishedName - - + - - False - - - WSHttpBinding_IOneWay - diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/ServiceStack.Examples.Clients.csproj b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/ServiceStack.Examples.Clients.csproj index f334c671..0342aee2 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/ServiceStack.Examples.Clients.csproj +++ b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/ServiceStack.Examples.Clients.csproj @@ -12,7 +12,7 @@ Properties ServiceStack.Examples.Clients ServiceStack.Examples.Clients - v3.5 + v4.5 @@ -25,6 +25,8 @@ + + true @@ -36,6 +38,7 @@ 4 x86 AllRules.ruleset + false pdbonly @@ -45,68 +48,67 @@ prompt 4 AllRules.ruleset + false - - ..\..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.dll + + ..\..\packages\ServiceStack.4.5.0\lib\net45\ServiceStack.dll + True - - False - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Common.dll + + ..\..\packages\ServiceStack.Client.4.5.0\lib\net45\ServiceStack.Client.dll + True - - False - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Interfaces.dll + + ..\..\packages\ServiceStack.Common.4.5.0\lib\net45\ServiceStack.Common.dll + True - - False - ..\..\packages\ServiceStack.OrmLite.SqlServer.3.9.63\lib\net35\ServiceStack.OrmLite.dll + + ..\..\packages\ServiceStack.Interfaces.4.5.0\lib\portable-wp80+sl5+net45+win8+wpa81+monotouch+monoandroid+xamarin.ios10\ServiceStack.Interfaces.dll + True - - ..\..\packages\ServiceStack.OrmLite.SqlServer.3.9.63\lib\net35\ServiceStack.OrmLite.SqlServer.dll - - - ..\..\packages\ServiceStack.Redis.3.9.63\lib\net35\ServiceStack.Redis.dll - - - ..\..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.ServiceInterface.dll - - - False - ..\..\packages\ServiceStack.Text.3.9.63\lib\net35\ServiceStack.Text.dll + + ..\..\packages\ServiceStack.Text.4.5.0\lib\net45\ServiceStack.Text.dll + True - - 3.5 - - - 3.5 - + - 3.0 - 3.0 - - - 3.5 - - - 3.5 + + + + + + + + + + + WCF Proxy Generator + Reference.cs + + + + + WCF Proxy Generator + Reference.cs + @@ -120,23 +122,6 @@ - - - - - - - - - WCF Proxy Generator - Reference.cs - - - - - WCF Proxy Generator - Reference.cs - @@ -148,6 +133,16 @@ + + True + True + Reference.svcmap + + + True + True + Reference.svcmap + Soap12.aspx ASPXCodeBehind @@ -163,16 +158,6 @@ Default.aspx - - True - True - Reference.svcmap - - - True - True - Reference.svcmap - Soap11.aspx ASPXCodeBehind @@ -184,42 +169,16 @@ + + + - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - - 10.0 $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) @@ -251,5 +210,10 @@ + + + + + \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Silverlight.htm b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Silverlight.htm index be686cad..2eee516c 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Silverlight.htm +++ b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Silverlight.htm @@ -69,7 +69,7 @@

Calling web services using Silverlight

For performance reasons, the preferred to call ServiceStack services for Silverlight clients is using standard DataContracts via the XML endpoint at:
- ~/ServiceStack/Xml/SyncReply/{ServiceName} + ~/servicestack/xml/reply/{ServiceName}

As Silverlight is a different target runtime you will not be able to reference the diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Soap11.aspx.cs b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Soap11.aspx.cs index d60ed0af..e637488e 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Soap11.aspx.cs +++ b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Soap11.aspx.cs @@ -3,142 +3,147 @@ using System.Linq; using System.ServiceModel; using System.Text; -using ServiceStack.Common.Extensions; using ServiceStack.Examples.Clients.Soap11ServiceReference; namespace ServiceStack.Examples.Clients { - public partial class Soap11 : System.Web.UI.Page - { - private const string EndpointUri = "http://localhost/ServiceStack.Examples.Host.Web/ServiceStack/Soap11"; - - //Generated proxy when using 'Add Service Reference' on the EndpointUri above. - //Thank WCF for the config ugliness - readonly SyncReplyClient client = new SyncReplyClient( - new BasicHttpBinding - { - MaxReceivedMessageSize = int.MaxValue, - HostNameComparisonMode = HostNameComparisonMode.StrongWildcard - }, - new EndpointAddress(EndpointUri)); - - protected void Page_Load(object sender, EventArgs e) - { - } - - protected void btnGetFactorial_Click(object sender, EventArgs e) - { - litGetFactorialResult.Text = litGetFactorialError.Text = ""; - try - { - var longValue = long.Parse(txtGetFactorial.Text); - var result = client.GetFactorial(longValue); - litGetFactorialResult.Text = result.ToString(); - } - catch (Exception ex) - { - litGetFactorialError.Text = ex.Message; - } - } - - protected void btnGetFibonacci_Click(object sender, EventArgs e) - { - litGetFibonacciResult.Text = litGetFibonacciError.Text = ""; - try - { - var skipValue = long.Parse(txtGetFibonacciSkip.Text); - var takeValue = long.Parse(txtGetFibonacciTake.Text); - var results = client.GetFibonacciNumbers(skipValue, takeValue); - - litGetFibonacciResult.Text = string.Join(", ", results.ConvertAll(x => x.ToString()).ToArray()); - } - catch (Exception ex) - { - litGetFibonacciError.Text = ex.Message; - } - } - - protected void btnStoreNewUser_Click(object sender, EventArgs e) - { - litStoreNewUserResult.Text = litStoreNewUserError.Text = ""; - try - { - long userIdResult; - var responseStatus = client.StoreNewUser(out userIdResult, - txtStoreNewUserEmail.Text, - txtStoreNewUserPassword.Text, - txtStoreNewUserUsername.Text); - - if (responseStatus.ErrorCode != null) - { - litStoreNewUserError.Text = responseStatus.ErrorCode.ToEnglish(); - return; - } - - litStoreNewUserResult.Text = "New User Id: " + userIdResult; - var userIds = new List(txtGetUsersUserIds.Text.Split(',')) - { - userIdResult.ToString() - }.Where(x => !string.IsNullOrEmpty(x.Trim())); - - txtGetUsersUserIds.Text = string.Join(",", userIds.ToArray()); - } - catch (Exception ex) - { - litStoreNewUserError.Text = ex.Message; - } - } - - protected void btnDeleteAllUsers_Click(object sender, EventArgs e) - { - litStoreNewUserResult.Text = litStoreNewUserError.Text = ""; - try - { - long userIdResult; - client.DeleteAllUsers(out userIdResult); - - litStoreNewUserResult.Text = "All users were deleted."; - } - catch (Exception ex) - { - litStoreNewUserError.Text = ex.Message; - } - } - - protected void btnGetUsers_Click(object sender, EventArgs e) - { - litGetUsersResult.Text = litGetUsersError.Text = ""; - try - { - User[] userResults; - var userIds = new List(txtGetUsersUserIds.Text.Split(',')) - .Where(x => !string.IsNullOrEmpty(x.Trim())) - .ConvertAll(x => long.Parse(x.Trim())).ToArray(); - - client.GetUsers(out userResults, userIds, null); - - if (userResults != null && userIds.Length > 0) - { - var sb = new StringBuilder(); - - foreach (var user in userResults) - { - sb.AppendFormat("
{0}
{1}
\n", - user.UserName, user.Password); - } - - litGetUsersResult.Text = sb.ToString(); - } - else - { - litGetUsersResult.Text = "No matching users found."; - } - } - catch (Exception ex) - { - litGetUsersError.Text = ex.Message; - } - } - } + public partial class Soap11 : System.Web.UI.Page + { + private const string EndpointUri = "http://localhost:64067/ServiceStack/soap11"; + + //Generated proxy when using 'Add Service Reference' on the EndpointUri above. + //Thank WCF for the config ugliness + readonly SyncReplyClient client = new SyncReplyClient( + new BasicHttpBinding + { + MaxReceivedMessageSize = int.MaxValue, + HostNameComparisonMode = HostNameComparisonMode.StrongWildcard + }, + new EndpointAddress(EndpointUri)); + + protected void Page_Load(object sender, EventArgs e) + { + } + + protected void btnGetFactorial_Click(object sender, EventArgs e) + { + litGetFactorialResult.Text = litGetFactorialError.Text = ""; + try + { + var longValue = long.Parse(txtGetFactorial.Text); + var result = client.GetFactorial(new GetFactorial { ForNumber = longValue }); + litGetFactorialResult.Text = result.ToString(); + } + catch (Exception ex) + { + litGetFactorialError.Text = ex.Message; + } + } + + protected void btnGetFibonacci_Click(object sender, EventArgs e) + { + litGetFibonacciResult.Text = litGetFibonacciError.Text = ""; + try + { + var skipValue = long.Parse(txtGetFibonacciSkip.Text); + var takeValue = long.Parse(txtGetFibonacciTake.Text); + var results = client.GetFibonacciNumbers(new GetFibonacciNumbers + { + Skip = skipValue, + Take = takeValue, + }).Results; + + litGetFibonacciResult.Text = string.Join(", ", results.ConvertAll(x => x.ToString()).ToArray()); + } + catch (Exception ex) + { + litGetFibonacciError.Text = ex.Message; + } + } + + protected void btnStoreNewUser_Click(object sender, EventArgs e) + { + litStoreNewUserResult.Text = litStoreNewUserError.Text = ""; + try + { + var response = client.StoreNewUser( + new StoreNewUser + { + Email = txtStoreNewUserEmail.Text, + UserName = txtStoreNewUserUsername.Text, + Password = txtStoreNewUserPassword.Text, + }); + + var userIdResult = response.UserId; + + if (response.ResponseStatus.ErrorCode != null) + { + litStoreNewUserError.Text = response.ResponseStatus.ErrorCode.ToEnglish(); + return; + } + + litStoreNewUserResult.Text = "New User Id: " + userIdResult; + var userIds = new List(txtGetUsersUserIds.Text.Split(',')) + { + userIdResult.ToString() + }.Where(x => !string.IsNullOrEmpty(x.Trim())); + + txtGetUsersUserIds.Text = string.Join(",", userIds.ToArray()); + } + catch (Exception ex) + { + litStoreNewUserError.Text = ex.Message; + } + } + + protected void btnDeleteAllUsers_Click(object sender, EventArgs e) + { + litStoreNewUserResult.Text = litStoreNewUserError.Text = ""; + try + { + client.DeleteAllUsers(new DeleteAllUsers()); + + litStoreNewUserResult.Text = "All users were deleted."; + } + catch (Exception ex) + { + litStoreNewUserError.Text = ex.Message; + } + } + + protected void btnGetUsers_Click(object sender, EventArgs e) + { + litGetUsersResult.Text = litGetUsersError.Text = ""; + try + { + var userIds = new List(txtGetUsersUserIds.Text.Split(',')) + .Where(x => !string.IsNullOrEmpty(x.Trim())) + .Map(x => long.Parse(x.Trim())).ToArray(); + + var userResults = client.GetUsers(new GetUsers { UserIds = userIds, }).Users; + + if (userResults != null && userIds.Length > 0) + { + var sb = new StringBuilder(); + + foreach (User user in userResults) + { + sb.AppendFormat("
{0}
{1}
\n", + user.UserName, user.Password); + } + + litGetUsersResult.Text = sb.ToString(); + } + else + { + litGetUsersResult.Text = "No matching users found."; + } + } + catch (Exception ex) + { + litGetUsersError.Text = ex.Message; + } + } + } } diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Soap12.aspx.cs b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Soap12.aspx.cs index 401d2e18..a4694a9d 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Soap12.aspx.cs +++ b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Soap12.aspx.cs @@ -3,152 +3,157 @@ using System.Linq; using System.ServiceModel; using System.Text; -using ServiceStack.Common.Extensions; using ServiceStack.Examples.Clients.Soap12ServiceReference; namespace ServiceStack.Examples.Clients { - public partial class Soap12 : System.Web.UI.Page - { - private const string EndpointUri = "http://localhost/ServiceStack.Examples.Host.Web/ServiceStack/Soap12"; - - private readonly SyncReplyClient client; - - //Generated proxy when using 'Add Service Reference' on the EndpointUri above. - //Thank WCF for the config ugliness - - public Soap12() - { - var binding = new WSHttpBinding - { - MaxReceivedMessageSize = int.MaxValue, - HostNameComparisonMode = HostNameComparisonMode.StrongWildcard, - MaxBufferPoolSize = 524288, - }; - binding.Security.Mode = SecurityMode.None; - - client = new SyncReplyClient( - binding, - new EndpointAddress(EndpointUri)); - } - - protected void Page_Load(object sender, EventArgs e) - { - } - - protected void btnGetFactorial_Click(object sender, EventArgs e) - { - litGetFactorialResult.Text = litGetFactorialError.Text = ""; - try - { - var longValue = long.Parse(txtGetFactorial.Text); - var result = client.GetFactorial(longValue); - litGetFactorialResult.Text = result.ToString(); - } - catch (Exception ex) - { - litGetFactorialError.Text = ex.Message; - } - } - - protected void btnGetFibonacci_Click(object sender, EventArgs e) - { - litGetFibonacciResult.Text = litGetFibonacciError.Text = ""; - try - { - var skipValue = long.Parse(txtGetFibonacciSkip.Text); - var takeValue = long.Parse(txtGetFibonacciTake.Text); - var results = client.GetFibonacciNumbers(skipValue, takeValue); - - litGetFibonacciResult.Text = string.Join(", ", results.ConvertAll(x => x.ToString()).ToArray()); - } - catch (Exception ex) - { - litGetFibonacciError.Text = ex.Message; - } - } - - protected void btnStoreNewUser_Click(object sender, EventArgs e) - { - litStoreNewUserResult.Text = litStoreNewUserError.Text = ""; - try - { - long userIdResult; - var responseStatus = client.StoreNewUser(out userIdResult, - txtStoreNewUserEmail.Text, - txtStoreNewUserPassword.Text, - txtStoreNewUserUsername.Text); - - if (responseStatus.ErrorCode != null) - { - litStoreNewUserError.Text = responseStatus.ErrorCode.ToEnglish(); - return; - } - - litStoreNewUserResult.Text = "New User Id: " + userIdResult; - var userIds = new List(txtGetUsersUserIds.Text.Split(',')) - { - userIdResult.ToString() - }.Where(x => !string.IsNullOrEmpty(x.Trim())); - - txtGetUsersUserIds.Text = string.Join(",", userIds.ToArray()); - } - catch (Exception ex) - { - litStoreNewUserError.Text = ex.Message; - } - } - - protected void btnDeleteAllUsers_Click(object sender, EventArgs e) - { - litStoreNewUserResult.Text = litStoreNewUserError.Text = ""; - try - { - long userIdResult; - client.DeleteAllUsers(out userIdResult); - - litStoreNewUserResult.Text = "All users were deleted."; - } - catch (Exception ex) - { - litStoreNewUserError.Text = ex.Message; - } - } - - protected void btnGetUsers_Click(object sender, EventArgs e) - { - litGetUsersResult.Text = litGetUsersError.Text = ""; - try - { - User[] userResults; - var userIds = new List(txtGetUsersUserIds.Text.Split(',')) - .Where(x => !string.IsNullOrEmpty(x.Trim())) - .ConvertAll(x => long.Parse(x.Trim())).ToArray(); - - client.GetUsers(out userResults, userIds, null); - - if (userResults != null && userIds.Length > 0) - { - var sb = new StringBuilder(); - - foreach (var user in userResults) - { - sb.AppendFormat("
{0}
{1}
\n", - user.UserName, user.Password); - } - - litGetUsersResult.Text = sb.ToString(); - } - else - { - litGetUsersResult.Text = "No matching users found."; - } - } - catch (Exception ex) - { - litGetUsersError.Text = ex.Message; - } - } - } + public partial class Soap12 : System.Web.UI.Page + { + private const string EndpointUri = "http://localhost:64067/ServiceStack/soap12"; + + private readonly SyncReplyClient client; + + //Generated proxy when using 'Add Service Reference' on the EndpointUri above. + //Thank WCF for the config ugliness + + public Soap12() + { + var binding = new WSHttpBinding + { + MaxReceivedMessageSize = int.MaxValue, + HostNameComparisonMode = HostNameComparisonMode.StrongWildcard, + MaxBufferPoolSize = 524288, + }; + binding.Security.Mode = SecurityMode.None; + + client = new SyncReplyClient( + binding, + new EndpointAddress(EndpointUri)); + } + + protected void Page_Load(object sender, EventArgs e) + { + } + + protected void btnGetFactorial_Click(object sender, EventArgs e) + { + litGetFactorialResult.Text = litGetFactorialError.Text = ""; + try + { + var longValue = long.Parse(txtGetFactorial.Text); + var result = client.GetFactorial(new GetFactorial { ForNumber = longValue }); + litGetFactorialResult.Text = result.ToString(); + } + catch (Exception ex) + { + litGetFactorialError.Text = ex.Message; + } + } + + protected void btnGetFibonacci_Click(object sender, EventArgs e) + { + litGetFibonacciResult.Text = litGetFibonacciError.Text = ""; + try + { + var skipValue = long.Parse(txtGetFibonacciSkip.Text); + var takeValue = long.Parse(txtGetFibonacciTake.Text); + var results = client.GetFibonacciNumbers(new GetFibonacciNumbers + { + Skip = skipValue, + Take = takeValue, + }).Results; + + litGetFibonacciResult.Text = string.Join(", ", results.ConvertAll(x => x.ToString()).ToArray()); + } + catch (Exception ex) + { + litGetFibonacciError.Text = ex.Message; + } + } + + protected void btnStoreNewUser_Click(object sender, EventArgs e) + { + litStoreNewUserResult.Text = litStoreNewUserError.Text = ""; + try + { + var response = client.StoreNewUser( + new StoreNewUser + { + Email = txtStoreNewUserEmail.Text, + UserName = txtStoreNewUserUsername.Text, + Password = txtStoreNewUserPassword.Text, + }); + + var userIdResult = response.UserId; + + if (response.ResponseStatus.ErrorCode != null) + { + litStoreNewUserError.Text = response.ResponseStatus.ErrorCode.ToEnglish(); + return; + } + + litStoreNewUserResult.Text = "New User Id: " + userIdResult; + var userIds = new List(txtGetUsersUserIds.Text.Split(',')) + { + userIdResult.ToString() + }.Where(x => !string.IsNullOrEmpty(x.Trim())); + + txtGetUsersUserIds.Text = string.Join(",", userIds.ToArray()); + } + catch (Exception ex) + { + litStoreNewUserError.Text = ex.Message; + } + } + + protected void btnDeleteAllUsers_Click(object sender, EventArgs e) + { + litStoreNewUserResult.Text = litStoreNewUserError.Text = ""; + try + { + client.DeleteAllUsers(new DeleteAllUsers()); + + litStoreNewUserResult.Text = "All users were deleted."; + } + catch (Exception ex) + { + litStoreNewUserError.Text = ex.Message; + } + } + + protected void btnGetUsers_Click(object sender, EventArgs e) + { + litGetUsersResult.Text = litGetUsersError.Text = ""; + try + { + var userIds = new List(txtGetUsersUserIds.Text.Split(',')) + .Where(x => !string.IsNullOrEmpty(x.Trim())) + .Map(x => long.Parse(x.Trim())).ToArray(); + + var userResults = client.GetUsers(new GetUsers { UserIds = userIds, }).Users; + + if (userResults != null && userIds.Length > 0) + { + var sb = new StringBuilder(); + + foreach (User user in userResults) + { + sb.AppendFormat("
{0}
{1}
\n", + user.UserName, user.Password); + } + + litGetUsersResult.Text = sb.ToString(); + } + else + { + litGetUsersResult.Text = "No matching users found."; + } + } + catch (Exception ex) + { + litGetUsersError.Text = ex.Message; + } + } + } } diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Web.config b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Web.config index 2e767148..700cf7a3 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Web.config +++ b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/Web.config @@ -1,44 +1,35 @@ - - - -
- -
-
-
-
- - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/default.htm b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/default.htm index da2a291b..e074f64f 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/default.htm +++ b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/default.htm @@ -15,7 +15,7 @@ //Create a ClientGateway passing in the baseUrl where your services are hosted. //Note: services not on the same domain require a crossdomain.xml policy var gateway = new servicestack.ClientGateway( - location.protocol + "//" + location.host + '/ServiceStack.Examples.Host.Web/ServiceStack/'); + 'http://localhost:64067/ServiceStack/'); $(function() { @@ -148,7 +148,7 @@

Calling ServiceStack Web Services with Ajax

For performance reasons, the preferred to call ServiceStack services for Ajax clients is using JSON via the JSON endpoint at:
- ~/ServiceStack/Json/SyncReply/{ServiceName} + ~/servicestack/json/reply/{ServiceName}

As this endpoint is just a standard JSON service we can use any ajax client to call them with. @@ -557,11 +557,11 @@

4. Check out the other ways to call your services

This means that calling your services using XML is as easy as sending your request to a different end point. So calling your service via XML is as easy as:
    -
  1. - ServiceStack/Xml/SyncReply/GetFactorial?ForNumber=3 +
  2. + servicestack/xml/reply/GetFactorial?ForNumber=3
  3. -
  4. - ServiceStack/Xml/SyncReply/GetFibonacciNumbers?Skip=3&Take=20 +
  5. + servicestack/xml/reply/GetFibonacciNumbers?Skip=3&Take=20

diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/js/ServiceStack.js b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/js/ServiceStack.js index af171a06..aa49f6d6 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/js/ServiceStack.js +++ b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/js/ServiceStack.js @@ -6,8 +6,8 @@ */ var servicestack = (function(){ var JSC = function(baseUri) { - this.baseSyncReplyUri = path.combine(baseUri, "Json/SyncReply"); - this.baseAsyncOneWayUri = path.combine(baseUri, "Json/AsyncOneWay"); + this.baseSyncReplyUri = path.combine(baseUri, "json/reply"); + this.baseAsyncOneWayUri = path.combine(baseUri, "json/oneway"); }; var P = JSC.prototype; /** diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/packages.config b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/packages.config index f57348a5..6b7d575f 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Clients/packages.config +++ b/src/ServiceStack.Examples/ServiceStack.Examples.Clients/packages.config @@ -1,8 +1,8 @@  - - - - - + + + + + \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Host.Console/App.config b/src/ServiceStack.Examples/ServiceStack.Examples.Host.Console/App.config index a4ca9b56..59c35533 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Host.Console/App.config +++ b/src/ServiceStack.Examples/ServiceStack.Examples.Host.Console/App.config @@ -1,4 +1,4 @@ - + @@ -7,4 +7,4 @@ - \ No newline at end of file + diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Host.Console/AppHost.cs b/src/ServiceStack.Examples/ServiceStack.Examples.Host.Console/AppHost.cs index e7c29cd1..b19d4a2e 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Host.Console/AppHost.cs +++ b/src/ServiceStack.Examples/ServiceStack.Examples.Host.Console/AppHost.cs @@ -1,14 +1,13 @@ using Funq; -using ServiceStack.Common.Utils; using ServiceStack.Configuration; +using ServiceStack.Data; using ServiceStack.Examples.ServiceInterface; using ServiceStack.Examples.ServiceInterface.Support; -using ServiceStack.Examples.ServiceModel.Operations; +using ServiceStack.Examples.ServiceModel; using ServiceStack.Logging; -using ServiceStack.Logging.Support.Logging; using ServiceStack.OrmLite; using ServiceStack.OrmLite.Sqlite; -using ServiceStack.WebHost.Endpoints; +using ExampleConfig = ServiceStack.Examples.ServiceInterface.ExampleConfig; namespace ServiceStack.Examples.Host.Console { @@ -30,21 +29,16 @@ public AppHost() public override void Configure(Container container) { //Signal advanced web browsers what HTTP Methods you accept - base.SetConfig(new EndpointHostConfig + base.SetConfig(new HostConfig { - GlobalResponseHeaders = - { - { "Access-Control-Allow-Origin", "*" }, - { "Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS" }, - }, - WsdlServiceNamespace = "http://www.servicestack.net/types", + DebugMode = true, }); - container.Register(new ConfigurationResourceManager()); + container.Register(new AppSettings()); - var appSettings = container.Resolve(); + var appSettings = container.Resolve(); - container.Register(c => new ExampleConfig(c.Resolve())); + container.Register(c => new ExampleConfig(c.Resolve())); var appConfig = container.Resolve(); container.Register(c => @@ -59,7 +53,7 @@ public override void Configure(Container container) } } - private static void DatabaseTest(IDbConnectionFactory connectionFactory) + private void DatabaseTest(IDbConnectionFactory connectionFactory) { ConfigureDatabase.Init(connectionFactory); @@ -69,11 +63,11 @@ private static void DatabaseTest(IDbConnectionFactory connectionFactory) UserName = "new UserName" }; - var storeHandler = new StoreNewUserService { ConnectionFactory = connectionFactory }; - storeHandler.Execute(storeRequest); + var storeHandler = Container.Resolve(); + storeHandler.Any(storeRequest); - var getAllHandler = new GetAllUsersService { ConnectionFactory = connectionFactory }; - var response = (GetAllUsersResponse)getAllHandler.Execute(new GetAllUsers()); + var getAllHandler = Container.Resolve(); + var response = (GetAllUsersResponse)getAllHandler.Any(new GetAllUsers()); var user = response.Users[0]; diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Host.Console/ServiceStack.Examples.Host.Console.csproj b/src/ServiceStack.Examples/ServiceStack.Examples.Host.Console/ServiceStack.Examples.Host.Console.csproj index 73322a22..787b2c85 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Host.Console/ServiceStack.Examples.Host.Console.csproj +++ b/src/ServiceStack.Examples/ServiceStack.Examples.Host.Console/ServiceStack.Examples.Host.Console.csproj @@ -10,7 +10,7 @@ Properties ServiceStack.Examples.Host.Console ServiceStack.Examples.Host.Console - v3.5 + v4.5 512 @@ -31,6 +31,7 @@ false false true + true @@ -40,8 +41,33 @@ DEBUG;TRACE prompt 4 + false + + x86 AllRules.ruleset + + + true + false + + + true + + + false + false + + + + + false + false + Default + false + + + false pdbonly @@ -51,47 +77,49 @@ prompt 4 AllRules.ruleset + + + false - - ..\..\packages\ServiceStack.OrmLite.Sqlite.Mono.3.9.63\lib\net35\Mono.Data.Sqlite.dll + + ..\..\packages\ServiceStack.OrmLite.Sqlite.Mono.4.5.0\lib\net45\Mono.Data.Sqlite.dll + True - - ..\..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.dll + + ..\..\packages\ServiceStack.4.5.0\lib\net45\ServiceStack.dll + True - - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Common.dll + + ..\..\packages\ServiceStack.Client.4.5.0\lib\net45\ServiceStack.Client.dll + True - - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Interfaces.dll + + ..\..\packages\ServiceStack.Common.4.5.0\lib\net45\ServiceStack.Common.dll + True - - ..\..\packages\ServiceStack.OrmLite.Sqlite.Mono.3.9.63\lib\net35\ServiceStack.OrmLite.dll + + ..\..\packages\ServiceStack.Interfaces.4.5.0\lib\portable-wp80+sl5+net45+win8+wpa81+monotouch+monoandroid+xamarin.ios10\ServiceStack.Interfaces.dll + True - - ..\..\packages\ServiceStack.OrmLite.Sqlite.Mono.3.9.63\lib\net35\ServiceStack.OrmLite.Sqlite.dll + + ..\..\packages\ServiceStack.OrmLite.4.5.0\lib\net45\ServiceStack.OrmLite.dll + True - - ..\..\packages\ServiceStack.OrmLite.SqlServer.3.9.63\lib\net35\ServiceStack.OrmLite.SqlServer.dll + + ..\..\packages\ServiceStack.OrmLite.Sqlite.Mono.4.5.0\lib\net45\ServiceStack.OrmLite.Sqlite.dll + True - - ..\..\packages\ServiceStack.Redis.3.9.63\lib\net35\ServiceStack.Redis.dll - - - ..\..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.ServiceInterface.dll - - - ..\..\packages\ServiceStack.Text.3.9.63\lib\net35\ServiceStack.Text.dll + + ..\..\packages\ServiceStack.Text.4.5.0\lib\net45\ServiceStack.Text.dll + True - 3.5 - 3.5 - 3.5 diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Host.Console/packages.config b/src/ServiceStack.Examples/ServiceStack.Examples.Host.Console/packages.config index 5de3badb..877f9ce2 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Host.Console/packages.config +++ b/src/ServiceStack.Examples/ServiceStack.Examples.Host.Console/packages.config @@ -1,9 +1,10 @@  - - - - - - + + + + + + + \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Host.Console/sqlite3.dll b/src/ServiceStack.Examples/ServiceStack.Examples.Host.Console/sqlite3.dll index 2d241c4e..1058a2b1 100644 Binary files a/src/ServiceStack.Examples/ServiceStack.Examples.Host.Console/sqlite3.dll and b/src/ServiceStack.Examples/ServiceStack.Examples.Host.Console/sqlite3.dll differ diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Host.Web/AppHost.cs b/src/ServiceStack.Examples/ServiceStack.Examples.Host.Web/AppHost.cs index 52d1ec74..4b8323bf 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Host.Web/AppHost.cs +++ b/src/ServiceStack.Examples/ServiceStack.Examples.Host.Web/AppHost.cs @@ -1,16 +1,13 @@ using System; using Funq; -using ServiceStack.CacheAccess; -using ServiceStack.CacheAccess.Providers; -using ServiceStack.Common.Utils; using ServiceStack.Configuration; +using ServiceStack.Data; using ServiceStack.Examples.ServiceInterface; using ServiceStack.Examples.ServiceInterface.Support; +using ServiceStack.Formats; using ServiceStack.Logging; -using ServiceStack.Logging.Support.Logging; using ServiceStack.OrmLite; using ServiceStack.OrmLite.Sqlite; -using ServiceStack.WebHost.Endpoints; namespace ServiceStack.Examples.Host.Web { @@ -30,17 +27,15 @@ public AppHost() : base("ServiceStack Examples", typeof(GetFactorialService).Ass public override void Configure(Container container) { //Permit modern browsers (e.g. Firefox) to allow sending of any REST HTTP Method - base.SetConfig(new EndpointHostConfig + base.SetConfig(new HostConfig { - GlobalResponseHeaders = - { - { "Access-Control-Allow-Origin", "*" }, - { "Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS" }, - }, + DebugMode = true, }); - container.Register(new ConfigurationResourceManager()); - container.Register(c => new ExampleConfig(c.Resolve())); + Plugins.Add(new CorsFeature()); + + container.Register(new AppSettings()); + container.Register(c => new ExampleConfig(c.Resolve())); var appConfig = container.Resolve(); @@ -51,9 +46,6 @@ public override void Configure(Container container) ConfigureDatabase.Init(container.Resolve()); - //The MemoryCacheClient is a great way to get started with caching; nothing external to setup. - container.Register(c => new MemoryCacheClient()); - //If you give Redis a try, you won't be disappointed. This however requires Redis to be installed. //container.Register(c => new BasicRedisClientManager()); diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Host.Web/Global.asax.cs b/src/ServiceStack.Examples/ServiceStack.Examples.Host.Web/Global.asax.cs index fcae3b2c..333e2a1d 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Host.Web/Global.asax.cs +++ b/src/ServiceStack.Examples/ServiceStack.Examples.Host.Web/Global.asax.cs @@ -1,10 +1,7 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using System.Web.Security; -using System.Web.SessionState; -using ServiceStack.Examples.ServiceInterface; +using System.Configuration; +using System.IO; +using ServiceStack.Configuration; namespace ServiceStack.Examples.Host.Web { @@ -13,6 +10,11 @@ public class Global : System.Web.HttpApplication protected void Application_Start(object sender, EventArgs e) { + if (File.Exists(@"C:\src\appsettings.license.txt")) + Licensing.RegisterLicenseFromFile(@"C:\src\appsettings.license.txt"); + else if (string.IsNullOrEmpty(ConfigUtils.GetNullableAppSetting("servicestack:license"))) + throw new ConfigurationErrorsException("A valid license key is required for this demo"); + var appHost = new AppHost(); appHost.Init(); } diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Host.Web/ServiceStack.Examples.Host.Web.csproj b/src/ServiceStack.Examples/ServiceStack.Examples.Host.Web/ServiceStack.Examples.Host.Web.csproj index b35c196a..66306f29 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Host.Web/ServiceStack.Examples.Host.Web.csproj +++ b/src/ServiceStack.Examples/ServiceStack.Examples.Host.Web/ServiceStack.Examples.Host.Web.csproj @@ -12,7 +12,7 @@ Properties ServiceStack.Examples.Host.Web ServiceStack.Examples.Host.Web - v3.5 + v4.5 4.0 @@ -23,6 +23,8 @@ + + true @@ -34,6 +36,7 @@ 4 x86 AllRules.ruleset + false pdbonly @@ -44,67 +47,65 @@ 4 AllRules.ruleset x86 + false - - ..\..\packages\ServiceStack.OrmLite.Sqlite.Mono.3.9.63\lib\net35\Mono.Data.Sqlite.dll + + ..\..\packages\ServiceStack.OrmLite.Sqlite.Mono.4.5.0\lib\net45\Mono.Data.Sqlite.dll + True - - ..\..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.dll + + ..\..\packages\ServiceStack.4.5.0\lib\net45\ServiceStack.dll + True - - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Common.dll + + ..\..\packages\ServiceStack.Client.4.5.0\lib\net45\ServiceStack.Client.dll + True - - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Interfaces.dll + + ..\..\packages\ServiceStack.Common.4.5.0\lib\net45\ServiceStack.Common.dll + True - - False - ..\..\packages\ServiceStack.OrmLite.Sqlite.Mono.3.9.63\lib\net35\ServiceStack.OrmLite.dll + + ..\..\packages\ServiceStack.Interfaces.4.5.0\lib\portable-wp80+sl5+net45+win8+wpa81+monotouch+monoandroid+xamarin.ios10\ServiceStack.Interfaces.dll + True - - ..\..\packages\ServiceStack.OrmLite.Sqlite.Mono.3.9.63\lib\net35\ServiceStack.OrmLite.Sqlite.dll + + ..\..\packages\ServiceStack.OrmLite.4.5.0\lib\net45\ServiceStack.OrmLite.dll + True - - ..\..\packages\ServiceStack.OrmLite.SqlServer.3.9.63\lib\net35\ServiceStack.OrmLite.SqlServer.dll + + ..\..\packages\ServiceStack.OrmLite.Sqlite.Mono.4.5.0\lib\net45\ServiceStack.OrmLite.Sqlite.dll + True - - ..\..\packages\ServiceStack.Redis.3.9.63\lib\net35\ServiceStack.Redis.dll - - - ..\..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.ServiceInterface.dll - - - ..\..\packages\ServiceStack.Text.3.9.63\lib\net35\ServiceStack.Text.dll + + ..\..\packages\ServiceStack.Text.4.5.0\lib\net45\ServiceStack.Text.dll + True - - 3.5 - - - 3.5 - - - 3.5 - - - 3.5 - + + + + + + + + + PreserveNewest - Designer @@ -163,5 +164,10 @@ + + + + + \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Host.Web/Web.config b/src/ServiceStack.Examples/ServiceStack.Examples.Host.Web/Web.config index 405365b5..26a15690 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Host.Web/Web.config +++ b/src/ServiceStack.Examples/ServiceStack.Examples.Host.Web/Web.config @@ -2,27 +2,32 @@ - - + - - + - + + - - - - - - - + + - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Host.Web/clientaccesspolicy.xml b/src/ServiceStack.Examples/ServiceStack.Examples.Host.Web/clientaccesspolicy.xml new file mode 100644 index 00000000..513ee371 --- /dev/null +++ b/src/ServiceStack.Examples/ServiceStack.Examples.Host.Web/clientaccesspolicy.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Host.Web/crossdomain.xml b/src/ServiceStack.Examples/ServiceStack.Examples.Host.Web/crossdomain.xml new file mode 100644 index 00000000..b716a00f --- /dev/null +++ b/src/ServiceStack.Examples/ServiceStack.Examples.Host.Web/crossdomain.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Host.Web/packages.config b/src/ServiceStack.Examples/ServiceStack.Examples.Host.Web/packages.config index 5de3badb..877f9ce2 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.Host.Web/packages.config +++ b/src/ServiceStack.Examples/ServiceStack.Examples.Host.Web/packages.config @@ -1,9 +1,10 @@  - - - - - - + + + + + + + \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.Host.Web/sqlite3.dll b/src/ServiceStack.Examples/ServiceStack.Examples.Host.Web/sqlite3.dll index 2d241c4e..1058a2b1 100644 Binary files a/src/ServiceStack.Examples/ServiceStack.Examples.Host.Web/sqlite3.dll and b/src/ServiceStack.Examples/ServiceStack.Examples.Host.Web/sqlite3.dll differ diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/DeleteAllUsersService.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/DeleteAllUsersService.cs index e50ee1de..3b78cd53 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/DeleteAllUsersService.cs +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/DeleteAllUsersService.cs @@ -1,7 +1,6 @@ -using ServiceStack.Examples.ServiceModel.Operations; +using ServiceStack.Examples.ServiceModel; using ServiceStack.Examples.ServiceModel.Types; using ServiceStack.OrmLite; -using ServiceStack.ServiceHost; namespace ServiceStack.Examples.ServiceInterface { @@ -10,21 +9,13 @@ namespace ServiceStack.Examples.ServiceInterface /// /// The 'Port' attribute is used to link the 'service request' to the 'service implementation' ///
- public class DeleteAllUsersService - : IService + public class DeleteAllUsersService : Service { - //Example of ServiceStack's IOC property injection - public IDbConnectionFactory ConnectionFactory { get; set; } - - public object Execute(DeleteAllUsers request) + public object Any(DeleteAllUsers request) { - using (var dbConn = ConnectionFactory.OpenDbConnection()) - { - dbConn.DeleteAll(); + Db.DeleteAll(); - return new DeleteAllUsersResponse(); - } + return new DeleteAllUsersResponse(); } } - } \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/ExampleConfig.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/ExampleConfig.cs index 049adb89..0dae107c 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/ExampleConfig.cs +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/ExampleConfig.cs @@ -1,4 +1,3 @@ -using ServiceStack.Common.Utils; using ServiceStack.Configuration; namespace ServiceStack.Examples.ServiceInterface @@ -12,7 +11,7 @@ public class ExampleConfig public ExampleConfig() { } - public ExampleConfig(IResourceManager appConfig) + public ExampleConfig(IAppSettings appConfig) { ConnectionString = appConfig.GetString("ConnectionString"); DefaultFibonacciLimit = appConfig.Get("DefaultFibonacciLimit", 10); diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/GetAllUsersService.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/GetAllUsersService.cs index 5f552b1b..66ba2211 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/GetAllUsersService.cs +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/GetAllUsersService.cs @@ -1,22 +1,15 @@ -using ServiceStack.Examples.ServiceModel.Operations; +using ServiceStack.Examples.ServiceModel; using ServiceStack.Examples.ServiceModel.Types; using ServiceStack.OrmLite; -using ServiceStack.ServiceHost; namespace ServiceStack.Examples.ServiceInterface { - public class GetAllUsersService : IService + public class GetAllUsersService : Service { - //Example of ServiceStack's IOC property injection - public IDbConnectionFactory ConnectionFactory { get; set; } - - public object Execute(GetAllUsers request) + public object Any(GetAllUsers request) { - using (var dbConn = ConnectionFactory.OpenDbConnection()) - { - var users = dbConn.Select(); - return new GetAllUsersResponse { Users = new ArrayOfUser(users) }; - } + var users = Db.Select(); + return new GetAllUsersResponse { Users = new ArrayOfUser(users) }; } } diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/GetFactorialService.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/GetFactorialService.cs index 6b6070e4..e8172d09 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/GetFactorialService.cs +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/GetFactorialService.cs @@ -1,5 +1,4 @@ -using ServiceStack.Examples.ServiceModel.Operations; -using ServiceStack.ServiceHost; +using ServiceStack.Examples.ServiceModel; namespace ServiceStack.Examples.ServiceInterface { @@ -7,10 +6,9 @@ namespace ServiceStack.Examples.ServiceInterface /// The purpose of this example is to show the minimum number and detail of classes /// required in order to implement a simple service. ///
- public class GetFactorialService - : IService + public class GetFactorialService : Service { - public object Execute(GetFactorial request) + public GetFactorialResponse Any(GetFactorial request) { return new GetFactorialResponse { Result = GetFactorial(request.ForNumber) }; } diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/GetFibonacciNumbersService.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/GetFibonacciNumbersService.cs index 4cbd4b0c..f22415b9 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/GetFibonacciNumbersService.cs +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/GetFibonacciNumbersService.cs @@ -1,7 +1,5 @@ using System.Collections.Generic; -using ServiceStack.Examples.ServiceModel.Operations; -using ServiceStack.ServiceHost; -using ServiceStack.ServiceInterface.ServiceModel; +using ServiceStack.Examples.ServiceModel; namespace ServiceStack.Examples.ServiceInterface { @@ -11,8 +9,7 @@ namespace ServiceStack.Examples.ServiceInterface /// This purpose of this example is how you would implement a slightly more advanced /// web service returning a slightly more 'complex object'. ///
- public class GetFibonacciNumbersService - : IService + public class GetFibonacciNumbersService : Service { private readonly ExampleConfig config; @@ -22,7 +19,7 @@ public GetFibonacciNumbersService(ExampleConfig config) this.config = config; } - public object Execute(GetFibonacciNumbers request) + public GetFibonacciNumbersResponse Any(GetFibonacciNumbers request) { var skip = request.Skip.GetValueOrDefault(0); var take = request.Take.GetValueOrDefault(config.DefaultFibonacciLimit); diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/GetNorthwindCustomerOrdersCachedService.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/GetNorthwindCustomerOrdersCachedService.cs index 349f0402..171747a4 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/GetNorthwindCustomerOrdersCachedService.cs +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/GetNorthwindCustomerOrdersCachedService.cs @@ -1,9 +1,5 @@ using System; -using ServiceStack.CacheAccess; -using ServiceStack.Common.Utils; -using ServiceStack.Examples.ServiceModel.Operations; -using ServiceStack.ServiceHost; -using ServiceStack.WebHost.Endpoints; +using ServiceStack.Examples.ServiceModel; namespace ServiceStack.Examples.ServiceInterface { @@ -11,19 +7,8 @@ namespace ServiceStack.Examples.ServiceInterface /// This is an example showing how you can take advantage of ServiceStack's built-in /// support for caching in your webservices. ///
- public class GetNorthwindCustomerOrdersCachedService - : IService - - //Tell ServiceStack that this service requires access to the request context - , IRequiresRequestContext + public class GetNorthwindCustomerOrdersCachedService : Service { - //ServiceStack injects the RequestContext in this property - public IRequestContext RequestContext { get; set; } - - //ServiceStack IOC injects the registered ICacheClient provider (if any) in this property - public ICacheClient CacheClient { get; set; } - - public object Execute(GetNorthwindCustomerOrdersCached request) { //create a unique urn to cache these results against @@ -31,7 +16,7 @@ public object Execute(GetNorthwindCustomerOrdersCached request) //Removes all the cached results at this cacheKey if (request.RefreshCache) - RequestContext.RemoveFromCache(this.CacheClient, cacheKey); + Request.RemoveFromCache(this.Cache, cacheKey); /*Return the most optimized result path based upon the incoming request context: + If a cache of the result for the content-type already exists, then: @@ -43,15 +28,11 @@ public object Execute(GetNorthwindCustomerOrdersCached request) - the serailized contentType stored at e.g: Cache[urn:custorders:1.xml] = result.xml - the compressed serialized result stored at e.g: Cache[urn:custorders:1.xml.deflate] = result.xml.deflate */ - return RequestContext.ToOptimizedResultUsingCache(this.CacheClient, cacheKey, () => - new GetNorthwindCustomerOrdersCachedResponse - { + return Request.ToOptimizedResultUsingCache(this.Cache, cacheKey, () => + new GetNorthwindCustomerOrdersCachedResponse { CreatedDate = DateTime.UtcNow, //To determine when this cached result was created CustomerOrders = GetNorthwindCustomerOrdersService.GetCustomerOrders(request.CustomerId) }); } - } - - } \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/GetNorthwindCustomerOrdersService.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/GetNorthwindCustomerOrdersService.cs index 3a1f16bf..2e2e54f7 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/GetNorthwindCustomerOrdersService.cs +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/GetNorthwindCustomerOrdersService.cs @@ -1,8 +1,7 @@ using System; using System.Collections.Generic; -using ServiceStack.Examples.ServiceModel.Operations; +using ServiceStack.Examples.ServiceModel; using ServiceStack.Examples.ServiceModel.Types; -using ServiceStack.ServiceHost; namespace ServiceStack.Examples.ServiceInterface { @@ -10,10 +9,9 @@ namespace ServiceStack.Examples.ServiceInterface /// This is an example of a detailed web service to illustrate how its defined /// ServiceStack and to see what it looks like on the different endpoints. ///
- public class GetNorthwindCustomerOrdersService - : IService + public class GetNorthwindCustomerOrdersService : Service { - public object Execute(GetNorthwindCustomerOrders request) + public object Any(GetNorthwindCustomerOrders request) { return new GetNorthwindCustomerOrdersResponse { diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/GetUsersService.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/GetUsersService.cs index 849d838a..02a96d71 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/GetUsersService.cs +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/GetUsersService.cs @@ -1,8 +1,7 @@ using System.Collections.Generic; -using ServiceStack.Examples.ServiceModel.Operations; +using ServiceStack.Examples.ServiceModel; using ServiceStack.Examples.ServiceModel.Types; using ServiceStack.OrmLite; -using ServiceStack.ServiceHost; namespace ServiceStack.Examples.ServiceInterface { @@ -12,30 +11,23 @@ namespace ServiceStack.Examples.ServiceInterface /// This example shows a simple introduction into SOA-like webservices. /// i.e. group similar operations into a single 'document-centric like' service request. ///
- public class GetUsersService : IService + public class GetUsersService : Service { - //Example of ServiceStack's built-in Funq IOC property injection - public IDbConnectionFactory ConnectionFactory { get; set; } - - public object Execute(GetUsers request) + public GetUsersResponse Any(GetUsers request) { - using (var dbConn = ConnectionFactory.OpenDbConnection()) - { - var users = new List(); + var users = new List(); - if (request.UserIds != null && request.UserIds.Count > 0) - { - users.AddRange(dbConn.GetByIds(request.UserIds)); - } - - if (request.UserNames != null && request.UserNames.Count > 0) - { - users.AddRange(dbConn.Select( - "UserName IN ({0})", request.UserNames.SqlInValues())); - } + if (request.UserIds != null && request.UserIds.Count > 0) + { + users.AddRange(Db.SelectByIds(request.UserIds)); + } - return new GetUsersResponse { Users = new ArrayOfUser(users) }; + if (request.UserNames != null && request.UserNames.Count > 0) + { + users.AddRange(Db.Select(q => request.UserNames.Contains(q.UserName))); } + + return new GetUsersResponse { Users = new ArrayOfUser(users) }; } } } \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/GreetService.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/GreetService.cs index cd102aa9..64f611e5 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/GreetService.cs +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/GreetService.cs @@ -1,14 +1,13 @@ -using ServiceStack.Examples.ServiceModel.Operations; -using ServiceStack.ServiceHost; +using ServiceStack.Examples.ServiceModel; namespace ServiceStack.Examples.ServiceInterface { /// /// An example of a very basic web service /// - public class GreetService : IService + public class GreetService : Service { - public object Execute(Greet request) + public object Any(Greet request) { return new GreetResponse { Result = "Hello " + request.Name }; } diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/MovieRestService.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/MovieRestService.cs index e2c89b92..9c8ee644 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/MovieRestService.cs +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/MovieRestService.cs @@ -1,8 +1,7 @@ -using ServiceStack.Examples.ServiceModel.Operations; +using ServiceStack.Examples.ServiceModel; using ServiceStack.Examples.ServiceModel.Types; using ServiceStack.Logging; using ServiceStack.OrmLite; -using ServiceStack.ServiceHost; namespace ServiceStack.Examples.ServiceInterface { @@ -13,21 +12,11 @@ namespace ServiceStack.Examples.ServiceInterface /// need to combine the types of all your operations into the same DTO as done /// in this example. ///
- public class MovieRestService - : IService - , IRestGetService - , IRestPutService - , IRestPostService - , IRestDeleteService - , IRequiresRequestContext //Ask ServiceStack to inject the RequestContext + public class MovieRestService : Service { private static readonly ILog Log = LogManager.GetLogger(typeof(MovieRestService)); - public IRequestContext RequestContext { get; set; } - - public IDbConnectionFactory ConnectionFactory { get; set; } - - public object Execute(Movies request) + public object Any(Movies request) { return Get(request); } @@ -42,27 +31,24 @@ public object Get(Movies request) { //Alternatively you can infer the HTTP method by inspecting the RequestContext attributes Log.InfoFormat("Using RequestContext to inspect Endpoint attributes: {0}", - this.RequestContext.EndpointAttributes); + this.Request.RequestAttributes); var response = new MoviesResponse(); - using (var dbConn = ConnectionFactory.OpenDbConnection()) + if (request.Id != null) { - if (request.Id != null) - { - // GET /Movies?Id={request.Id} - var movie = dbConn.GetByIdOrDefault(request.Id); - if (movie != null) - { - response.Movies.Add(movie); - } - } - else + // GET /Movies?Id={request.Id} + var movie = Db.SingleById(request.Id); + if (movie != null) { - // GET /Movies - response.Movies = dbConn.Select(); + response.Movies.Add(movie); } } + else + { + // GET /Movies + response.Movies = Db.Select(); + } return response; } @@ -74,10 +60,7 @@ public object Get(Movies request) /// public object Put(Movies request) { - using (var dbConn = ConnectionFactory.OpenDbConnection()) - { - dbConn.Insert(request.Movie); - } + Db.Insert(request.Movie); return new MoviesResponse(); } @@ -89,10 +72,7 @@ public object Put(Movies request) /// public object Delete(Movies request) { - using (var dbConn = ConnectionFactory.OpenDbConnection()) - { - dbConn.DeleteById(request.Id); - } + Db.DeleteById(request.Id); return new MoviesResponse(); } @@ -104,10 +84,7 @@ public object Delete(Movies request) /// public object Post(Movies request) { - using (var dbConn = ConnectionFactory.OpenDbConnection()) - { - dbConn.Update(request.Movie); - } + Db.Update(request.Movie); return new MoviesResponse(); } diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/ResetMovieDatabaseService.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/ResetMovieDatabaseService.cs index 89bdea30..e808a595 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/ResetMovieDatabaseService.cs +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/ResetMovieDatabaseService.cs @@ -1,25 +1,22 @@ +using ServiceStack.Data; using ServiceStack.Examples.ServiceInterface.Support; -using ServiceStack.Examples.ServiceModel.Operations; +using ServiceStack.Examples.ServiceModel; using ServiceStack.Examples.ServiceModel.Types; using ServiceStack.OrmLite; -using ServiceStack.ServiceHost; namespace ServiceStack.Examples.ServiceInterface { /// /// An example of a very basic web service /// - public class ResetMovieDatabaseService : IService + public class ResetMovieDatabaseService : Service { public IDbConnectionFactory ConnectionFactory { get; set; } - public object Execute(ResetMovieDatabase request) + public object Any(ResetMovieDatabase request) { - using (var dbConn = ConnectionFactory.OpenDbConnection()) - { - dbConn.CreateTable(true); - dbConn.SaveAll(ConfigureDatabase.Top5Movies); - } + Db.CreateTable(true); + Db.SaveAll(ConfigureDatabase.Top5Movies); return new ResetMovieDatabaseResponse(); } diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/ServiceStack.Examples.ServiceInterface.csproj b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/ServiceStack.Examples.ServiceInterface.csproj index 941fab3f..49d7fdb4 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/ServiceStack.Examples.ServiceInterface.csproj +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/ServiceStack.Examples.ServiceInterface.csproj @@ -10,7 +10,7 @@ Properties ServiceStack.Examples.ServiceInterface ServiceStack.Examples.ServiceInterface - v3.5 + v4.5 512 @@ -31,6 +31,7 @@ false false true + true @@ -41,6 +42,7 @@ prompt 4 AllRules.ruleset + false pdbonly @@ -50,44 +52,41 @@ prompt 4 AllRules.ruleset + false - - ..\..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.dll + + ..\..\packages\ServiceStack.4.5.0\lib\net45\ServiceStack.dll + True - - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Common.dll + + ..\..\packages\ServiceStack.Client.4.5.0\lib\net45\ServiceStack.Client.dll + True - - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Interfaces.dll + + ..\..\packages\ServiceStack.Common.4.5.0\lib\net45\ServiceStack.Common.dll + True - - ..\..\packages\ServiceStack.OrmLite.SqlServer.3.9.63\lib\net35\ServiceStack.OrmLite.dll + + ..\..\packages\ServiceStack.Interfaces.4.5.0\lib\portable-wp80+sl5+net45+win8+wpa81+monotouch+monoandroid+xamarin.ios10\ServiceStack.Interfaces.dll + True - - ..\..\packages\ServiceStack.OrmLite.SqlServer.3.9.63\lib\net35\ServiceStack.OrmLite.SqlServer.dll + + ..\..\packages\ServiceStack.OrmLite.4.5.0\lib\net45\ServiceStack.OrmLite.dll + True - - ..\..\packages\ServiceStack.Redis.3.9.63\lib\net35\ServiceStack.Redis.dll - - - ..\..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.ServiceInterface.dll - - - ..\..\packages\ServiceStack.Text.3.9.63\lib\net35\ServiceStack.Text.dll + + ..\..\packages\ServiceStack.Text.4.5.0\lib\net45\ServiceStack.Text.dll + True - 3.5 - 3.0 - 3.5 - 3.5 diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/StoreLogsService.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/StoreLogsService.cs index cd203d1f..e214fe41 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/StoreLogsService.cs +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/StoreLogsService.cs @@ -1,29 +1,19 @@ -using ServiceStack.Examples.ServiceModel.Operations; +using ServiceStack.Examples.ServiceModel; using ServiceStack.Examples.ServiceModel.Types; using ServiceStack.OrmLite; -using ServiceStack.ServiceHost; -using ServiceStack.Text; namespace ServiceStack.Examples.ServiceInterface { - public class StoreLogsService - : IService + public class StoreLogsService : Service { - //Example of ServiceStack's built-in Funq IOC property injection - public IDbConnectionFactory ConnectionFactory { get; set; } - - public object Execute(StoreLogs request) + public object Any(StoreLogs request) { - using (var dbConn = ConnectionFactory.OpenDbConnection()) - { - if (!request.Loggers.IsNullOrEmpty()) { dbConn.SaveAll(request.Loggers); } + if (!request.Loggers.IsNullOrEmpty()) { Db.SaveAll(request.Loggers); } - return new StoreLogsResponse - { - ExistingLogs = new ArrayOfLogger(dbConn.Select()) - }; - } + return new StoreLogsResponse + { + ExistingLogs = new ArrayOfLogger(Db.Select()) + }; } } - } \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/StoreNewUserService.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/StoreNewUserService.cs index ddef6094..0d69cfb7 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/StoreNewUserService.cs +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/StoreNewUserService.cs @@ -1,11 +1,7 @@ using System; -using System.Linq; -using ServiceStack.Common.Extensions; -using ServiceStack.Examples.ServiceModel.Operations; +using ServiceStack.Examples.ServiceModel; using ServiceStack.Examples.ServiceModel.Types; using ServiceStack.OrmLite; -using ServiceStack.ServiceHost; -using ServiceStack.ServiceInterface.ServiceModel; namespace ServiceStack.Examples.ServiceInterface { @@ -19,42 +15,37 @@ namespace ServiceStack.Examples.ServiceInterface /// Note: This example is kept simple on purpose. In practice you would not persist your DTO's /// (i.e. DataContract's) directly. Instead you would use your domain models (aka ORM) for this task. ///
- public class StoreNewUserService : IService + public class StoreNewUserService : Service { - //Example of ServiceStack's built-in Funq IOC property injection - public IDbConnectionFactory ConnectionFactory { get; set; } - private const string ErrorAlreadyExists = "UserNameMustBeUnique"; - public object Execute(StoreNewUser request) + public StoreNewUserResponse Any(StoreNewUser request) { - using (var dbConn = ConnectionFactory.OpenDbConnection()) - { - var existingUsers = dbConn.Select("UserName = {0}", request.UserName).ToList(); + var existingUsers = Db.Select(q => q.UserName == request.UserName); - if (existingUsers.Count > 0) + if (existingUsers.Count > 0) + { + return new StoreNewUserResponse { - return new StoreNewUserResponse + ResponseStatus = new ResponseStatus { - ResponseStatus = new ResponseStatus { - ErrorCode = ErrorAlreadyExists, - Message = ErrorAlreadyExists.ToEnglish() - } - }; - } - - var newUser = new User - { - UserName = request.UserName, - Email = request.Email, - Password = request.Password, - GlobalId = Guid.NewGuid(), + ErrorCode = ErrorAlreadyExists, + Message = ErrorAlreadyExists.ToEnglish() + } }; + } + + var newUser = new User + { + UserName = request.UserName, + Email = request.Email, + Password = request.Password, + GlobalId = Guid.NewGuid(), + }; - dbConn.Insert(newUser); + Db.Save(newUser); - return new StoreNewUserResponse { UserId = dbConn.GetLastInsertId() }; - } + return new StoreNewUserResponse { UserId = newUser.Id }; } } } \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/Support/ConfigureDatabase.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/Support/ConfigureDatabase.cs index e53118dd..f3e49fa8 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/Support/ConfigureDatabase.cs +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/Support/ConfigureDatabase.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using ServiceStack.Data; using ServiceStack.Examples.ServiceModel.Types; using ServiceStack.OrmLite; diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/packages.config b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/packages.config index f57348a5..4534703d 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/packages.config +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceInterface/packages.config @@ -1,8 +1,9 @@  - - - - - + + + + + + \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/DeleteAllUsers.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/DeleteAllUsers.cs new file mode 100644 index 00000000..8098502d --- /dev/null +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/DeleteAllUsers.cs @@ -0,0 +1,27 @@ +using System.Runtime.Serialization; + +namespace ServiceStack.Examples.ServiceModel +{ + /// + /// Use Plain old DataContract's Define your 'Service Interface' + /// + [DataContract(Namespace = ExampleConfig.DefaultNamespace)] + public class DeleteAllUsers + { + } + + [DataContract(Namespace = ExampleConfig.DefaultNamespace)] + public class DeleteAllUsersResponse + { + public DeleteAllUsersResponse() + { + this.ResponseStatus = new ResponseStatus(); + } + + [DataMember] + public long UserId { get; set; } + + [DataMember] + public ResponseStatus ResponseStatus { get; set; } + } +} \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/ExampleConfig.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/ExampleConfig.cs index b6c6c41f..34a3e606 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/ExampleConfig.cs +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/ExampleConfig.cs @@ -1,4 +1,3 @@ -using ServiceStack.Common.Utils; using ServiceStack.Configuration; namespace ServiceStack.Examples.ServiceModel @@ -12,7 +11,7 @@ public class ExampleConfig public ExampleConfig() { } - public ExampleConfig(IResourceManager appConfig) + public ExampleConfig(IAppSettings appConfig) { ConnectionString = appConfig.GetString("ConnectionString"); DefaultFibonacciLimit = appConfig.Get("DefaultFibonacciLimit", 10); @@ -20,6 +19,5 @@ public ExampleConfig(IResourceManager appConfig) public string ConnectionString { get; set; } public int DefaultFibonacciLimit { get; set; } - } } \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/GetAllUsers.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/GetAllUsers.cs similarity index 81% rename from src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/GetAllUsers.cs rename to src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/GetAllUsers.cs index a483341d..e650656c 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/GetAllUsers.cs +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/GetAllUsers.cs @@ -1,8 +1,7 @@ using System.Runtime.Serialization; using ServiceStack.Examples.ServiceModel.Types; -using ServiceStack.ServiceInterface.ServiceModel; -namespace ServiceStack.Examples.ServiceModel.Operations +namespace ServiceStack.Examples.ServiceModel { /// /// Use Plain old DataContract's Define your 'Service Interface' @@ -20,8 +19,11 @@ public GetAllUsersResponse() { this.ResponseStatus = new ResponseStatus(); } - - public ArrayOfUser Users { get; set; } + + [DataMember] + public ArrayOfUser Users { get; set; } + + [DataMember] public ResponseStatus ResponseStatus { get; set; } } } \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/GetFactorial.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/GetFactorial.cs new file mode 100644 index 00000000..7f9e2d5e --- /dev/null +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/GetFactorial.cs @@ -0,0 +1,24 @@ +using System.Runtime.Serialization; + +namespace ServiceStack.Examples.ServiceModel +{ + /// + /// Use Plain old DataContract's Define your 'Service Interface'. + /// + /// The purpose of this example is to show the minimum number and detail of classes + /// required in order to implement a simple service. + /// + [DataContract(Namespace = ExampleConfig.DefaultNamespace)] + public class GetFactorial + { + [DataMember] + public long ForNumber { get; set; } + } + + [DataContract(Namespace = ExampleConfig.DefaultNamespace)] + public class GetFactorialResponse + { + [DataMember] + public long Result { get; set; } + } +} \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/GetFibonacciNumbers.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/GetFibonacciNumbers.cs new file mode 100644 index 00000000..0f3b81c9 --- /dev/null +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/GetFibonacciNumbers.cs @@ -0,0 +1,27 @@ +using System.Runtime.Serialization; + +namespace ServiceStack.Examples.ServiceModel +{ + /// + /// Use Plain old DataContract's Define your 'Service Interface' + /// + /// This purpose of this example is how you would implement a more advanced + /// web service returning a slightly more 'complex object'. + /// + [DataContract(Namespace = ExampleConfig.DefaultNamespace)] + public class GetFibonacciNumbers + { + [DataMember] + public long? Skip { get; set; } + + [DataMember] + public long? Take { get; set; } + } + + [DataContract(Namespace = ExampleConfig.DefaultNamespace)] + public class GetFibonacciNumbersResponse + { + [DataMember] + public ArrayOfLong Results { get; set; } + } +} \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/GetNorthwindCustomerOrders.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/GetNorthwindCustomerOrders.cs new file mode 100644 index 00000000..be11cd14 --- /dev/null +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/GetNorthwindCustomerOrders.cs @@ -0,0 +1,27 @@ +using System.Runtime.Serialization; +using ServiceStack.Examples.ServiceModel.Types; + +namespace ServiceStack.Examples.ServiceModel +{ + [DataContract(Namespace = ExampleConfig.DefaultNamespace)] + public class GetNorthwindCustomerOrders + { + [DataMember] + public string CustomerId { get; set; } + } + + [DataContract(Namespace = ExampleConfig.DefaultNamespace)] + public class GetNorthwindCustomerOrdersResponse + { + public GetNorthwindCustomerOrdersResponse() + { + this.ResponseStatus = new ResponseStatus(); + } + + [DataMember] + public CustomerOrders CustomerOrders { get; set; } + + [DataMember] + public ResponseStatus ResponseStatus { get; set; } + } +} \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/GetNorthwindCustomerOrdersCached.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/GetNorthwindCustomerOrdersCached.cs new file mode 100644 index 00000000..c57847da --- /dev/null +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/GetNorthwindCustomerOrdersCached.cs @@ -0,0 +1,34 @@ +using System; +using System.Runtime.Serialization; +using ServiceStack.Examples.ServiceModel.Types; + +namespace ServiceStack.Examples.ServiceModel +{ + [DataContract(Namespace = ExampleConfig.DefaultNamespace)] + public class GetNorthwindCustomerOrdersCached + { + [DataMember] + public bool RefreshCache { get; set; } + + [DataMember] + public string CustomerId { get; set; } + } + + [DataContract(Namespace = ExampleConfig.DefaultNamespace)] + public class GetNorthwindCustomerOrdersCachedResponse + { + public GetNorthwindCustomerOrdersCachedResponse() + { + this.ResponseStatus = new ResponseStatus(); + } + + [DataMember] + public DateTime CreatedDate { get; set; } + + [DataMember] + public CustomerOrders CustomerOrders { get; set; } + + [DataMember] + public ResponseStatus ResponseStatus { get; set; } + } +} \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/GetUsers.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/GetUsers.cs new file mode 100644 index 00000000..4e63dec6 --- /dev/null +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/GetUsers.cs @@ -0,0 +1,37 @@ +using System.Collections.Generic; +using System.Runtime.Serialization; +using ServiceStack.Examples.ServiceModel.Types; + +namespace ServiceStack.Examples.ServiceModel +{ + /// + /// Use Plain old DataContract's Define your 'Service Interface' + /// + /// This example shows the flavour of SOA-style webservices. + /// i.e. group similar operations into a single batch-full service request. + /// + [DataContract(Namespace = ExampleConfig.DefaultNamespace)] + public class GetUsers + { + [DataMember] + public List UserIds { get; set; } + + [DataMember] + public List UserNames { get; set; } + } + + [DataContract(Namespace = ExampleConfig.DefaultNamespace)] + public class GetUsersResponse + { + public GetUsersResponse() + { + this.ResponseStatus = new ResponseStatus(); + } + + [DataMember] + public ArrayOfUser Users { get; set; } + + [DataMember] + public ResponseStatus ResponseStatus { get; set; } + } +} \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Greet.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Greet.cs new file mode 100644 index 00000000..efab31c4 --- /dev/null +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Greet.cs @@ -0,0 +1,18 @@ +using System.Runtime.Serialization; + +namespace ServiceStack.Examples.ServiceModel +{ + [DataContract(Namespace = ExampleConfig.DefaultNamespace)] + public class Greet + { + [DataMember] + public string Name { get; set; } + } + + [DataContract(Namespace = ExampleConfig.DefaultNamespace)] + public class GreetResponse + { + [DataMember] + public string Result { get; set; } + } +} \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Movies.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Movies.cs new file mode 100644 index 00000000..6cfec6e8 --- /dev/null +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Movies.cs @@ -0,0 +1,32 @@ +using System.Collections.Generic; +using System.Runtime.Serialization; +using ServiceStack.Examples.ServiceModel.Types; + +namespace ServiceStack.Examples.ServiceModel +{ + [DataContract(Namespace = ExampleConfig.DefaultNamespace)] + public class Movies + { + [DataMember] + public string Id { get; set; } + + [DataMember] + public Movie Movie { get; set; } + } + + [DataContract(Namespace = ExampleConfig.DefaultNamespace)] + public class MoviesResponse + { + public MoviesResponse() + { + this.ResponseStatus = new ResponseStatus(); + this.Movies = new List(); + } + + [DataMember] + public ResponseStatus ResponseStatus { get; set; } + + [DataMember] + public List Movies { get; set; } + } +} \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/DeleteAllUsers.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/DeleteAllUsers.cs deleted file mode 100644 index c4c45e18..00000000 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/DeleteAllUsers.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System.Runtime.Serialization; -using ServiceStack.ServiceInterface.ServiceModel; - -namespace ServiceStack.Examples.ServiceModel.Operations -{ - /// - /// Use Plain old DataContract's Define your 'Service Interface' - /// - public class DeleteAllUsers - { - } - - public class DeleteAllUsersResponse - { - public DeleteAllUsersResponse() - { - this.ResponseStatus = new ResponseStatus(); - } - - public long UserId { get; set; } - - public ResponseStatus ResponseStatus { get; set; } - } -} \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/GetFactorial.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/GetFactorial.cs deleted file mode 100644 index b50d6310..00000000 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/GetFactorial.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System.Runtime.Serialization; - -namespace ServiceStack.Examples.ServiceModel.Operations -{ - /// - /// Use Plain old DataContract's Define your 'Service Interface'. - /// - /// The purpose of this example is to show the minimum number and detail of classes - /// required in order to implement a simple service. - /// - public class GetFactorial - { - public long ForNumber { get; set; } - } - - public class GetFactorialResponse - { - public long Result { get; set; } - } -} \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/GetFibonacciNumbers.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/GetFibonacciNumbers.cs deleted file mode 100644 index 45eb5fca..00000000 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/GetFibonacciNumbers.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System.Runtime.Serialization; -using ServiceStack.ServiceInterface.ServiceModel; - -namespace ServiceStack.Examples.ServiceModel.Operations -{ - /// - /// Use Plain old DataContract's Define your 'Service Interface' - /// - /// This purpose of this example is how you would implement a more advanced - /// web service returning a slightly more 'complex object'. - /// - public class GetFibonacciNumbers - { - public long? Skip { get; set; } - - public long? Take { get; set; } - } - - public class GetFibonacciNumbersResponse - { - public ArrayOfLong Results { get; set; } - } -} \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/GetNorthwindCustomerOrders.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/GetNorthwindCustomerOrders.cs deleted file mode 100644 index 35e704fe..00000000 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/GetNorthwindCustomerOrders.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System.Runtime.Serialization; -using ServiceStack.ServiceInterface.ServiceModel; -using CustomerOrders=ServiceStack.Examples.ServiceModel.Types.CustomerOrders; - -namespace ServiceStack.Examples.ServiceModel.Operations -{ - public class GetNorthwindCustomerOrders - { - public string CustomerId { get; set; } - } - - public class GetNorthwindCustomerOrdersResponse - { - public GetNorthwindCustomerOrdersResponse() - { - this.ResponseStatus = new ResponseStatus(); - } - - public CustomerOrders CustomerOrders { get; set; } - - public ResponseStatus ResponseStatus { get; set; } - } -} \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/GetNorthwindCustomerOrdersCached.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/GetNorthwindCustomerOrdersCached.cs deleted file mode 100644 index 6ced9cbf..00000000 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/GetNorthwindCustomerOrdersCached.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; -using System.Runtime.Serialization; -using ServiceStack.ServiceInterface.ServiceModel; -using CustomerOrders=ServiceStack.Examples.ServiceModel.Types.CustomerOrders; - -namespace ServiceStack.Examples.ServiceModel.Operations -{ - public class GetNorthwindCustomerOrdersCached - { - public bool RefreshCache { get; set; } - - public string CustomerId { get; set; } - } - - public class GetNorthwindCustomerOrdersCachedResponse - { - public GetNorthwindCustomerOrdersCachedResponse() - { - this.ResponseStatus = new ResponseStatus(); - } - - public DateTime CreatedDate { get; set; } - - public CustomerOrders CustomerOrders { get; set; } - - public ResponseStatus ResponseStatus { get; set; } - } -} \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/GetUsers.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/GetUsers.cs deleted file mode 100644 index 13d3cf03..00000000 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/GetUsers.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using System.Runtime.Serialization; -using ServiceStack.ServiceInterface.ServiceModel; -using ArrayOfUser=ServiceStack.Examples.ServiceModel.Types.ArrayOfUser; - -namespace ServiceStack.Examples.ServiceModel.Operations -{ - /// - /// Use Plain old DataContract's Define your 'Service Interface' - /// - /// This example shows the flavour of SOA-style webservices. - /// i.e. group similar operations into a single batch-full service request. - /// - public class GetUsers - { - public List UserIds { get; set; } - - public List UserNames { get; set; } - } - - public class GetUsersResponse - { - public GetUsersResponse() - { - this.ResponseStatus = new ResponseStatus(); - } - - public ArrayOfUser Users { get; set; } - - public ResponseStatus ResponseStatus { get; set; } - } -} \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/Greet.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/Greet.cs deleted file mode 100644 index 115b5b4a..00000000 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/Greet.cs +++ /dev/null @@ -1,12 +0,0 @@ -namespace ServiceStack.Examples.ServiceModel.Operations -{ - public class Greet - { - public string Name { get; set; } - } - - public class GreetResponse - { - public string Result { get; set; } - } -} \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/Movies.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/Movies.cs deleted file mode 100644 index e8332ec3..00000000 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/Movies.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System.Collections.Generic; -using System.Runtime.Serialization; -using ServiceStack.ServiceInterface.ServiceModel; -using Movie=ServiceStack.Examples.ServiceModel.Types.Movie; - -namespace ServiceStack.Examples.ServiceModel.Operations -{ - public class Movies - { - public string Id { get; set; } - - public Movie Movie { get; set; } - } - - public class MoviesResponse - { - public MoviesResponse() - { - this.ResponseStatus = new ResponseStatus(); - this.Movies = new List(); - } - - public ResponseStatus ResponseStatus { get; set; } - - public List Movies { get; set; } - } -} \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/ResetMovieDatabase.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/ResetMovieDatabase.cs deleted file mode 100644 index 129d4576..00000000 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/ResetMovieDatabase.cs +++ /dev/null @@ -1,18 +0,0 @@ -using ServiceStack.ServiceInterface.ServiceModel; - -namespace ServiceStack.Examples.ServiceModel.Operations -{ - public class ResetMovieDatabase - { - } - - public class ResetMovieDatabaseResponse - { - public ResetMovieDatabaseResponse() - { - this.ResponseStatus = new ResponseStatus(); - } - - public ResponseStatus ResponseStatus { get; set; } - } -} \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/StoreLogs.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/StoreLogs.cs deleted file mode 100644 index c36c68b4..00000000 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/StoreLogs.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System.Runtime.Serialization; -using ServiceStack.Examples.ServiceModel.Types; -using ServiceStack.ServiceInterface.ServiceModel; - -namespace ServiceStack.Examples.ServiceModel.Operations -{ - public class StoreLogs - { - public ArrayOfLogger Loggers { get; set; } - } - - public class StoreLogsResponse - { - public StoreLogsResponse() - { - this.ResponseStatus = new ResponseStatus(); - - this.ExistingLogs = new ArrayOfLogger(); - } - - public ArrayOfLogger ExistingLogs { get; set; } - - public ResponseStatus ResponseStatus { get; set; } - } -} \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/StoreNewUser.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/StoreNewUser.cs deleted file mode 100644 index a18519d8..00000000 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Operations/StoreNewUser.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Runtime.Serialization; -using ServiceStack.ServiceInterface.ServiceModel; - -namespace ServiceStack.Examples.ServiceModel.Operations -{ - /// - /// Use Plain old DataContract's Define your 'Service Interface' - /// - /// This example introduces the concept of a generic 'ResponseStatus' that - /// your service client can use to assert that the request was successful. - /// The ResponseStatus DTO also enables you to serialize an exception in your service. - /// - public class StoreNewUser - { - public string UserName { get; set; } - - public string Email { get; set; } - - public string Password { get; set; } - } - - public class StoreNewUserResponse - { - public StoreNewUserResponse() - { - this.ResponseStatus = new ResponseStatus(); - } - - public long UserId { get; set; } - - public ResponseStatus ResponseStatus { get; set; } - } -} \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Properties/AssemblyInfo.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Properties/AssemblyInfo.cs index 6c3424fa..888215d1 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Properties/AssemblyInfo.cs +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Properties/AssemblyInfo.cs @@ -37,6 +37,6 @@ //MONO 2.8 now supports this so we can remove [DataContract(Namespace = ExampleConfig.DefaultNamespace)] when its popular [assembly: ContractNamespace("http://schemas.servicestack.net/types", - ClrNamespace = "ServiceStack.Examples.ServiceModel.Operations")] + ClrNamespace = "ServiceStack.Examples.ServiceModel")] [assembly: ContractNamespace("http://schemas.servicestack.net/types", ClrNamespace = "ServiceStack.Examples.ServiceModel.Types")] diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/ResetMovieDatabase.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/ResetMovieDatabase.cs new file mode 100644 index 00000000..a296ce06 --- /dev/null +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/ResetMovieDatabase.cs @@ -0,0 +1,21 @@ +using System.Runtime.Serialization; + +namespace ServiceStack.Examples.ServiceModel +{ + [DataContract(Namespace = ExampleConfig.DefaultNamespace)] + public class ResetMovieDatabase + { + } + + [DataContract(Namespace = ExampleConfig.DefaultNamespace)] + public class ResetMovieDatabaseResponse + { + public ResetMovieDatabaseResponse() + { + this.ResponseStatus = new ResponseStatus(); + } + + [DataMember] + public ResponseStatus ResponseStatus { get; set; } + } +} \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/ServiceStack.Examples.ServiceModel.csproj b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/ServiceStack.Examples.ServiceModel.csproj index 833eeb7a..00831470 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/ServiceStack.Examples.ServiceModel.csproj +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/ServiceStack.Examples.ServiceModel.csproj @@ -10,7 +10,7 @@ Properties ServiceStack.Examples.ServiceModel ServiceStack.Examples.ServiceModel - v3.5 + v4.5 512 @@ -31,6 +31,7 @@ false false true + true @@ -41,6 +42,7 @@ prompt 4 AllRules.ruleset + false pdbonly @@ -50,55 +52,44 @@ prompt 4 AllRules.ruleset + false - - False - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Common.dll - - - False - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Interfaces.dll - - - False - ..\..\packages\ServiceStack.Text.3.9.63\lib\net35\ServiceStack.Text.dll + + ..\..\packages\ServiceStack.Interfaces.4.5.0\lib\portable-wp80+sl5+net45+win8+wpa81+monotouch+monoandroid+xamarin.ios10\ServiceStack.Interfaces.dll + True - 3.5 - 3.0 - 3.5 - 3.5 - + - - - - - - - - + + + + + + + + - + - - + + diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/StoreLogs.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/StoreLogs.cs new file mode 100644 index 00000000..f7d94cc8 --- /dev/null +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/StoreLogs.cs @@ -0,0 +1,29 @@ +using System.Runtime.Serialization; +using ServiceStack.Examples.ServiceModel.Types; + +namespace ServiceStack.Examples.ServiceModel +{ + [DataContract(Namespace = ExampleConfig.DefaultNamespace)] + public class StoreLogs + { + [DataMember] + public ArrayOfLogger Loggers { get; set; } + } + + [DataContract(Namespace = ExampleConfig.DefaultNamespace)] + public class StoreLogsResponse + { + public StoreLogsResponse() + { + this.ResponseStatus = new ResponseStatus(); + + this.ExistingLogs = new ArrayOfLogger(); + } + + [DataMember] + public ArrayOfLogger ExistingLogs { get; set; } + + [DataMember] + public ResponseStatus ResponseStatus { get; set; } + } +} \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/StoreNewUser.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/StoreNewUser.cs new file mode 100644 index 00000000..7afb4270 --- /dev/null +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/StoreNewUser.cs @@ -0,0 +1,39 @@ +using System.Runtime.Serialization; + +namespace ServiceStack.Examples.ServiceModel +{ + /// + /// Use Plain old DataContract's Define your 'Service Interface' + /// + /// This example introduces the concept of a generic 'ResponseStatus' that + /// your service client can use to assert that the request was successful. + /// The ResponseStatus DTO also enables you to serialize an exception in your service. + /// + [DataContract(Namespace = ExampleConfig.DefaultNamespace)] + public class StoreNewUser + { + [DataMember] + public string UserName { get; set; } + + [DataMember] + public string Email { get; set; } + + [DataMember] + public string Password { get; set; } + } + + [DataContract(Namespace = ExampleConfig.DefaultNamespace)] + public class StoreNewUserResponse + { + public StoreNewUserResponse() + { + this.ResponseStatus = new ResponseStatus(); + } + + [DataMember] + public long UserId { get; set; } + + [DataMember] + public ResponseStatus ResponseStatus { get; set; } + } +} \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Types/Movie.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Types/Movie.cs index cd0f3c2d..d4ee16f5 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Types/Movie.cs +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Types/Movie.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Runtime.Serialization; -using ServiceStack.Common.Extensions; namespace ServiceStack.Examples.ServiceModel.Types { @@ -30,7 +29,7 @@ public bool Equals(Movie other) { if (ReferenceEquals(null, other)) return false; if (ReferenceEquals(this, other)) return true; - return Equals(other.Id, Id) && Equals(other.Title, Title) && other.Rating == Rating && Equals(other.Director, Director) && other.ReleaseDate.Equals(ReleaseDate) && Equals(other.TagLine, TagLine) && Genres.EquivalentTo(other.Genres); + return Equals(other.Id, Id) && Equals(other.Title, Title) && other.Rating == Rating && Equals(other.Director, Director) && other.ReleaseDate.Equals(ReleaseDate) && Equals(other.TagLine, TagLine); } public override bool Equals(object obj) diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Types/NorthwindDtos.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Types/NorthwindDtos.cs index bb056ce8..1bee2939 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Types/NorthwindDtos.cs +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Types/NorthwindDtos.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; -using ServiceStack.DesignPatterns.Model; +using ServiceStack.Model; namespace ServiceStack.Examples.ServiceModel.Types { diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Types/User.cs b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Types/User.cs index d6e6b454..a0673fdf 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Types/User.cs +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/Types/User.cs @@ -8,10 +8,19 @@ namespace ServiceStack.Examples.ServiceModel.Types public class User { [AutoIncrement] - public int Id { get; set; } - public string UserName { get; set; } - public string Email { get; set; } - public string Password { get; set; } - public Guid GlobalId { get; set; } + [DataMember] + public int Id { get; set; } + + [DataMember] + public string UserName { get; set; } + + [DataMember] + public string Email { get; set; } + + [DataMember] + public string Password { get; set; } + + [DataMember] + public Guid GlobalId { get; set; } } } \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/packages.config b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/packages.config index d0392c07..5c87f865 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/packages.config +++ b/src/ServiceStack.Examples/ServiceStack.Examples.ServiceModel/packages.config @@ -1,5 +1,4 @@  - - + \ No newline at end of file diff --git a/src/ServiceStack.Examples/ServiceStack.Examples.sln b/src/ServiceStack.Examples/ServiceStack.Examples.sln index 23da8aec..52c62b9f 100644 --- a/src/ServiceStack.Examples/ServiceStack.Examples.sln +++ b/src/ServiceStack.Examples/ServiceStack.Examples.sln @@ -1,5 +1,5 @@ -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{424661FC-DA57-423D-8FDF-57A39A04B260}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Hosts", "Hosts", "{2218422E-76B4-4128-ACFF-4CE824B0E0CE}" @@ -19,9 +19,6 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServiceStack.Examples.Tests.Integration", "..\..\tests\ServiceStack.Examples.Tests.Integration\ServiceStack.Examples.Tests.Integration.csproj", "{21777EAF-74FD-4D0B-947A-C602D8D3EBBA}" EndProject Global - GlobalSection(CodealikeProperties) = postSolution - SolutionGuid = 4542d3d7-c2a1-4054-aaf9-01d889ad4c8f - EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU @@ -66,4 +63,7 @@ Global {77363223-98F2-4724-8044-569C6485B3A9} = {2218422E-76B4-4128-ACFF-4CE824B0E0CE} {53F87D5C-4540-4AFD-BD19-E081FD8E586B} = {2218422E-76B4-4128-ACFF-4CE824B0E0CE} EndGlobalSection + GlobalSection(CodealikeProperties) = postSolution + SolutionGuid = 4542d3d7-c2a1-4054-aaf9-01d889ad4c8f + EndGlobalSection EndGlobal diff --git a/src/ServiceStack.Hello/Global.asax.cs b/src/ServiceStack.Hello/Global.asax.cs index 94ccb43d..89aa6a30 100644 --- a/src/ServiceStack.Hello/Global.asax.cs +++ b/src/ServiceStack.Hello/Global.asax.cs @@ -1,7 +1,5 @@ using System; using Funq; -using ServiceStack.ServiceHost; -using ServiceStack.WebHost.Endpoints; namespace ServiceStack.Hello { diff --git a/src/ServiceStack.Hello/ServiceStack.Hello.csproj b/src/ServiceStack.Hello/ServiceStack.Hello.csproj index b529cdc5..824f2d75 100644 --- a/src/ServiceStack.Hello/ServiceStack.Hello.csproj +++ b/src/ServiceStack.Hello/ServiceStack.Hello.csproj @@ -12,7 +12,7 @@ Properties ServiceStack.Hello ServiceStack.Hello - v3.5 + v4.5 4.0 @@ -23,6 +23,8 @@ + + true @@ -34,6 +36,7 @@ 4 AllRules.ruleset AnyCPU + false pdbonly @@ -43,38 +46,40 @@ prompt 4 AllRules.ruleset + false - - ..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.dll + + ..\packages\ServiceStack.4.5.0\lib\net45\ServiceStack.dll + True - - ..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Common.dll + + ..\packages\ServiceStack.Client.4.5.0\lib\net45\ServiceStack.Client.dll + True - - ..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Interfaces.dll + + ..\packages\ServiceStack.Common.4.5.0\lib\net45\ServiceStack.Common.dll + True - - ..\packages\ServiceStack.OrmLite.SqlServer.3.9.63\lib\net35\ServiceStack.OrmLite.dll + + ..\packages\ServiceStack.Interfaces.4.5.0\lib\portable-wp80+sl5+net45+win8+wpa81+monotouch+monoandroid+xamarin.ios10\ServiceStack.Interfaces.dll + True - - ..\packages\ServiceStack.OrmLite.SqlServer.3.9.63\lib\net35\ServiceStack.OrmLite.SqlServer.dll - - - ..\packages\ServiceStack.Redis.3.9.63\lib\net35\ServiceStack.Redis.dll - - - ..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.ServiceInterface.dll - - - ..\packages\ServiceStack.Text.3.9.63\lib\net35\ServiceStack.Text.dll + + ..\packages\ServiceStack.Text.4.5.0\lib\net45\ServiceStack.Text.dll + True + - 3.0 + + + + + @@ -131,5 +136,10 @@ + + + + + \ No newline at end of file diff --git a/src/ServiceStack.Hello/ServiceStack.Hello.csproj.user b/src/ServiceStack.Hello/ServiceStack.Hello.csproj.user index 5f2e67e7..5f058333 100644 --- a/src/ServiceStack.Hello/ServiceStack.Hello.csproj.user +++ b/src/ServiceStack.Hello/ServiceStack.Hello.csproj.user @@ -2,6 +2,7 @@ ProjectFiles + false diff --git a/src/ServiceStack.Hello/Web.config b/src/ServiceStack.Hello/Web.config index bb1e108d..275be727 100644 --- a/src/ServiceStack.Hello/Web.config +++ b/src/ServiceStack.Hello/Web.config @@ -4,28 +4,39 @@ - + - - + - + + - + + + + + - + \ No newline at end of file diff --git a/src/ServiceStack.Hello/default.htm b/src/ServiceStack.Hello/default.htm index db7f5dbe..ae0d8649 100644 --- a/src/ServiceStack.Hello/default.htm +++ b/src/ServiceStack.Hello/default.htm @@ -103,7 +103,7 @@

    <system.web>       <httpHandlers> -        <add path="*" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*"/> +        <add path="*" type="ServiceStack.HttpHandlerFactory, ServiceStack" verb="*"/>       </httpHandlers>     </system.web> @@ -112,7 +112,7 @@

      <modules runAllManagedModulesForAllRequests="true"/>       <validation validateIntegratedModeConfiguration="false" />       <handlers> -        <add path="*" name="ServiceStack.Factory" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" preCondition="integratedMode" resourceType="Unspecified" allowPathInfo="true" /> +        <add path="*" name="ServiceStack.Factory" type="ServiceStack.HttpHandlerFactory, ServiceStack" verb="*" preCondition="integratedMode" resourceType="Unspecified" allowPathInfo="true" />       </handlers>     </system.webServer> @@ -133,7 +133,7 @@

  <location path="api">     <system.web>       <httpHandlers> -        <add path="*" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*"/> +        <add path="*" type="ServiceStack.HttpHandlerFactory, ServiceStack" verb="*"/>       </httpHandlers>     </system.web> @@ -142,14 +142,14 @@

      <modules runAllManagedModulesForAllRequests="true"/>       <validation validateIntegratedModeConfiguration="false" />       <handlers> -        <add path="*" name="ServiceStack.Factory" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" preCondition="integratedMode" resourceType="Unspecified" allowPathInfo="true" /> +        <add path="*" name="ServiceStack.Factory" type="ServiceStack.HttpHandlerFactory, ServiceStack" verb="*" preCondition="integratedMode" resourceType="Unspecified" allowPathInfo="true" />       </handlers>     </system.webServer>   </location>   <!-- Required for MONO -->   <system.web>     <httpHandlers> -      <add path="api*" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*"/> +      <add path="api*" type="ServiceStack.HttpHandlerFactory, ServiceStack" verb="*"/>     </httpHandlers>   </system.web>   <!-- Required for IIS7 --> diff --git a/src/ServiceStack.Hello/packages.config b/src/ServiceStack.Hello/packages.config index f57348a5..6b7d575f 100644 --- a/src/ServiceStack.Hello/packages.config +++ b/src/ServiceStack.Hello/packages.config @@ -1,8 +1,8 @@  - - - - - + + + + + \ No newline at end of file diff --git a/src/ServiceStack.MovieRest/.nuget/NuGet.Config b/src/ServiceStack.MovieRest/.nuget/NuGet.Config deleted file mode 100644 index 6a318ad9..00000000 --- a/src/ServiceStack.MovieRest/.nuget/NuGet.Config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/src/ServiceStack.MovieRest/.nuget/NuGet.exe b/src/ServiceStack.MovieRest/.nuget/NuGet.exe deleted file mode 100644 index f1cec45e..00000000 Binary files a/src/ServiceStack.MovieRest/.nuget/NuGet.exe and /dev/null differ diff --git a/src/ServiceStack.MovieRest/.nuget/NuGet.targets b/src/ServiceStack.MovieRest/.nuget/NuGet.targets deleted file mode 100644 index d0ebc753..00000000 --- a/src/ServiceStack.MovieRest/.nuget/NuGet.targets +++ /dev/null @@ -1,136 +0,0 @@ - - - - $(MSBuildProjectDirectory)\..\ - - - false - - - false - - - true - - - false - - - - - - - - - - - $([System.IO.Path]::Combine($(SolutionDir), ".nuget")) - $([System.IO.Path]::Combine($(ProjectDir), "packages.config")) - - - - - $(SolutionDir).nuget - packages.config - - - - - $(NuGetToolsPath)\NuGet.exe - @(PackageSource) - - "$(NuGetExePath)" - mono --runtime=v4.0.30319 $(NuGetExePath) - - $(TargetDir.Trim('\\')) - - -RequireConsent - -NonInteractive - - "$(SolutionDir) " - "$(SolutionDir)" - - - $(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(NonInteractiveSwitch) $(RequireConsentSwitch) -solutionDir $(PaddedSolutionDir) - $(NuGetCommand) pack "$(ProjectPath)" -Properties "Configuration=$(Configuration);Platform=$(Platform)" $(NonInteractiveSwitch) -OutputDirectory "$(PackageOutputDir)" -symbols - - - - RestorePackages; - $(BuildDependsOn); - - - - - $(BuildDependsOn); - BuildPackage; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/ServiceStack.MovieRest/Web/App_Start/AppHost.cs b/src/ServiceStack.MovieRest/Web/App_Start/AppHost.cs index 49417b4e..fa7840fb 100644 --- a/src/ServiceStack.MovieRest/Web/App_Start/AppHost.cs +++ b/src/ServiceStack.MovieRest/Web/App_Start/AppHost.cs @@ -1,28 +1,22 @@ -using ServiceStack.MovieRest.App_Start; namespace ServiceStack.MovieRest.App_Start { using Funq; - using ServiceStack.Common.Utils; - using ServiceStack.OrmLite; - using ServiceStack.OrmLite.Sqlite; - using ServiceStack.ServiceInterface.Cors; - using ServiceStack.Text; - using ServiceStack.WebHost.Endpoints; - - public class AppHost + using OrmLite; + using Text; + using Data; + + public class AppHost : AppHostBase { /// /// Initializes a new instance of your ServiceStack application, with the specified name and assembly containing the services. /// - public AppHost() : base("ServiceStack REST at the Movies!", typeof (MovieService).Assembly) - { - } + public AppHost() : base("ServiceStack REST at the Movies!", typeof (MovieService).Assembly) {} public override void Configure(Container container) { - JsConfig.DateHandler = JsonDateHandler.ISO8601; + JsConfig.DateHandler = DateHandler.ISO8601; //Set JSON web services to return idiomatic JSON camelCase properties JsConfig.EmitCamelCaseNames = true; @@ -37,10 +31,9 @@ public override void Configure(Container container) Plugins.Add(new CorsFeature()); //Enable CORS - SetConfig(new EndpointHostConfig - { - DebugMode = true //Show StackTraces for easier debugging (default auto inferred by Debug/Release builds) - }); + SetConfig(new HostConfig { + DebugMode = true //Show StackTraces for easier debugging (default auto inferred by Debug/Release builds) + }); } } } \ No newline at end of file diff --git a/src/ServiceStack.MovieRest/Web/MovieService.cs b/src/ServiceStack.MovieRest/Web/MovieService.cs index 5cefd03a..2b8adc16 100644 --- a/src/ServiceStack.MovieRest/Web/MovieService.cs +++ b/src/ServiceStack.MovieRest/Web/MovieService.cs @@ -1,177 +1,167 @@ +using System.Runtime.Serialization; + namespace ServiceStack.MovieRest { - using System; - using System.Collections.Generic; - using System.Net; - using ServiceStack.Common; - using ServiceStack.Common.Web; - using ServiceStack.DataAnnotations; - using ServiceStack.OrmLite; - using ServiceStack.ServiceHost; - using ServiceStack.ServiceInterface; - using ServiceStack.Text; - - /// - /// Define your ServiceStack web service request (i.e. Request DTO). - /// - /// The route is defined here rather than in the AppHost. - [Api("GET or DELETE a single movie by Id. Use POST to create a new Movie and PUT to update it")] - [Route("/movies", "POST,PUT,PATCH,DELETE")] - [Route("/movies/{Id}")] - public class Movie : IReturn - { - /// - /// Initializes a new instance of the movie. - /// - public Movie() - { - this.Genres = new List(); - } - - /// - /// Gets or sets the id of the movie. The id will be automatically incremented when added. - /// - [AutoIncrement] - public int Id { get; set; } - - public string ImdbId { get; set; } - public string Title { get; set; } - public decimal Rating { get; set; } - public string Director { get; set; } - public DateTime ReleaseDate { get; set; } - public string TagLine { get; set; } - public List Genres { get; set; } - } - - /// - /// Define your ServiceStack web service response (i.e. Response DTO). - /// - public class MovieResponse - { - /// - /// Gets or sets the movie. - /// - public Movie Movie { get; set; } - } - - /// - /// Create your ServiceStack restful web service implementation. - /// - public class MovieService : Service - { - /// - /// GET /movies/{Id} - /// - public MovieResponse Get(Movie movie) - { - return new MovieResponse - { - Movie = Db.Id(movie.Id), - }; - } - - /// - /// POST /movies - /// returns HTTP Response => - /// 201 Created - /// Location: http://localhost/ServiceStack.MovieRest/movies/{newMovieId} - /// {newMovie DTO in [xml|json|jsv|etc]} - /// - public object Post(Movie movie) - { - Db.Insert(movie); - var newMovieId = Db.GetLastInsertId(); - - var newMovie = new MovieResponse - { - Movie = Db.Id(newMovieId), - }; - - return new HttpResult(newMovie) - { - StatusCode = HttpStatusCode.Created, - Headers = - { - {HttpHeaders.Location, base.Request.AbsoluteUri.CombineWith(newMovieId.ToString())} - } - }; - } - - /// - /// PUT /movies/{id} - /// - public object Put(Movie movie) - { - Db.Update(movie); - - return new HttpResult - { - StatusCode = HttpStatusCode.NoContent, - Headers = - { - {HttpHeaders.Location, this.RequestContext.AbsoluteUri.CombineWith(movie.Id.ToString())} - } - }; - } - - /// - /// DELETE /movies/{Id} - /// - public object Delete(Movie request) - { - Db.DeleteById(request.Id); - - return new HttpResult - { - StatusCode = HttpStatusCode.NoContent, - Headers = - { - {HttpHeaders.Location, this.RequestContext.AbsoluteUri.CombineWith(request.Id.ToString())} - } - }; - } - } - - /// - /// Define your ServiceStack web service request (i.e. Request DTO). - /// - /// The route is defined here rather than in the AppHost. - [Api("Find movies by genre, or all movies if no genre is provided")] - [Route("/movies", "GET, OPTIONS")] - [Route("/movies/genres/{Genre}")] - public class Movies - { - public string Genre { get; set; } - } - - /// - /// Define your ServiceStack web service response (i.e. Response DTO). - /// - public class MoviesResponse - { - /// - /// Gets or sets the list of movies. - /// - public List Movies { get; set; } - } - - /// - /// Create your ServiceStack RESTful web service implementation. - /// - public class MoviesService : Service - { - /// - /// GET /movies - /// GET /movies/genres/{Genre} - /// - public object Get(Movies request) - { - return new MoviesResponse - { - Movies = request.Genre.IsNullOrEmpty() - ? Db.Select() - : Db.Select("Genres LIKE {0}", "%{0}%".Fmt(request.Genre)) - }; - } - } + using System; + using System.Collections.Generic; + using System.Net; + using DataAnnotations; + using OrmLite; + + /// + /// Define your ServiceStack web service request (i.e. Request DTO). + /// + /// The route is defined here rather than in the AppHost. + [Api("GET or DELETE a single movie by Id. Use POST to create a new Movie and PUT to update it")] + [Route("/movies", "POST,PUT,PATCH,DELETE")] + [Route("/movies/{Id}")] + public class Movie : IReturn + { + /// + /// Initializes a new instance of the movie. + /// + public Movie() + { + this.Genres = new List(); + } + + /// + /// Gets or sets the id of the movie. The id will be automatically incremented when added. + /// + [AutoIncrement] + public int Id { get; set; } + + public string ImdbId { get; set; } + public string Title { get; set; } + public decimal Rating { get; set; } + public string Director { get; set; } + public DateTime ReleaseDate { get; set; } + public string TagLine { get; set; } + public List Genres { get; set; } + } + + /// + /// Define your ServiceStack web service response (i.e. Response DTO). + /// + public class MovieResponse + { + /// + /// Gets or sets the movie. + /// + public Movie Movie { get; set; } + } + + /// + /// Define your ServiceStack web service request (i.e. Request DTO). + /// + /// The route is defined here rather than in the AppHost. + [Api("Find movies by genre, or all movies if no genre is provided")] + [Route("/movies", "GET, OPTIONS")] + [Route("/movies/genres/{Genre}")] + public class Movies : IReturn + { + public string Genre { get; set; } + } + + /// + /// Define your ServiceStack web service response (i.e. Response DTO). + /// + [DataContract] + public class MoviesResponse + { + /// + /// Gets or sets the list of movies. + /// + [DataMember] + public List Movies { get; set; } + } + + /// + /// Create your ServiceStack restful web service implementation. + /// + public class MovieService : Service + { + /// + /// GET /movies + /// GET /movies/genres/{Genre} + /// + public object Get(Movies request) + { + return new MoviesResponse { + Movies = request.Genre.IsNullOrEmpty() + ? Db.Select() + : Db.Select("Genres LIKE {0}", "%{0}%".Fmt(request.Genre)) + }; + } + + /// + /// GET /movies/{Id} + /// + public MovieResponse Get(Movie movie) + { + return new MovieResponse + { + Movie = Db.SingleById(movie.Id), + }; + } + + /// + /// POST /movies + /// returns HTTP Response => + /// 201 Created + /// Location: http://localhost/ServiceStack.MovieRest/movies/{newMovieId} + /// {newMovie DTO in [xml|json|jsv|etc]} + /// + public object Post(Movie movie) + { + Db.Save(movie); + var newMovieId = movie.Id; + + var newMovie = new MovieResponse + { + Movie = Db.SingleById(newMovieId), + }; + + return new HttpResult(newMovie) + { + StatusCode = HttpStatusCode.Created, + Headers = { + {HttpHeaders.Location, base.Request.AbsoluteUri.CombineWith(newMovieId.ToString())} + } + }; + } + + /// + /// PUT /movies/{id} + /// + public object Put(Movie movie) + { + Db.Update(movie); + + return new HttpResult + { + StatusCode = HttpStatusCode.NoContent, + Headers = + { + {HttpHeaders.Location, this.Request.AbsoluteUri.CombineWith(movie.Id.ToString())} + } + }; + } + + /// + /// DELETE /movies/{Id} + /// + public object Delete(Movie request) + { + Db.DeleteById(request.Id); + + return new HttpResult + { + StatusCode = HttpStatusCode.NoContent, + Headers = { + {HttpHeaders.Location, this.Request.AbsoluteUri.CombineWith(request.Id.ToString())} + } + }; + } + } } \ No newline at end of file diff --git a/src/ServiceStack.MovieRest/Web/ResetMovies.cs b/src/ServiceStack.MovieRest/Web/ResetMovies.cs index edc0e246..5971b0a6 100644 --- a/src/ServiceStack.MovieRest/Web/ResetMovies.cs +++ b/src/ServiceStack.MovieRest/Web/ResetMovies.cs @@ -1,94 +1,80 @@ namespace ServiceStack.MovieRest { - using System; - using System.Collections.Generic; - using ServiceStack.OrmLite; - using ServiceStack.ServiceHost; - using ServiceStack.ServiceInterface; + using System; + using System.Collections.Generic; + using OrmLite; - /// - /// Define your ServiceStack web service request (i.e. Request DTO). - /// - /// The route is defined here rather than in the AppHost. - [Route("/reset-movies", "GET,POST")] - [Api("Resets the database back to the original Top 5 movies.")] - public class ResetMovies : IReturn - { - } + /// + /// Define your ServiceStack web service request (i.e. Request DTO). + /// + /// The route is defined here rather than in the AppHost. + [Route("/reset-movies", "GET,POST")] + [Api("Resets the database back to the original Top 5 movies.")] + public class ResetMovies : IReturnVoid {} - /// - /// Define your ServiceStack web service response (i.e. Response DTO). - /// - public class ResetMoviesResponse - { - } + /// + /// Create your ServiceStack rest-ful web service implementation. + /// + public class ResetMoviesService : Service + { + public static List Top5Movies = new List { + new Movie + { + ImdbId = "tt1375666", + Title = "Inception", + Rating = 9.2m, + Director = "Christopher Nolan", + ReleaseDate = new DateTime(2010, 7, 16), + TagLine = "Your mind is the scene of the crime", + Genres = new List {"Action", "Thriller", "Sci-Fi"}, + }, + new Movie + { + ImdbId = "tt0111161", + Title = "The Shawshank Redemption", + Rating = 9.2m, + Director = "Frank Darabont", + ReleaseDate = new DateTime(1995, 2, 17), + TagLine = "Fear can hold you prisoner. Hope can set you free.", + Genres = new List {"Crime", "Drama"}, + }, + new Movie + { + ImdbId = "tt0071562", + Title = "The Godfather: Part II", + Rating = 9.0m, + Director = "Francis Ford Coppola", + ReleaseDate = new DateTime(1974, 12, 20), + Genres = new List {"Crime", "Drama", "Thriller"}, + }, + new Movie + { + ImdbId = "tt0068646", + Title = "The Godfather", + Rating = 9.2m, + Director = "Francis Ford Coppola", + ReleaseDate = new DateTime(1972, 3, 24), + TagLine = "An offer you can't refuse.", + Genres = new List {"Crime", "Drama", "Thriller"}, + }, + new Movie + { + ImdbId = "tt0060196", + Title = "The Good, the Bad and the Ugly", + Rating = 9.0m, + Director = "Sergio Leone", + ReleaseDate = new DateTime(1967, 12, 29), + TagLine = + "They formed an alliance of hate to steal a fortune in dead man's gold", + Genres = new List {"Adventure", "Western"}, + }, + }; - /// - /// Create your ServiceStack rest-ful web service implementation. - /// - public class ResetMoviesService : Service - { - public static List Top5Movies = new List - { - new Movie - { - ImdbId = "tt1375666", - Title = "Inception", - Rating = 9.2m, - Director = "Christopher Nolan", - ReleaseDate = new DateTime(2010, 7, 16), - TagLine = "Your mind is the scene of the crime", - Genres = new List {"Action", "Thriller", "Sci-Fi"}, - }, - new Movie - { - ImdbId = "tt0111161", - Title = "The Shawshank Redemption", - Rating = 9.2m, - Director = "Frank Darabont", - ReleaseDate = new DateTime(1995, 2, 17), - TagLine = "Fear can hold you prisoner. Hope can set you free.", - Genres = new List {"Crime", "Drama"}, - }, - new Movie - { - ImdbId = "tt0071562", - Title = "The Godfather: Part II", - Rating = 9.0m, - Director = "Francis Ford Coppola", - ReleaseDate = new DateTime(1974, 12, 20), - Genres = new List {"Crime", "Drama", "Thriller"}, - }, - new Movie - { - ImdbId = "tt0068646", - Title = "The Godfather", - Rating = 9.2m, - Director = "Francis Ford Coppola", - ReleaseDate = new DateTime(1972, 3, 24), - TagLine = "An offer you can't refuse.", - Genres = new List {"Crime", "Drama", "Thriller"}, - }, - new Movie - { - ImdbId = "tt0060196", - Title = "The Good, the Bad and the Ugly", - Rating = 9.0m, - Director = "Sergio Leone", - ReleaseDate = new DateTime(1967, 12, 29), - TagLine = - "They formed an alliance of hate to steal a fortune in dead man's gold", - Genres = new List {"Adventure", "Western"}, - }, - }; - - public object Any(ResetMovies request) - { - //Executes the specified delegate against the configured database. - Db.DropAndCreateTable(); - Db.SaveAll(Top5Movies); - - return new ResetMoviesResponse(); - } - } + public void Any(ResetMovies request) + { + //Executes the specified delegate against the configured database. + Db.DropAndCreateTable(); + Db.SaveAll(Top5Movies); + } + } } \ No newline at end of file diff --git a/src/ServiceStack.MovieRest/Web/ServiceStack.MovieRest.csproj b/src/ServiceStack.MovieRest/Web/ServiceStack.MovieRest.csproj index 5892bade..e9eff990 100644 --- a/src/ServiceStack.MovieRest/Web/ServiceStack.MovieRest.csproj +++ b/src/ServiceStack.MovieRest/Web/ServiceStack.MovieRest.csproj @@ -12,7 +12,7 @@ Properties ServiceStack.MovieRest ServiceStack.MovieRest - v4.0 + v4.5 4.0 @@ -26,6 +26,7 @@ ..\ true + true @@ -37,6 +38,7 @@ 4 AllRules.ruleset x86 + false pdbonly @@ -47,57 +49,52 @@ 4 AllRules.ruleset x86 + false - - ..\..\packages\ServiceStack.OrmLite.Sqlite.Mono.3.9.63\lib\net35\Mono.Data.Sqlite.dll + + ..\..\packages\ServiceStack.OrmLite.Sqlite.Mono.4.5.0\lib\net45\Mono.Data.Sqlite.dll + True - - False - ..\..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.dll + + ..\..\packages\ServiceStack.4.5.0\lib\net45\ServiceStack.dll + True - - False - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Common.dll + + ..\..\packages\ServiceStack.Client.4.5.0\lib\net45\ServiceStack.Client.dll + True - - False - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Interfaces.dll + + ..\..\packages\ServiceStack.Common.4.5.0\lib\net45\ServiceStack.Common.dll + True - - ..\..\packages\ServiceStack.OrmLite.Sqlite.Mono.3.9.63\lib\net35\ServiceStack.OrmLite.dll + + ..\..\packages\ServiceStack.Interfaces.4.5.0\lib\portable-wp80+sl5+net45+win8+wpa81+monotouch+monoandroid+xamarin.ios10\ServiceStack.Interfaces.dll + True - - ..\..\packages\ServiceStack.OrmLite.Sqlite.Mono.3.9.63\lib\net35\ServiceStack.OrmLite.Sqlite.dll + + ..\..\packages\ServiceStack.OrmLite.4.5.0\lib\net45\ServiceStack.OrmLite.dll + True - - False - ..\..\packages\ServiceStack.OrmLite.SqlServer.3.9.63\lib\net35\ServiceStack.OrmLite.SqlServer.dll + + ..\..\packages\ServiceStack.OrmLite.Sqlite.Mono.4.5.0\lib\net45\ServiceStack.OrmLite.Sqlite.dll + True - - False - ..\..\packages\ServiceStack.Redis.3.9.63\lib\net35\ServiceStack.Redis.dll - - - False - ..\..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.ServiceInterface.dll - - - False - ..\..\packages\ServiceStack.Text.3.9.63\lib\net35\ServiceStack.Text.dll + + ..\..\packages\ServiceStack.Text.4.5.0\lib\net45\ServiceStack.Text.dll + True - 3.0 - + @@ -163,6 +160,11 @@ + + + + + \ No newline at end of file diff --git a/src/ServiceStack.MovieRest/Web/Web.config b/src/ServiceStack.MovieRest/Web/Web.config index 7562585f..80a9df5b 100644 --- a/src/ServiceStack.MovieRest/Web/Web.config +++ b/src/ServiceStack.MovieRest/Web/Web.config @@ -1,10 +1,18 @@ - + - + - + + - + + + - + - + - + - - + + - + - - + + diff --git a/src/ServiceStack.MovieRest/Web/packages.config b/src/ServiceStack.MovieRest/Web/packages.config index 151373d5..877f9ce2 100644 --- a/src/ServiceStack.MovieRest/Web/packages.config +++ b/src/ServiceStack.MovieRest/Web/packages.config @@ -1,9 +1,10 @@ - - - - - - - - + + + + + + + + + \ No newline at end of file diff --git a/src/ServiceStack.MovieRest/Web/sqlite3.dll b/src/ServiceStack.MovieRest/Web/sqlite3.dll index 2d241c4e..1058a2b1 100644 Binary files a/src/ServiceStack.MovieRest/Web/sqlite3.dll and b/src/ServiceStack.MovieRest/Web/sqlite3.dll differ diff --git a/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceInterface/CachedServices.cs b/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceInterface/CachedServices.cs index 98fb0dfb..f2c29b62 100644 --- a/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceInterface/CachedServices.cs +++ b/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceInterface/CachedServices.cs @@ -1,23 +1,21 @@  + namespace ServiceStack.Northwind.ServiceInterface { - using ServiceStack.CacheAccess; - using ServiceStack.Common; - using ServiceStack.Northwind.ServiceModel.Operations; - using ServiceStack.ServiceHost; - using ServiceStack.ServiceInterface; + using Caching; + using ServiceModel.Operations; - public class CachedCustomersService : ServiceStack.ServiceInterface.Service + public class CachedCustomersService : Service { public ICacheClient CacheClient { get; set; } public object Get(CachedCustomers request) { - return base.RequestContext.ToOptimizedResultUsingCache( + return base.Request.ToOptimizedResultUsingCache( this.CacheClient, "urn:customers", () => { var service = this.ResolveService(); - return (CustomersResponse) service.Get(new Customers()); + return service.Get(new Customers()); }); } } @@ -29,9 +27,9 @@ public class CachedCustomerDetailsService : Service public object Get(CachedCustomerDetails request) { var cacheKey = UrnId.Create(request.Id); - return base.RequestContext.ToOptimizedResultUsingCache( - this.CacheClient, cacheKey, () => (CustomerDetailsResponse)this.ResolveService() - .Get(new CustomerDetails { Id = request.Id })); + return base.Request.ToOptimizedResultUsingCache( + this.CacheClient, cacheKey, () => + this.ResolveService().Get(new CustomerDetails { Id = request.Id })); } } @@ -42,7 +40,7 @@ public class CachedOrdersService : Service public object Get(CachedOrders request) { var cacheKey = UrnId.Create(request.CustomerId ?? "all", request.Page.GetValueOrDefault(0).ToString()); - return base.RequestContext.ToOptimizedResultUsingCache(CacheClient, cacheKey, + return base.Request.ToOptimizedResultUsingCache(CacheClient, cacheKey, () => (OrdersResponse) ResolveService() .Get(new Orders { CustomerId = request.CustomerId, Page = request.Page })); } diff --git a/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceInterface/CustomerDetailsService.cs b/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceInterface/CustomerDetailsService.cs index f48b3aa2..378d30dd 100644 --- a/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceInterface/CustomerDetailsService.cs +++ b/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceInterface/CustomerDetailsService.cs @@ -1,20 +1,20 @@ using System; using System.Net; -using ServiceStack.Common.Web; using ServiceStack.Northwind.ServiceModel.Operations; using ServiceStack.Northwind.ServiceModel.Types; + using ServiceStack.OrmLite; namespace ServiceStack.Northwind.ServiceInterface { - public class CustomerDetailsService : ServiceStack.ServiceInterface.Service + public class CustomerDetailsService : Service { public CustomerDetailsResponse Get(CustomerDetails request) { - var customer = Db.GetByIdOrDefault(request.Id); + var customer = Db.SingleById(request.Id); if (customer == null) throw new HttpError(HttpStatusCode.NotFound, - new ArgumentException("Customer does not exist: " + request.Id)); + new ArgumentException("Customer does not exist: " + request.Id)); var ordersService = base.ResolveService(); var ordersResponse = (OrdersResponse) ordersService.Get(new Orders {CustomerId = customer.Id}); diff --git a/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceInterface/CustomersService.cs b/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceInterface/CustomersService.cs index 6b342c7a..2f09e2f6 100644 --- a/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceInterface/CustomersService.cs +++ b/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceInterface/CustomersService.cs @@ -4,7 +4,7 @@ namespace ServiceStack.Northwind.ServiceInterface { - public class CustomersService : ServiceStack.ServiceInterface.Service + public class CustomersService : ServiceStack.Service { public CustomersResponse Get(Customers request) { diff --git a/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceInterface/OrdersService.cs b/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceInterface/OrdersService.cs index fb8090e9..4819fe41 100644 --- a/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceInterface/OrdersService.cs +++ b/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceInterface/OrdersService.cs @@ -1,12 +1,13 @@ using System.Linq; -using ServiceStack.Common.Extensions; using ServiceStack.Northwind.ServiceModel.Operations; using ServiceStack.Northwind.ServiceModel.Types; using ServiceStack.OrmLite; +using ServiceStack.OrmLite.Legacy; + namespace ServiceStack.Northwind.ServiceInterface { - public class OrdersService : ServiceStack.ServiceInterface.Service + public class OrdersService : Service { private const int PageCount = 20; diff --git a/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceInterface/ServiceStack.Northwind.ServiceInterface.csproj b/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceInterface/ServiceStack.Northwind.ServiceInterface.csproj index 522e7592..abb959ff 100644 --- a/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceInterface/ServiceStack.Northwind.ServiceInterface.csproj +++ b/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceInterface/ServiceStack.Northwind.ServiceInterface.csproj @@ -10,7 +10,7 @@ Properties ServiceStack.Northwind.ServiceInterface ServiceStack.Northwind.ServiceInterface - v3.5 + v4.5 512 @@ -33,6 +33,7 @@ true ..\ true + true @@ -43,6 +44,7 @@ prompt 4 AllRules.ruleset + false pdbonly @@ -52,49 +54,39 @@ prompt 4 AllRules.ruleset + false - - False - ..\..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.dll + + ..\..\packages\ServiceStack.4.5.0\lib\net45\ServiceStack.dll + True - - False - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Common.dll + + ..\..\packages\ServiceStack.Client.4.5.0\lib\net45\ServiceStack.Client.dll + True - - False - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Interfaces.dll + + ..\..\packages\ServiceStack.Common.4.5.0\lib\net45\ServiceStack.Common.dll + True - - False - ..\..\packages\ServiceStack.OrmLite.SqlServer.3.9.63\lib\net35\ServiceStack.OrmLite.dll + + ..\..\packages\ServiceStack.Interfaces.4.5.0\lib\portable-wp80+sl5+net45+win8+wpa81+monotouch+monoandroid+xamarin.ios10\ServiceStack.Interfaces.dll + True - - False - ..\..\packages\ServiceStack.OrmLite.SqlServer.3.9.63\lib\net35\ServiceStack.OrmLite.SqlServer.dll + + ..\..\packages\ServiceStack.OrmLite.4.5.0\lib\net45\ServiceStack.OrmLite.dll + True - - False - ..\..\packages\ServiceStack.Redis.3.9.63\lib\net35\ServiceStack.Redis.dll - - - False - ..\..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.ServiceInterface.dll - - - False - ..\..\packages\ServiceStack.Text.3.9.63\lib\net35\ServiceStack.Text.dll + + ..\..\packages\ServiceStack.Text.4.5.0\lib\net45\ServiceStack.Text.dll + True - 3.5 - 3.5 - 3.5 @@ -135,11 +127,11 @@ - \ No newline at end of file diff --git a/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceInterface/VCardFormat.cs b/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceInterface/VCardFormat.cs index 238ddbc7..c535d464 100644 --- a/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceInterface/VCardFormat.cs +++ b/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceInterface/VCardFormat.cs @@ -1,67 +1,65 @@ +using ServiceStack.Web; + namespace ServiceStack.Northwind.ServiceInterface { - using System; - using System.IO; - using ServiceStack.Common.Web; - using ServiceStack.Northwind.ServiceModel.Operations; - using ServiceStack.Northwind.ServiceModel.Types; - using ServiceStack.ServiceHost; - using ServiceStack.Text; - using ServiceStack.WebHost.Endpoints; + using System; + using System.IO; + using ServiceModel.Operations; + using ServiceModel.Types; - public class VCardFormat - { - private const string VCardContentType = "text/x-vcard"; + public class VCardFormat + { + private const string VCardContentType = "text/x-vcard"; - public static void Register(IAppHost appHost) - { - appHost.ContentTypeFilters.Register(VCardContentType, SerializeToStream, DeserializeFromStream); + public static void Register(IAppHost appHost) + { + appHost.ContentTypes.Register(VCardContentType, SerializeToStream, DeserializeFromStream); - appHost.ResponseFilters.Add((req, res, dto) => - { - if (req.ResponseContentType == VCardContentType) - { - res.AddHeader(HttpHeaders.ContentDisposition, - string.Format("attachment;filename={0}.vcf", req.OperationName)); - } - }); - } + appHost.GlobalResponseFilters.Add((req, res, dto) => + { + if (req.ResponseContentType == VCardContentType) + { + res.AddHeader(HttpHeaders.ContentDisposition, + string.Format("attachment;filename={0}.vcf", req.OperationName)); + } + }); + } - public static void SerializeToStream(IRequestContext requestContext, object response, Stream stream) - { - var customerResponse = response as CustomerDetailsResponse; - using (var sw = new StreamWriter(stream)) - { - if (customerResponse != null) - { - WriteCustomer(sw, customerResponse.Customer); - } - var customers = response as CustomersResponse; - if (customers != null) - { - customers.Customers.ForEach(x => WriteCustomer(sw, x)); - } - } - } + public static void SerializeToStream(IRequest req, object response, Stream stream) + { + var customerResponse = response as CustomerDetailsResponse; + using (var sw = new StreamWriter(stream)) + { + if (customerResponse != null) + { + WriteCustomer(sw, customerResponse.Customer); + } + var customers = response as CustomersResponse; + if (customers != null) + { + customers.Customers.ForEach(x => WriteCustomer(sw, x)); + } + } + } - public static void WriteCustomer(StreamWriter sw, Customer customer) - { - sw.WriteLine("BEGIN:VCARD"); - sw.WriteLine("VERSION:2.1"); - sw.WriteLine("FN:" + customer.ContactName); - sw.WriteLine("ORG:" + customer.CompanyName); - sw.WriteLine("TITLE:" + customer.ContactTitle); - sw.WriteLine("EMAIL;TYPE=PREF,INTERNET:" + customer.Email); - sw.WriteLine("TEL;HOME;VOICE:" + customer.Phone); - sw.WriteLine("TEL;WORK;FAX:" + customer.Fax); - sw.WriteLine("ADR;TYPE=HOME;" - + new[] {customer.Address, customer.City, customer.PostalCode}.Join(";")); - sw.WriteLine("END:VCARD"); - } + public static void WriteCustomer(StreamWriter sw, Customer customer) + { + sw.WriteLine("BEGIN:VCARD"); + sw.WriteLine("VERSION:2.1"); + sw.WriteLine("FN:" + customer.ContactName); + sw.WriteLine("ORG:" + customer.CompanyName); + sw.WriteLine("TITLE:" + customer.ContactTitle); + sw.WriteLine("EMAIL;TYPE=PREF,INTERNET:" + customer.Email); + sw.WriteLine("TEL;HOME;VOICE:" + customer.Phone); + sw.WriteLine("TEL;WORK;FAX:" + customer.Fax); + sw.WriteLine("ADR;TYPE=HOME;" + + new[] { customer.Address, customer.City, customer.PostalCode }.Join(";")); + sw.WriteLine("END:VCARD"); + } - public static object DeserializeFromStream(Type type, Stream stream) - { - throw new NotImplementedException(); - } - } + public static object DeserializeFromStream(Type type, Stream stream) + { + throw new NotImplementedException(); + } + } } \ No newline at end of file diff --git a/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceInterface/packages.config b/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceInterface/packages.config index 25151fe5..4534703d 100644 --- a/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceInterface/packages.config +++ b/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceInterface/packages.config @@ -1,8 +1,9 @@ - - - - - - - + + + + + + + + \ No newline at end of file diff --git a/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceModel/Operations/CachedOperations.cs b/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceModel/Operations/CachedOperations.cs index 51fd0361..e4d1cf1a 100644 --- a/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceModel/Operations/CachedOperations.cs +++ b/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceModel/Operations/CachedOperations.cs @@ -1,9 +1,8 @@ namespace ServiceStack.Northwind.ServiceModel.Operations { using System.Runtime.Serialization; - using ServiceStack.ServiceHost; - [DataContract] + [DataContract] [Route("/cached/customers")] public class CachedCustomers { diff --git a/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceModel/Operations/CustomerDetails.cs b/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceModel/Operations/CustomerDetails.cs index c2560904..a3ef7800 100644 --- a/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceModel/Operations/CustomerDetails.cs +++ b/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceModel/Operations/CustomerDetails.cs @@ -2,11 +2,9 @@ namespace ServiceStack.Northwind.ServiceModel.Operations { using System.Collections.Generic; using System.Runtime.Serialization; - using ServiceStack.Northwind.ServiceModel.Types; - using ServiceStack.ServiceHost; - using ServiceStack.ServiceInterface.ServiceModel; + using Types; - [DataContract] + [DataContract] [Route("/customers/{Id}")] public class CustomerDetails { diff --git a/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceModel/Operations/Customers.cs b/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceModel/Operations/Customers.cs index c473f612..dd0cf15b 100644 --- a/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceModel/Operations/Customers.cs +++ b/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceModel/Operations/Customers.cs @@ -2,11 +2,9 @@ namespace ServiceStack.Northwind.ServiceModel.Operations { using System.Collections.Generic; using System.Runtime.Serialization; - using ServiceStack.Northwind.ServiceModel.Types; - using ServiceStack.ServiceHost; - using ServiceStack.ServiceInterface.ServiceModel; + using Types; - [DataContract] + [DataContract] [Route("/customers")] public class Customers { diff --git a/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceModel/Operations/Orders.cs b/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceModel/Operations/Orders.cs index a7fdf581..cded3bb1 100644 --- a/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceModel/Operations/Orders.cs +++ b/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceModel/Operations/Orders.cs @@ -1,11 +1,9 @@ namespace ServiceStack.Northwind.ServiceModel.Operations { using System.Collections.Generic; - using ServiceStack.Northwind.ServiceModel.Types; - using ServiceStack.ServiceHost; - using ServiceStack.ServiceInterface.ServiceModel; + using Types; - [Route("/orders")] + [Route("/orders")] [Route("/orders/page/{Page}")] [Route("/customers/{CustomerId}/orders")] public class Orders diff --git a/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceModel/ServiceStack.Northwind.ServiceModel.csproj b/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceModel/ServiceStack.Northwind.ServiceModel.csproj index 07beb94e..90f55dd8 100644 --- a/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceModel/ServiceStack.Northwind.ServiceModel.csproj +++ b/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceModel/ServiceStack.Northwind.ServiceModel.csproj @@ -10,7 +10,7 @@ Properties ServiceStack.Northwind.ServiceModel ServiceStack.Northwind.ServiceModel - v3.5 + v4.5 512 @@ -33,6 +33,7 @@ true ..\ true + true @@ -43,6 +44,7 @@ prompt 4 AllRules.ruleset + false pdbonly @@ -52,32 +54,21 @@ prompt 4 AllRules.ruleset + false - - False - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Common.dll - - - False - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Interfaces.dll - - - False - ..\..\packages\ServiceStack.Text.3.9.63\lib\net35\ServiceStack.Text.dll + + ..\..\packages\ServiceStack.Interfaces.4.5.0\lib\portable-wp80+sl5+net45+win8+wpa81+monotouch+monoandroid+xamarin.ios10\ServiceStack.Interfaces.dll + True - 3.5 - 3.0 - 3.5 - 3.5 @@ -125,11 +116,11 @@ - \ No newline at end of file diff --git a/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceModel/packages.config b/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceModel/packages.config index 1b430151..5c87f865 100644 --- a/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceModel/packages.config +++ b/src/ServiceStack.Northwind/ServiceStack.Northwind.ServiceModel/packages.config @@ -1,5 +1,4 @@ - - - - + + + \ No newline at end of file diff --git a/src/ServiceStack.Northwind/ServiceStack.Northwind/Global.asax.cs b/src/ServiceStack.Northwind/ServiceStack.Northwind/Global.asax.cs index cd8e87e4..3c86cd34 100644 --- a/src/ServiceStack.Northwind/ServiceStack.Northwind/Global.asax.cs +++ b/src/ServiceStack.Northwind/ServiceStack.Northwind/Global.asax.cs @@ -1,16 +1,14 @@ -namespace ServiceStack.Northwind + +namespace ServiceStack.Northwind { using System; using System.Web; using Funq; - using CacheAccess; - using CacheAccess.Providers; - using Common.Utils; using ServiceInterface; using OrmLite; - using WebHost.Endpoints; + using Data; - public class AppHost : AppHostBase + public class AppHost : AppHostBase { public AppHost() : base("Northwind Web Services", typeof(CustomersService).Assembly) {} @@ -19,10 +17,7 @@ public override void Configure(Container container) container.Register( new OrmLiteConnectionFactory("~/Northwind.sqlite".MapHostAbsolutePath(), SqliteDialect.Provider)); - //Using an in-memory cache - container.Register(new MemoryCacheClient()); - - //Or if Haz Redis + //Use Redis Cache //container.Register(new PooledRedisClientManager()); VCardFormat.Register(this); diff --git a/src/ServiceStack.Northwind/ServiceStack.Northwind/ServiceStack.Northwind.csproj b/src/ServiceStack.Northwind/ServiceStack.Northwind/ServiceStack.Northwind.csproj index 78f7585b..587408ce 100644 --- a/src/ServiceStack.Northwind/ServiceStack.Northwind/ServiceStack.Northwind.csproj +++ b/src/ServiceStack.Northwind/ServiceStack.Northwind/ServiceStack.Northwind.csproj @@ -12,7 +12,7 @@ Properties ServiceStack.Northwind ServiceStack.Northwind - v3.5 + v4.5 4.0 @@ -25,6 +25,8 @@ ..\ true + + true @@ -36,6 +38,7 @@ 4 AllRules.ruleset x86 + false pdbonly @@ -46,67 +49,56 @@ 4 AllRules.ruleset x86 + false - - ..\..\packages\ServiceStack.OrmLite.Sqlite.Mono.3.9.63\lib\net35\Mono.Data.Sqlite.dll + + ..\..\packages\ServiceStack.OrmLite.Sqlite.Mono.4.5.0\lib\net45\Mono.Data.Sqlite.dll + True - - False - ..\..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.dll + + ..\..\packages\ServiceStack.4.5.0\lib\net45\ServiceStack.dll + True - - False - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Common.dll + + ..\..\packages\ServiceStack.Client.4.5.0\lib\net45\ServiceStack.Client.dll + True - - False - ..\..\packages\ServiceStack.Common.3.9.63\lib\net35\ServiceStack.Interfaces.dll + + ..\..\packages\ServiceStack.Common.4.5.0\lib\net45\ServiceStack.Common.dll + True - - False - ..\..\packages\ServiceStack.OrmLite.Sqlite.Mono.3.9.63\lib\net35\ServiceStack.OrmLite.dll + + ..\..\packages\ServiceStack.Interfaces.4.5.0\lib\portable-wp80+sl5+net45+win8+wpa81+monotouch+monoandroid+xamarin.ios10\ServiceStack.Interfaces.dll + True - - ..\..\packages\ServiceStack.OrmLite.Sqlite.Mono.3.9.63\lib\net35\ServiceStack.OrmLite.Sqlite.dll + + ..\..\packages\ServiceStack.OrmLite.4.5.0\lib\net45\ServiceStack.OrmLite.dll + True - - False - ..\..\packages\ServiceStack.OrmLite.SqlServer.3.9.63\lib\net35\ServiceStack.OrmLite.SqlServer.dll + + ..\..\packages\ServiceStack.OrmLite.Sqlite.Mono.4.5.0\lib\net45\ServiceStack.OrmLite.Sqlite.dll + True - - False - ..\..\packages\ServiceStack.Redis.3.9.63\lib\net35\ServiceStack.Redis.dll - - - False - ..\..\packages\ServiceStack.3.9.63\lib\net35\ServiceStack.ServiceInterface.dll - - - False - ..\..\packages\ServiceStack.Text.3.9.63\lib\net35\ServiceStack.Text.dll + + ..\..\packages\ServiceStack.Text.4.5.0\lib\net45\ServiceStack.Text.dll + True - - 3.5 - - - 3.5 - - - 3.5 - - - 3.5 - + + + + + + @@ -174,6 +166,11 @@ + + + + + \ No newline at end of file diff --git a/src/ServiceStack.Northwind/ServiceStack.Northwind/Web.config b/src/ServiceStack.Northwind/ServiceStack.Northwind/Web.config index d992f764..1ed62061 100644 --- a/src/ServiceStack.Northwind/ServiceStack.Northwind/Web.config +++ b/src/ServiceStack.Northwind/ServiceStack.Northwind/Web.config @@ -1,44 +1,35 @@ - + - - - -
- -
-
-
-
- - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/ServiceStack.Northwind/ServiceStack.Northwind/packages.config b/src/ServiceStack.Northwind/ServiceStack.Northwind/packages.config index 3030de75..877f9ce2 100644 --- a/src/ServiceStack.Northwind/ServiceStack.Northwind/packages.config +++ b/src/ServiceStack.Northwind/ServiceStack.Northwind/packages.config @@ -1,9 +1,10 @@ - - - - - - - - + + + + + + + + + \ No newline at end of file diff --git a/src/ServiceStack.Northwind/ServiceStack.Northwind/sqlite3.dll b/src/ServiceStack.Northwind/ServiceStack.Northwind/sqlite3.dll index 2d241c4e..1058a2b1 100644 Binary files a/src/ServiceStack.Northwind/ServiceStack.Northwind/sqlite3.dll and b/src/ServiceStack.Northwind/ServiceStack.Northwind/sqlite3.dll differ diff --git a/src/ServiceStack.Northwind/ServiceStack.Northwind/vcard-format.htm b/src/ServiceStack.Northwind/ServiceStack.Northwind/vcard-format.htm index f8d78b9f..782dc3a1 100644 --- a/src/ServiceStack.Northwind/ServiceStack.Northwind/vcard-format.htm +++ b/src/ServiceStack.Northwind/ServiceStack.Northwind/vcard-format.htm @@ -144,7 +144,7 @@ - ServiceStack Home + ServiceStack Home