diff --git a/%USERPFOFILE%/.config/git/gitk b/%USERPFOFILE%/.config/git/gitk
new file mode 100644
index 000000000..c1bd99992
--- /dev/null
+++ b/%USERPFOFILE%/.config/git/gitk
@@ -0,0 +1,62 @@
+set mainfont {Helvetica 9}
+set textfont {Courier 9}
+set uifont {Helvetica 9 bold}
+set tabstop 8
+set findmergefiles 0
+set maxgraphpct 50
+set maxwidth 16
+set cmitmode patch
+set wrapcomment none
+set autoselect 1
+set autosellen 40
+set showneartags 1
+set maxrefs 20
+set visiblerefs {"master"}
+set hideremotes 0
+set showlocalchanges 1
+set datetimeformat {%Y-%m-%d %H:%M:%S}
+set limitdiffs 1
+set uicolor SystemButtonFace
+set want_ttk 1
+set bgcolor SystemWindow
+set fgcolor SystemWindowText
+set uifgcolor SystemButtonText
+set uifgdisabledcolor SystemDisabledText
+set colors {"#00ff00" red blue magenta darkgrey brown orange}
+set diffcolors {red "#00a000" blue}
+set mergecolors {red blue "#00ff00" purple brown "#009090" magenta "#808000" "#009000" "#ff0080" cyan "#b07070" "#70b0f0" "#70f0b0" "#f0b070" "#ff70b0"}
+set markbgcolor #e0e0ff
+set diffcontext 3
+set selectbgcolor SystemHighlight
+set foundbgcolor yellow
+set currentsearchhitbgcolor orange
+set extdifftool meld
+set perfile_attrs 0
+set headbgcolor #00ff00
+set headfgcolor black
+set headoutlinecolor black
+set remotebgcolor #ffddaa
+set tagbgcolor yellow
+set tagfgcolor black
+set tagoutlinecolor black
+set reflinecolor black
+set filesepbgcolor #aaaaaa
+set filesepfgcolor black
+set linehoverbgcolor #ffff80
+set linehoverfgcolor black
+set linehoveroutlinecolor black
+set mainheadcirclecolor yellow
+set workingfilescirclecolor red
+set indexcirclecolor #00ff00
+set circlecolors {white blue gray blue blue}
+set linkfgcolor blue
+set circleoutlinecolor SystemWindowText
+set geometry(main) 1816x1020+82+0
+set geometry(state) normal
+set geometry(topwidth) 1816
+set geometry(topheight) 315
+set geometry(pwsash0) "560 1"
+set geometry(pwsash1) "840 1"
+set geometry(botwidth) 700
+set geometry(botheight) 700
+set permviews {}
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 000000000..08d4e06db
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,146 @@
+# Rules in this file were initially inferred by Visual Studio IntelliCode from the C:\Users\david\Projects\Simple.OData.Client codebase based on best match to current usage at 08/12/2021
+# You can modify the rules from these initially generated values to suit your own policies
+# You can learn more about editorconfig here: https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference
+[*.cs]
+
+
+#Core editorconfig formatting - indentation
+
+#use soft tabs (spaces) for indentation
+indent_style = space
+
+#Formatting - indentation options
+
+#indent switch case contents.
+csharp_indent_case_contents = true
+#indent switch labels
+csharp_indent_switch_labels = true
+
+#Formatting - new line options
+
+#place catch statements on a new line
+csharp_new_line_before_catch = true
+#place else statements on a new line
+csharp_new_line_before_else = true
+#require members of anonymous types to be on separate lines
+csharp_new_line_before_members_in_anonymous_types = true
+#require members of object initializers to be on the same line
+csharp_new_line_before_members_in_object_initializers = false
+#require braces to be on a new line for methods, accessors, object_collection_array_initializers, control_blocks, properties, lambdas, anonymous_types, and types (also known as "Allman" style)
+csharp_new_line_before_open_brace = methods, accessors, object_collection_array_initializers, control_blocks, properties, lambdas, anonymous_types, types
+
+#Formatting - organize using options
+
+#sort System.* using directives alphabetically, and place them before other usings
+dotnet_sort_system_directives_first = true
+
+#Formatting - spacing options
+
+#require NO space between a cast and the value
+csharp_space_after_cast = false
+#require a space before the colon for bases or interfaces in a type declaration
+csharp_space_after_colon_in_inheritance_clause = true
+#require a space after a keyword in a control flow statement such as a for loop
+csharp_space_after_keywords_in_control_flow_statements = true
+#require a space before the colon for bases or interfaces in a type declaration
+csharp_space_before_colon_in_inheritance_clause = true
+#remove space within empty argument list parentheses
+csharp_space_between_method_call_empty_parameter_list_parentheses = false
+#remove space between method call name and opening parenthesis
+csharp_space_between_method_call_name_and_opening_parenthesis = false
+#do not place space characters after the opening parenthesis and before the closing parenthesis of a method call
+csharp_space_between_method_call_parameter_list_parentheses = false
+#remove space within empty parameter list parentheses for a method declaration
+csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
+#place a space character after the opening parenthesis and before the closing parenthesis of a method declaration parameter list.
+csharp_space_between_method_declaration_parameter_list_parentheses = false
+
+#Formatting - wrapping options
+
+#leave code block on single line
+csharp_preserve_single_line_blocks = true
+#leave statements and member declarations on the same line
+csharp_preserve_single_line_statements = true
+
+#Style - Code block preferences
+
+#prefer no curly braces if allowed
+csharp_prefer_braces =true:suggestion
+
+#Style - expression bodied member options
+
+#prefer block bodies for accessors
+csharp_style_expression_bodied_accessors =when_on_single_line:suggestion
+#prefer block bodies for constructors
+csharp_style_expression_bodied_constructors = false:suggestion
+#prefer block bodies for methods
+csharp_style_expression_bodied_methods = false:suggestion
+#prefer expression-bodied members for properties
+csharp_style_expression_bodied_properties = true:suggestion
+
+#Style - expression level options
+
+#prefer out variables to be declared inline in the argument list of a method call when possible
+csharp_style_inlined_variable_declaration = true:suggestion
+#prefer ItemX properties to tuple names
+dotnet_style_explicit_tuple_names = false:suggestion
+#prefer the language keyword for member access expressions, instead of the type name, for types that have a keyword to represent them
+dotnet_style_predefined_type_for_member_access = true:suggestion
+
+#Style - Expression-level preferences
+
+#prefer default(T) over default
+csharp_prefer_simple_default_expression = false:suggestion
+#prefer objects to be initialized using object initializers when possible
+dotnet_style_object_initializer = true:suggestion
+#prefer inferred anonymous type member names
+dotnet_style_prefer_inferred_anonymous_type_member_names = false:suggestion
+#prefer inferred tuple element names
+dotnet_style_prefer_inferred_tuple_names = true:suggestion
+
+#Style - implicit and explicit types
+
+#prefer var over explicit type in all cases, unless overridden by another code style rule
+csharp_style_var_elsewhere = true:suggestion
+#prefer var is used to declare variables with built-in system types such as int
+csharp_style_var_for_built_in_types = true:suggestion
+#prefer var when the type is already mentioned on the right-hand side of a declaration expression
+csharp_style_var_when_type_is_apparent = true:suggestion
+
+#Style - language keyword and framework type options
+
+#prefer the language keyword for local variables, method parameters, and class members, instead of the type name, for types that have a keyword to represent them
+dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion
+
+#Style - Miscellaneous preferences
+
+#prefer anonymous functions over local functions
+csharp_style_pattern_local_over_anonymous_function = false:suggestion
+
+#Style - modifier options
+
+#prefer accessibility modifiers to be declared except for public interface members. This will currently not differ from always and will act as future proofing for if C# adds default interface methods.
+dotnet_style_require_accessibility_modifiers = for_non_interface_members:suggestion
+
+#Style - Modifier preferences
+
+#when this rule is set to a list of modifiers, prefer the specified ordering.
+csharp_preferred_modifier_order = public,private,internal,protected,async,static,override,readonly,abstract:suggestion
+
+#Style - Pattern matching
+
+#prefer pattern matching instead of is expression with type casts
+csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
+
+#Style - qualification options
+
+#prefer fields not to be prefaced with this. or Me. in Visual Basic
+dotnet_style_qualification_for_field = false:suggestion
+#prefer methods not to be prefaced with this. or Me. in Visual Basic
+dotnet_style_qualification_for_method = false:suggestion
+#prefer properties not to be prefaced with this. or Me. in Visual Basic
+dotnet_style_qualification_for_property = false:suggestion
+csharp_style_namespace_declarations=file_scoped:silent
+
+[*.{cs,vb}]
+indent_style=tab
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index c3969ebfc..f5c52306b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,4 +22,21 @@ NDependOut
packages/
*_mm_cache.bin
*.user
-
+*.userprefs
+.DS_Store
+*.xam
+*.ldf
+TestResults/
+Simple.OData.ProductService/Properties/PublishProfiles/va-odata-integration - FTP.pubxml
+Simple.OData.ProductService/Properties/PublishProfiles/va-odata-integration - Web Deploy.pubxml
+Simple.OData.Client.AdHocTests/
+Simple.OData.Client.IntegrationTests/AdHocTests.cs
+Solutions/AdHocTests.sln
+.vs/
+.idea/
+build/
+nuget.exe
+/.fake
+/paket-files
+/.paket/paket.exe
+/.paket/Paket.Restore.targets
diff --git a/.nuget/NuGet.exe b/.nuget/NuGet.exe
deleted file mode 100644
index 34ad49b49..000000000
Binary files a/.nuget/NuGet.exe and /dev/null differ
diff --git a/.nuget/NuGet.targets b/.nuget/NuGet.targets
deleted file mode 100644
index 068f19c5d..000000000
--- a/.nuget/NuGet.targets
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
-
- $(MSBuildProjectDirectory)\..\
- $(SolutionDir).nuget
- $(NuGetToolsPath)\nuget.exe
- $(ProjectDir)packages.config
- $(SolutionDir)packages
- $(TargetDir.Trim('\\'))
-
-
- ""
-
-
- false
-
-
- false
-
-
- "$(NuGetExePath)" install "$(PackagesConfig)" -source $(PackageSources) -o "$(PackagesDir)"
- "$(NuGetExePath)" pack "$(ProjectPath)" -p Configuration=$(Configuration) -o "$(PackageOutputDir)" -symbols
-
-
-
- RestorePackages;
- $(BuildDependsOn);
-
-
-
-
- $(BuildDependsOn);
- BuildPackage;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/AutoTest.config b/AutoTest.config
deleted file mode 100644
index c40efbb41..000000000
--- a/AutoTest.config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
- BUILTINDARK
- true
- C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
-
\ No newline at end of file
diff --git a/CommonAssemblyInfo.cs b/CommonAssemblyInfo.cs
deleted file mode 100644
index fbdd853f8..000000000
--- a/CommonAssemblyInfo.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-#if(DEBUG)
-[assembly: AssemblyConfiguration("Debug")]
-#else
-[assembly: AssemblyConfiguration("Release")]
-#endif
-
-[assembly: AssemblyCompany("SimpleFX")]
-[assembly: AssemblyProduct("SimpleFX")]
-[assembly: AssemblyCopyright("Copyright © Mark Rendle, Vagif Abilov 2011-2013")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
diff --git a/CommonAssemblyVersion.cs b/CommonAssemblyVersion.cs
deleted file mode 100644
index 2f46e77b9..000000000
--- a/CommonAssemblyVersion.cs
+++ /dev/null
@@ -1,5 +0,0 @@
-using System.Reflection;
-
-[assembly: AssemblyVersion("0.12.1.0")]
-[assembly: AssemblyFileVersion("0.12.1.0")]
-[assembly: AssemblyInformationalVersion("0.12.1.0")]
diff --git a/Directory.build.props b/Directory.build.props
new file mode 100644
index 000000000..0188b4295
--- /dev/null
+++ b/Directory.build.props
@@ -0,0 +1,11 @@
+
+
+ Simple OData Client
+ © Vagif Abilov and contributors 2012-2021
+ OData client library for .NET 4.x, .NET Standard, .NET Core, iOS and Android.
+ en-US
+
+ true
+ $(MSBuildThisFileDirectory)sn.snk PublicKey=00240000048000009400000006020000002400005253413100040000010001002d608f5bce35f3eff1c1102fc3a90c0c1fb48a69491aa396dc6f2b3214374645179700266ff7c64b35de02956afd8e0f29a6de4d4a32660d2ac7c531901daf5e1130944b1ca1e9a95cb7abcadca5aab49507e5673c1d0315e41157c0daf720fca9a7bfa78a264648bedc83ddb75792c607dda0b84e48ff577db2898566a470c2
+
+
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 000000000..1687403f8
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2012-2014 Vagif Abilov
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/MockData/ActionV3Tests.Check_out_a_movie.1.txt b/MockData/ActionV3Tests.Check_out_a_movie.1.txt
new file mode 100644
index 000000000..dba404f2d
--- /dev/null
+++ b/MockData/ActionV3Tests.Check_out_a_movie.1.txt
@@ -0,0 +1 @@
+{"Content":null,"ContentHeaders":null,"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/localhost\/actions\/Movies(1)\/CheckOut"}
\ No newline at end of file
diff --git a/MockData/ActionV3Tests.Check_out_a_movie.2.txt b/MockData/ActionV3Tests.Check_out_a_movie.2.txt
new file mode 100644
index 000000000..9e8eaeeab
--- /dev/null
+++ b/MockData/ActionV3Tests.Check_out_a_movie.2.txt
@@ -0,0 +1 @@
+{"Content":"{\u000d\u000a \"odata.metadata\":\"http:\/\/localhost\/actions\/$metadata#Movies\/@Element\",\"#CheckOut\":{\u000d\u000a \u000d\u000a },\"ID\":1,\"Title\":\"Maximum Payback\",\"Year\":1990,\"DueDate\":\"2018-05-28T07:25:50.2026671+02:00\"\u000d\u000a}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; charset=utf-8"]},{"Key":"Content-Length","Value":["193"]}],"RequestUri":"http:\/\/localhost\/actions\/Movies(1)\/CheckOut","ResponseHeaders":[{"Key":"DataServiceVersion","Value":["3.0"]}],"StatusCode":200}
\ No newline at end of file
diff --git a/MockData/ActionV3Tests.Check_out_several.1.txt b/MockData/ActionV3Tests.Check_out_several.1.txt
new file mode 100644
index 000000000..f1a8e7421
--- /dev/null
+++ b/MockData/ActionV3Tests.Check_out_several.1.txt
@@ -0,0 +1 @@
+{"Content":"{\u000d\u000a \"MovieIDs\":[\u000d\u000a 1,2,3\u000d\u000a ]\u000d\u000a}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json"]},{"Key":"Content-Length","Value":["36"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/localhost\/actions\/Movies\/CheckOutMany"}
\ No newline at end of file
diff --git a/MockData/ActionV3Tests.Check_out_several.2.txt b/MockData/ActionV3Tests.Check_out_several.2.txt
new file mode 100644
index 000000000..cb503e31b
--- /dev/null
+++ b/MockData/ActionV3Tests.Check_out_several.2.txt
@@ -0,0 +1 @@
+{"Content":"{\u000d\u000a \"odata.metadata\":\"http:\/\/localhost\/actions\/$metadata#Movies\",\"value\":[\u000d\u000a {\u000d\u000a \"#CheckOut\":{\u000d\u000a \u000d\u000a },\"ID\":2,\"Title\":\"Inferno of Retribution\",\"Year\":2005,\"DueDate\":\"2018-05-27T22:39:54.3637417+02:00\"\u000d\u000a },{\u000d\u000a \"#CheckOut\":{\u000d\u000a \u000d\u000a },\"ID\":3,\"Title\":\"Fatal Vengeance 2\",\"Year\":2012,\"DueDate\":\"2018-05-27T22:39:54.3637417+02:00\"\u000d\u000a }\u000d\u000a ]\u000d\u000a}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; charset=utf-8"]},{"Key":"Content-Length","Value":["377"]}],"RequestUri":"http:\/\/localhost\/actions\/Movies\/CheckOutMany","ResponseHeaders":[{"Key":"DataServiceVersion","Value":["3.0"]}],"StatusCode":200}
\ No newline at end of file
diff --git a/MockData/ActionV3Tests.CreateMovie.1.txt b/MockData/ActionV3Tests.CreateMovie.1.txt
new file mode 100644
index 000000000..872a4035d
--- /dev/null
+++ b/MockData/ActionV3Tests.CreateMovie.1.txt
@@ -0,0 +1 @@
+{"Content":"{\u000d\u000a \"Title\":\"6b968ca9-4822-49ee-90bd-0439aaa48e9a\"\u000d\u000a}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json"]},{"Key":"Content-Length","Value":["54"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/localhost\/actions\/CreateMovie"}
\ No newline at end of file
diff --git a/MockData/ActionV3Tests.CreateMovie.2.txt b/MockData/ActionV3Tests.CreateMovie.2.txt
new file mode 100644
index 000000000..7e12d9822
--- /dev/null
+++ b/MockData/ActionV3Tests.CreateMovie.2.txt
@@ -0,0 +1 @@
+{"Content":"{\u000d\u000a \"odata.metadata\":\"http:\/\/localhost\/actions\/$metadata#Movies\/@Element\",\"#CheckOut\":{\u000d\u000a \u000d\u000a },\"ID\":6,\"Title\":\"6b968ca9-4822-49ee-90bd-0439aaa48e9a\",\"Year\":0,\"DueDate\":null\u000d\u000a}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; charset=utf-8"]},{"Key":"Content-Length","Value":["180"]}],"RequestUri":"http:\/\/localhost\/actions\/CreateMovie","ResponseHeaders":[{"Key":"DataServiceVersion","Value":["3.0"]}],"StatusCode":200}
\ No newline at end of file
diff --git a/MockData/ActionV3Tests.CreateMovie_batch.1.txt b/MockData/ActionV3Tests.CreateMovie_batch.1.txt
new file mode 100644
index 000000000..9c6ebfb68
--- /dev/null
+++ b/MockData/ActionV3Tests.CreateMovie_batch.1.txt
@@ -0,0 +1 @@
+{"Content":"--batch_43c61c8d-640f-46ac-861a-33a8b2f54222\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_29101927-4899-4e1a-903b-dc102b5cecc9\u000d\u000a\u000d\u000a--changeset_29101927-4899-4e1a-903b-dc102b5cecc9\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aPOST http:\/\/localhost\/actions\/CreateMovie HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return-content\u000d\u000aContent-Type: application\/json;odata=minimalmetadata;streaming=true;charset=utf-8\u000d\u000a\u000d\u000a{\u000d\u000a \"Title\":\"2c44053f-6790-4221-934e-ba214dfeb643\"\u000d\u000a}\u000d\u000a--changeset_29101927-4899-4e1a-903b-dc102b5cecc9--\u000d\u000a--batch_43c61c8d-640f-46ac-861a-33a8b2f54222--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_43c61c8d-640f-46ac-861a-33a8b2f54222"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/localhost\/actions\/$batch"}
\ No newline at end of file
diff --git a/MockData/ActionV3Tests.CreateMovie_batch.2.txt b/MockData/ActionV3Tests.CreateMovie_batch.2.txt
new file mode 100644
index 000000000..06b5183a3
--- /dev/null
+++ b/MockData/ActionV3Tests.CreateMovie_batch.2.txt
@@ -0,0 +1 @@
+{"Content":"--batchresponse_e03d4724-4192-4a5b-9747-02b438ef5c20\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_4658c68e-a854-4f8d-b802-cf9737a27d6d\u000d\u000a\u000d\u000a--changesetresponse_4658c68e-a854-4f8d-b802-cf9737a27d6d\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 200 OK\u000d\u000aContent-ID: 1\u000d\u000aContent-Type: application\/json; odata=minimalmetadata; streaming=true; charset=utf-8\u000d\u000aDataServiceVersion: 3.0\u000d\u000a\u000d\u000a{\u000d\u000a \"odata.metadata\":\"http:\/\/localhost\/actions\/$metadata#Movies\/@Element\",\"#CheckOut\":{\u000d\u000a \u000d\u000a },\"ID\":7,\"Title\":\"2c44053f-6790-4221-934e-ba214dfeb643\",\"Year\":0,\"DueDate\":null\u000d\u000a}\u000d\u000a--changesetresponse_4658c68e-a854-4f8d-b802-cf9737a27d6d--\u000d\u000a--batchresponse_e03d4724-4192-4a5b-9747-02b438ef5c20--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_e03d4724-4192-4a5b-9747-02b438ef5c20"]},{"Key":"Content-Length","Value":["722"]}],"RequestUri":"http:\/\/localhost\/actions\/$batch","ResponseHeaders":[{"Key":"DataServiceVersion","Value":["3.0"]}],"StatusCode":202}
\ No newline at end of file
diff --git a/MockData/ActionV3Tests.Return_a_movie.1.txt b/MockData/ActionV3Tests.Return_a_movie.1.txt
new file mode 100644
index 000000000..cdc3ede3e
--- /dev/null
+++ b/MockData/ActionV3Tests.Return_a_movie.1.txt
@@ -0,0 +1 @@
+{"Content":null,"ContentHeaders":null,"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return-content"]}],"RequestUri":"http:\/\/localhost\/actions\/Movies(1)\/Return"}
\ No newline at end of file
diff --git a/MockData/ActionV3Tests.Return_a_movie.2.txt b/MockData/ActionV3Tests.Return_a_movie.2.txt
new file mode 100644
index 000000000..410715fc4
--- /dev/null
+++ b/MockData/ActionV3Tests.Return_a_movie.2.txt
@@ -0,0 +1 @@
+{"Content":"{\u000d\u000a \"odata.metadata\":\"http:\/\/localhost\/actions\/$metadata#Movies\/@Element\",\"#CheckOut\":{\u000d\u000a \u000d\u000a },\"ID\":1,\"Title\":\"Maximum Payback\",\"Year\":1990,\"DueDate\":null\u000d\u000a}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; charset=utf-8"]},{"Key":"Content-Length","Value":["162"]}],"RequestUri":"http:\/\/localhost\/actions\/Movies(1)\/Return","ResponseHeaders":[{"Key":"DataServiceVersion","Value":["3.0"]}],"StatusCode":200}
\ No newline at end of file
diff --git a/MockData/ActionV4Tests.Check_out_a_movie.1.txt b/MockData/ActionV4Tests.Check_out_a_movie.1.txt
new file mode 100644
index 000000000..35713fe27
--- /dev/null
+++ b/MockData/ActionV4Tests.Check_out_a_movie.1.txt
@@ -0,0 +1 @@
+{"Content":null,"ContentHeaders":null,"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return=representation"]}],"RequestUri":"http:\/\/localhost\/actions\/Movies(1)\/WebApiOData.V4.Samples.Models.CheckOut"}
\ No newline at end of file
diff --git a/MockData/ActionV4Tests.Check_out_a_movie.2.txt b/MockData/ActionV4Tests.Check_out_a_movie.2.txt
new file mode 100644
index 000000000..a89bc9e27
--- /dev/null
+++ b/MockData/ActionV4Tests.Check_out_a_movie.2.txt
@@ -0,0 +1 @@
+{"Content":"{\"error\":{\"code\":\"\",\"message\":\"The movie is already checked out.\"}}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal"]},{"Key":"Content-Length","Value":["67"]}],"RequestUri":"http:\/\/localhost\/actions\/Movies(1)\/WebApiOData.V4.Samples.Models.CheckOut","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":400}
\ No newline at end of file
diff --git a/MockData/ActionV4Tests.Check_out_a_movie.3.txt b/MockData/ActionV4Tests.Check_out_a_movie.3.txt
new file mode 100644
index 000000000..f1fccae14
--- /dev/null
+++ b/MockData/ActionV4Tests.Check_out_a_movie.3.txt
@@ -0,0 +1 @@
+{"Content":null,"ContentHeaders":null,"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return=representation"]}],"RequestUri":"http:\/\/localhost\/actions\/Movies(1)\/WebApiOData.V4.Samples.Models.Return"}
\ No newline at end of file
diff --git a/MockData/ActionV4Tests.Check_out_a_movie.4.txt b/MockData/ActionV4Tests.Check_out_a_movie.4.txt
new file mode 100644
index 000000000..9eda7e042
--- /dev/null
+++ b/MockData/ActionV4Tests.Check_out_a_movie.4.txt
@@ -0,0 +1 @@
+{"Content":"{\"@odata.context\":\"http:\/\/localhost\/actions\/$metadata#Movies\/$entity\",\"ID\":1,\"Title\":\"Maximum Payback\",\"Year\":1990,\"DueDate\":null}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal"]},{"Key":"Content-Length","Value":["130"]}],"RequestUri":"http:\/\/localhost\/actions\/Movies(1)\/WebApiOData.V4.Samples.Models.Return","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200}
\ No newline at end of file
diff --git a/MockData/ActionV4Tests.Check_out_a_movie.5.txt b/MockData/ActionV4Tests.Check_out_a_movie.5.txt
new file mode 100644
index 000000000..35713fe27
--- /dev/null
+++ b/MockData/ActionV4Tests.Check_out_a_movie.5.txt
@@ -0,0 +1 @@
+{"Content":null,"ContentHeaders":null,"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return=representation"]}],"RequestUri":"http:\/\/localhost\/actions\/Movies(1)\/WebApiOData.V4.Samples.Models.CheckOut"}
\ No newline at end of file
diff --git a/MockData/ActionV4Tests.Check_out_a_movie.6.txt b/MockData/ActionV4Tests.Check_out_a_movie.6.txt
new file mode 100644
index 000000000..cd703b2cb
--- /dev/null
+++ b/MockData/ActionV4Tests.Check_out_a_movie.6.txt
@@ -0,0 +1 @@
+{"Content":"{\"@odata.context\":\"http:\/\/localhost\/actions\/$metadata#Movies\/$entity\",\"ID\":1,\"Title\":\"Maximum Payback\",\"Year\":1990,\"DueDate\":\"2018-05-28T08:50:02.3580211+02:00\"}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal"]},{"Key":"Content-Length","Value":["161"]}],"RequestUri":"http:\/\/localhost\/actions\/Movies(1)\/WebApiOData.V4.Samples.Models.CheckOut","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200}
\ No newline at end of file
diff --git a/MockData/ActionV4Tests.Check_out_several.1.txt b/MockData/ActionV4Tests.Check_out_several.1.txt
new file mode 100644
index 000000000..d76e4854b
--- /dev/null
+++ b/MockData/ActionV4Tests.Check_out_several.1.txt
@@ -0,0 +1 @@
+{"Content":"{\"MovieIDs\":[1,2,3]}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json"]},{"Key":"Content-Length","Value":["20"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return=representation"]}],"RequestUri":"http:\/\/localhost\/actions\/Movies\/WebApiOData.V4.Samples.Models.CheckOutMany"}
\ No newline at end of file
diff --git a/MockData/ActionV4Tests.Check_out_several.2.txt b/MockData/ActionV4Tests.Check_out_several.2.txt
new file mode 100644
index 000000000..4390c276a
--- /dev/null
+++ b/MockData/ActionV4Tests.Check_out_several.2.txt
@@ -0,0 +1 @@
+{"Content":"{\"@odata.context\":\"http:\/\/localhost\/actions\/$metadata#Movies\",\"value\":[{\"ID\":1,\"Title\":\"Maximum Payback\",\"Year\":1990,\"DueDate\":\"2018-05-28T08:50:02.2300241+02:00\"},{\"ID\":2,\"Title\":\"Inferno of Retribution\",\"Year\":2005,\"DueDate\":\"2018-05-28T08:50:02.2300241+02:00\"},{\"ID\":3,\"Title\":\"Fatal Vengeance 2\",\"Year\":2012,\"DueDate\":\"2018-05-28T08:50:02.2300241+02:00\"}]}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal"]},{"Key":"Content-Length","Value":["360"]}],"RequestUri":"http:\/\/localhost\/actions\/Movies\/WebApiOData.V4.Samples.Models.CheckOutMany","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200}
\ No newline at end of file
diff --git a/MockData/ActionV4Tests.CreateMovie.1.txt b/MockData/ActionV4Tests.CreateMovie.1.txt
new file mode 100644
index 000000000..b7b01f6d2
--- /dev/null
+++ b/MockData/ActionV4Tests.CreateMovie.1.txt
@@ -0,0 +1 @@
+{"Content":"{\"Title\":\"ec9db412-af7f-4157-b9f5-bfab8a942b16\"}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json"]},{"Key":"Content-Length","Value":["48"]}],"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return=representation"]}],"RequestUri":"http:\/\/localhost\/actions\/CreateMovie"}
\ No newline at end of file
diff --git a/MockData/ActionV4Tests.CreateMovie.2.txt b/MockData/ActionV4Tests.CreateMovie.2.txt
new file mode 100644
index 000000000..8f4e4ceea
--- /dev/null
+++ b/MockData/ActionV4Tests.CreateMovie.2.txt
@@ -0,0 +1 @@
+{"Content":"{\"@odata.context\":\"http:\/\/localhost\/actions\/$metadata#Movies\/$entity\",\"ID\":8,\"Title\":\"ec9db412-af7f-4157-b9f5-bfab8a942b16\",\"Year\":0,\"DueDate\":null}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal"]},{"Key":"Content-Length","Value":["148"]}],"RequestUri":"http:\/\/localhost\/actions\/CreateMovie","ResponseHeaders":[{"Key":"Location","Value":["http:\/\/localhost\/actions\/Movies(8)"]},{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":201}
\ No newline at end of file
diff --git a/MockData/ActionV4Tests.CreateMovie_batch.1.txt b/MockData/ActionV4Tests.CreateMovie_batch.1.txt
new file mode 100644
index 000000000..b49e5a496
--- /dev/null
+++ b/MockData/ActionV4Tests.CreateMovie_batch.1.txt
@@ -0,0 +1 @@
+{"Content":"--batch_028b379e-0a16-4dfe-899e-2d9e2c766938\u000d\u000aContent-Type: multipart\/mixed; boundary=changeset_a6d43b32-e535-4299-93d9-33dd133dc5aa\u000d\u000a\u000d\u000a--changeset_a6d43b32-e535-4299-93d9-33dd133dc5aa\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000aContent-ID: 1\u000d\u000a\u000d\u000aPOST http:\/\/localhost\/actions\/CreateMovie HTTP\/1.1\u000d\u000aContent-ID: 1\u000d\u000aPrefer: return=representation\u000d\u000aOData-Version: 4.0\u000d\u000aContent-Type: application\/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false;charset=utf-8\u000d\u000a\u000d\u000a{\"Title\":\"e7857d7f-5b85-406a-a5c7-0dba1d411576\"}\u000d\u000a--changeset_a6d43b32-e535-4299-93d9-33dd133dc5aa--\u000d\u000a--batch_028b379e-0a16-4dfe-899e-2d9e2c766938--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_028b379e-0a16-4dfe-899e-2d9e2c766938"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/localhost\/actions\/$batch"}
\ No newline at end of file
diff --git a/MockData/ActionV4Tests.CreateMovie_batch.2.txt b/MockData/ActionV4Tests.CreateMovie_batch.2.txt
new file mode 100644
index 000000000..4d2ca5bb5
--- /dev/null
+++ b/MockData/ActionV4Tests.CreateMovie_batch.2.txt
@@ -0,0 +1 @@
+{"Content":"--batchresponse_e25b0fc2-aefc-4c5b-8b54-54fe159117bc\u000d\u000aContent-Type: multipart\/mixed; boundary=changesetresponse_819413a2-1b06-41c4-a07c-72608a866840\u000d\u000a\u000d\u000a--changesetresponse_819413a2-1b06-41c4-a07c-72608a866840\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000aContent-ID: 1\u000d\u000a\u000d\u000aHTTP\/1.1 201 Created\u000d\u000aLocation: http:\/\/localhost\/actions\/Movies(7)\u000d\u000aContent-Type: application\/json; odata.metadata=minimal; odata.streaming=true\u000d\u000aOData-Version: 4.0\u000d\u000a\u000d\u000a{\"@odata.context\":\"http:\/\/localhost\/actions\/$metadata#Movies\/$entity\",\"ID\":7,\"Title\":\"e7857d7f-5b85-406a-a5c7-0dba1d411576\",\"Year\":0,\"DueDate\":null}\u000d\u000a--changesetresponse_819413a2-1b06-41c4-a07c-72608a866840--\u000d\u000a--batchresponse_e25b0fc2-aefc-4c5b-8b54-54fe159117bc--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batchresponse_e25b0fc2-aefc-4c5b-8b54-54fe159117bc"]},{"Key":"Content-Length","Value":["728"]}],"RequestUri":"http:\/\/localhost\/actions\/$batch","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200}
\ No newline at end of file
diff --git a/MockData/ActionV4Tests.Return_a_movie.1.txt b/MockData/ActionV4Tests.Return_a_movie.1.txt
new file mode 100644
index 000000000..f1fccae14
--- /dev/null
+++ b/MockData/ActionV4Tests.Return_a_movie.1.txt
@@ -0,0 +1 @@
+{"Content":null,"ContentHeaders":null,"Method":"POST","RequestHeaders":[{"Key":"Accept","Value":["application\/json","application\/xml","application\/text"]},{"Key":"Prefer","Value":["return=representation"]}],"RequestUri":"http:\/\/localhost\/actions\/Movies(1)\/WebApiOData.V4.Samples.Models.Return"}
\ No newline at end of file
diff --git a/MockData/ActionV4Tests.Return_a_movie.2.txt b/MockData/ActionV4Tests.Return_a_movie.2.txt
new file mode 100644
index 000000000..9eda7e042
--- /dev/null
+++ b/MockData/ActionV4Tests.Return_a_movie.2.txt
@@ -0,0 +1 @@
+{"Content":"{\"@odata.context\":\"http:\/\/localhost\/actions\/$metadata#Movies\/$entity\",\"ID\":1,\"Title\":\"Maximum Payback\",\"Year\":1990,\"DueDate\":null}","ContentHeaders":[{"Key":"Content-Type","Value":["application\/json; odata.metadata=minimal"]},{"Key":"Content-Length","Value":["130"]}],"RequestUri":"http:\/\/localhost\/actions\/Movies(1)\/WebApiOData.V4.Samples.Models.Return","ResponseHeaders":[{"Key":"OData-Version","Value":["4.0"]}],"StatusCode":200}
\ No newline at end of file
diff --git a/MockData/AdapterTests.CustomBatchWriterAppendsToken.1.txt b/MockData/AdapterTests.CustomBatchWriterAppendsToken.1.txt
new file mode 100644
index 000000000..362420761
--- /dev/null
+++ b/MockData/AdapterTests.CustomBatchWriterAppendsToken.1.txt
@@ -0,0 +1 @@
+{"Content":"--batch_682882f9-3971-4e4a-b9a9-b035130d0693\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aGET http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products?token=123456 HTTP\/1.1\u000d\u000a\u000d\u000a\u000d\u000a--batch_682882f9-3971-4e4a-b9a9-b035130d0693--\u000d\u000a","ContentHeaders":[{"Key":"Content-Type","Value":["multipart\/mixed; boundary=batch_682882f9-3971-4e4a-b9a9-b035130d0693"]}],"Method":"POST","RequestHeaders":[],"RequestUri":"http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/$batch"}
\ No newline at end of file
diff --git a/MockData/AdapterTests.CustomBatchWriterAppendsToken.2.txt b/MockData/AdapterTests.CustomBatchWriterAppendsToken.2.txt
new file mode 100644
index 000000000..b93cbd8be
--- /dev/null
+++ b/MockData/AdapterTests.CustomBatchWriterAppendsToken.2.txt
@@ -0,0 +1 @@
+{"Content":"--batchresponse_96b28898-000c-4358-960d-f784fd58c466\u000d\u000aContent-Type: application\/http\u000d\u000aContent-Transfer-Encoding: binary\u000d\u000a\u000d\u000aHTTP\/1.1 200 OK\u000d\u000aDataServiceVersion: 1.0;\u000d\u000aContent-Type: application\/atom+xml;type=feed;charset=utf-8\u000d\u000aX-Content-Type-Options: nosniff\u000d\u000aCache-Control: no-cache\u000d\u000a\u000d\u000ahttp:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products<\/id>Products<\/title>2018-05-20T18:27:41Z<\/updated>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(1)<\/id>2018-05-20T18:27:41Z<\/updated><\/author>1<\/d:ProductID>Chai<\/d:ProductName>1<\/d:SupplierID>1<\/d:CategoryID>10 boxes x 20 bags<\/d:QuantityPerUnit>123.00<\/d:UnitPrice>39<\/d:UnitsInStock>0<\/d:UnitsOnOrder>10<\/d:ReorderLevel>false<\/d:Discontinued><\/m:properties><\/content><\/entry>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(2)<\/id>2018-05-20T18:27:41Z<\/updated><\/author>2<\/d:ProductID>Chang<\/d:ProductName>1<\/d:SupplierID>1<\/d:CategoryID>24 - 12 oz bottles<\/d:QuantityPerUnit>19.00<\/d:UnitPrice>17<\/d:UnitsInStock>40<\/d:UnitsOnOrder>25<\/d:ReorderLevel>false<\/d:Discontinued><\/m:properties><\/content><\/entry>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(3)<\/id>2018-05-20T18:27:41Z<\/updated><\/author>3<\/d:ProductID>Aniseed Syrup<\/d:ProductName>1<\/d:SupplierID>2<\/d:CategoryID>12 - 550 ml bottles<\/d:QuantityPerUnit>10.00<\/d:UnitPrice>13<\/d:UnitsInStock>70<\/d:UnitsOnOrder>25<\/d:ReorderLevel>false<\/d:Discontinued><\/m:properties><\/content><\/entry>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(4)<\/id>2018-05-20T18:27:41Z<\/updated><\/author>4<\/d:ProductID>Chef Anton's Cajun Seasoning<\/d:ProductName>2<\/d:SupplierID>2<\/d:CategoryID>48 - 6 oz jars<\/d:QuantityPerUnit>22.00<\/d:UnitPrice>53<\/d:UnitsInStock>0<\/d:UnitsOnOrder>0<\/d:ReorderLevel>false<\/d:Discontinued><\/m:properties><\/content><\/entry>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(5)<\/id>2018-05-20T18:27:41Z<\/updated><\/author>5<\/d:ProductID>Chef Anton's Gumbo Mix<\/d:ProductName>2<\/d:SupplierID>2<\/d:CategoryID>36 boxes<\/d:QuantityPerUnit>21.35<\/d:UnitPrice>0<\/d:UnitsInStock>0<\/d:UnitsOnOrder>0<\/d:ReorderLevel>true<\/d:Discontinued><\/m:properties><\/content><\/entry>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(6)<\/id>2018-05-20T18:27:41Z<\/updated><\/author>6<\/d:ProductID>Grandma's Boysenberry Spread<\/d:ProductName>3<\/d:SupplierID>2<\/d:CategoryID>12 - 8 oz jars<\/d:QuantityPerUnit>25.00<\/d:UnitPrice>120<\/d:UnitsInStock>0<\/d:UnitsOnOrder>25<\/d:ReorderLevel>false<\/d:Discontinued><\/m:properties><\/content><\/entry>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(7)<\/id>2018-05-20T18:27:41Z<\/updated><\/author>7<\/d:ProductID>Uncle Bob's Organic Dried Pears<\/d:ProductName>3<\/d:SupplierID>7<\/d:CategoryID>12 - 1 lb pkgs.<\/d:QuantityPerUnit>30.00<\/d:UnitPrice>15<\/d:UnitsInStock>0<\/d:UnitsOnOrder>10<\/d:ReorderLevel>false<\/d:Discontinued><\/m:properties><\/content><\/entry>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(8)<\/id>2018-05-20T18:27:41Z<\/updated><\/author>8<\/d:ProductID>Northwoods Cranberry Sauce<\/d:ProductName>3<\/d:SupplierID>2<\/d:CategoryID>12 - 12 oz jars<\/d:QuantityPerUnit>40.00<\/d:UnitPrice>6<\/d:UnitsInStock>0<\/d:UnitsOnOrder>0<\/d:ReorderLevel>false<\/d:Discontinued><\/m:properties><\/content><\/entry>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(9)<\/id>2018-05-20T18:27:41Z<\/updated><\/author>9<\/d:ProductID>Mishi Kobe Niku<\/d:ProductName>4<\/d:SupplierID>6<\/d:CategoryID>18 - 500 g pkgs.<\/d:QuantityPerUnit>97.00<\/d:UnitPrice>29<\/d:UnitsInStock>0<\/d:UnitsOnOrder>0<\/d:ReorderLevel>true<\/d:Discontinued><\/m:properties><\/content><\/entry>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(10)<\/id>2018-05-20T18:27:41Z<\/updated><\/author>10<\/d:ProductID>Ikura<\/d:ProductName>4<\/d:SupplierID>8<\/d:CategoryID>12 - 200 ml jars<\/d:QuantityPerUnit>31.00<\/d:UnitPrice>31<\/d:UnitsInStock>0<\/d:UnitsOnOrder>0<\/d:ReorderLevel>false<\/d:Discontinued><\/m:properties><\/content><\/entry>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(11)<\/id>2018-05-20T18:27:41Z<\/updated><\/author>11<\/d:ProductID>Queso Cabrales<\/d:ProductName>5<\/d:SupplierID>4<\/d:CategoryID>1 kg pkg.<\/d:QuantityPerUnit>21.00<\/d:UnitPrice>22<\/d:UnitsInStock>30<\/d:UnitsOnOrder>30<\/d:ReorderLevel>false<\/d:Discontinued><\/m:properties><\/content><\/entry>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(12)<\/id>2018-05-20T18:27:41Z<\/updated><\/author>12<\/d:ProductID>Queso Manchego La Pastora<\/d:ProductName>5<\/d:SupplierID>4<\/d:CategoryID>10 - 500 g pkgs.<\/d:QuantityPerUnit>38.00<\/d:UnitPrice>86<\/d:UnitsInStock>0<\/d:UnitsOnOrder>0<\/d:ReorderLevel>false<\/d:Discontinued><\/m:properties><\/content><\/entry>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(13)<\/id>2018-05-20T18:27:41Z<\/updated><\/author>13<\/d:ProductID>Konbu<\/d:ProductName>6<\/d:SupplierID>8<\/d:CategoryID>2 kg box<\/d:QuantityPerUnit>6.00<\/d:UnitPrice>0<\/d:UnitsInStock>24<\/d:UnitsOnOrder>5<\/d:ReorderLevel>false<\/d:Discontinued><\/m:properties><\/content><\/entry>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(14)<\/id>2018-05-20T18:27:41Z<\/updated><\/author>14<\/d:ProductID>Tofu<\/d:ProductName>6<\/d:SupplierID>7<\/d:CategoryID>40 - 100 g pkgs.<\/d:QuantityPerUnit>23.25<\/d:UnitPrice>35<\/d:UnitsInStock>0<\/d:UnitsOnOrder>0<\/d:ReorderLevel>false<\/d:Discontinued><\/m:properties><\/content><\/entry>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(15)<\/id>2018-05-20T18:27:41Z<\/updated><\/author>15<\/d:ProductID>Genen Shouyu<\/d:ProductName>6<\/d:SupplierID>2<\/d:CategoryID>24 - 250 ml bottles<\/d:QuantityPerUnit>15.50<\/d:UnitPrice>39<\/d:UnitsInStock>0<\/d:UnitsOnOrder>5<\/d:ReorderLevel>false<\/d:Discontinued><\/m:properties><\/content><\/entry>http:\/\/nrkdt66337\/Temporary_Listen_Addresses\/SimpleODataTestService279\/Products(16)<\/id>2018-05-20T18:27:41Z<\/updated><\/author>16<\/d:ProductID>Pavlova<\/d:ProductName>7<\/d:SupplierID>3<\/d:CategoryID>